Skip to content

Tags: meta/sapling

Tags

0.2.20261102-153821+a53273dc

Toggle 0.2.20261102-153821+a53273dc's commit message
Update implementation-guide.md for fbcode/eden/mononoke/.llms

Reviewed By: lmvasquezg

Differential Revision: D128572461

fbshipit-source-id: d04fc4bec2a3cef12ae124e1eee62b45405b3e47

0.2.20261102-103806+ba06f089

Toggle 0.2.20261102-103806+ba06f089's commit message
Type-check with TypeScript 7

Summary:
TypeScript 7 (the native Go port) type-checks `isl/` in 1.2s instead of 9.4s. Use it for `tsc` in every package.

TypeScript 7 removed options and changed defaults:
- `moduleResolution: node` (node10) and `downlevelIteration` were removed: use `bundler` and drop `downlevelIteration`.
- `types` now defaults to `[]`, so list `node`/`jest` explicitly where tests or Node APIs are used.
- Side-effect imports are checked (`noUncheckedSideEffectImports`): add a `*.css` declaration in `shared/`.

Bump `types/node` from 16 to 22 (also required by Vite 8's peer range). Newer DOM and Node typings distinguish `ArrayBuffer`, `Buffer`, and `Uint8Array<ArrayBufferLike>`, which surfaced a few real issues:
- `base64Decode` claimed to return an `ArrayBuffer` but returned a `Buffer` (whose backing store may be a shared pool). It now copies into a standalone `ArrayBuffer`.
- `integrationTests/setup.tsx` cast an `ArrayBuffer` to `Buffer`; use `Buffer.from`.
- Smaller fixes: missing `React` import for `ComponentType`, a possibly-undefined iterator result in `pathTree.ts`, `vite/types/hot.d.ts` import path under `bundler` resolution, the `readyState` type on a WebSocket mock, and `swallowErrors` (supported by Node, missing from `MessageOptions`).

TypeScript 7 has no JavaScript API, so tools that call into the compiler keep working on older versions:
- The root keeps `typescript@5.5.4`, which `prettier-plugin-organize-imports` (and `arc f`) and ts-node resolve.
- ts-jest resolves `typescript` from the package directory, so it is pointed at `typescript/typescript6`, the TypeScript team's compatibility package.
- Jest loads `.ts` config files with ts-node, so `integration.jest.config.ts` becomes `.cjs`.
- Each package gets a `"tsc": "tsc"` script so `yarn tsc` runs the package's TypeScript 7 instead of the hoisted root 5.5.4.

All new packages are already in the yarn offline mirror.

Reviewed By: evanwex

Differential Revision: D128480706

fbshipit-source-id: 8acdcb042da75b58617e1c07d565aea52db06409

0.2.20261028-123539+7415fb2f

Toggle 0.2.20261028-123539+7415fb2f's commit message
github: build the macOS release on the standard `macos-15` runner

Differential Revision: D128138687

fbshipit-source-id: 96398cc4510ecdd4383fb753be597b234c7ee032

0.2.20261027-184245+c529ef21

Toggle 0.2.20261027-184245+c529ef21's commit message
Complete Rerun 0.40 viewer imports

Summary:
X-link: meta-pytorch/monarch#5149

Complete the Rerun 0.40 dependency graph required by the upstream CLI and source-built desktop/browser viewers, building on D127191947. Retain upstream Rust implementations and use immutable source snapshots with compatible browser-binding and allocator metadata. Generate the renderer's shader registry with Buck virtual paths.

Limit the native SDK and CLI to supported desktop platforms while retaining desktop and WASM viewer support. Preserve the patched zbus source and exact dependency versions, with matching generated public manifests.

Enable `map_view` in the imported viewer and CLI so map support is configured with the dependency imports.

This completes the Rerun 0.40 viewer dependency graph in the existing centralized Rust vendor tree. The SDK and `rerun` 0.40 already exist in the base; the added viewer/renderer and egui versions use the standard versioned Rust targets. Older versions remain for consumers that pin their incompatible APIs. The public Cargo manifest changes are generated dependency entries, not separately vendored libraries.

[3pl-duplicate-skip]
3pl-duplicate-skip

Reviewed By: SeaOtocinclus

Differential Revision: D127593064

fbshipit-source-id: 038e47a2f4ee370ee71f7d8e77099ea69ade41ea

0.2.20260929-102736+288e0c2d

Toggle 0.2.20260929-102736+288e0c2d's commit message
unbundle: Require the RestrictedPaths facet on Repo

Summary:
## This stack
Enforce code tenting at changeset creation time. Block unauthorized
modifications to .slacl files in restricted directories.

## This diff
No-op plumbing for the next diff: adds `RestrictedPathsArc` to the unbundle
`Repo` trait, and the `RestrictedPaths` facet to the repo_client and unbundle
test repos that must satisfy it. The next diff uses the facet to validate
`.slacl` changes when Hg changesets are uploaded.

Reviewed By: markbt

Differential Revision: D122184748

fbshipit-source-id: d05d0479f35a39cc37b2832e83d8da6eb93f1c3c

0.2.20260811-150444+8fb02b32

Toggle 0.2.20260811-150444+8fb02b32's commit message
build: update vscode mt.exe discovery to fix GH build

Summary:
GitHub build is failing with:

  Embedding Windows long path manifest
  Traceback (most recent call last):
    File "D:\a\sapling\sapling\eden\scm\build.py", line 840, in <module>
      main(sys.argv[1:])
    File "D:\a\sapling\sapling\eden\scm\build.py", line 832, in main
      build_sl(args)
    File "D:\a\sapling\sapling\eden\scm\build.py", line 543, in build_sl
      build_sl_with_cargo(args)
    File "D:\a\sapling\sapling\eden\scm\build.py", line 575, in build_sl_with_cargo
      set_long_paths_manifest(args, src)
    File "D:\a\sapling\sapling\eden\scm\build.py", line 513, in set_long_paths_manifest
      raise RuntimeError("mt.exe not found in Visual Studio build environment PATH")
  RuntimeError: mt.exe not found in Visual Studio build environment PATH

Upon investigation, github windows images have:

  windows-2022:

    ImageOS=win22
    ImageVersion=20260802.262.1
    raw shutil.which: None
    Windows SDK mt.exe candidates:
      C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\mt.exe
      C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\mt.exe
      C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64\mt.exe
      C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\mt.exe
    glob vcvarsall candidates:
      C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
    vswhere: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
    vswhere vcvarsall candidates:
      C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
    selected vcvarsall (vswhere first): C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
    PATH-like keys after dict.update:
      PATH starts with: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.44.35207\bin\HostX64\x64;C:\Program Files\Microsoft Visual
  Studio\2022\Enterprise\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Enterprise\C
    build.py env_path selected key: PATH
    build.py-style shutil.which: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\mt.exe
    vcvars captured PATH key: PATH
    vcvars-only shutil.which: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\mt.exe
    canonicalized shutil.which: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\mt.exe

  windows-2025:

    ImageOS=win25-vs2026
    ImageVersion=20260803.193.1
    raw shutil.which: None
    Windows SDK mt.exe candidates:
      C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x64\mt.exe
    glob vcvarsall candidates:
    vswhere: C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe
    vswhere vcvarsall candidates:
      C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
    selected vcvarsall (vswhere first): C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvarsall.bat
    PATH-like keys after dict.update:
      PATH starts with: C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Tools\MSVC\14.51.36231\bin\HostX64\x64;C:\Program Files\Microsoft Visual
  Studio\18\Enterprise\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\18\Enterprise\Common7
    build.py env_path selected key: PATH
    build.py-style shutil.which: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\mt.exe
    vcvars captured PATH key: PATH
    vcvars-only shutil.which: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\mt.exe
    canonicalized shutil.which: C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\\x64\mt.exe

Update setup.py to use vswhere to discover vcvars, and fallback to glob with
the new `18` (not 2028) pattern.

Reviewed By: SBones

Differential Revision: D115638430

fbshipit-source-id: dce7cb0d54f6feaaec1ca0dcc9f10f4568ce332c

0.2.20260811-133855+9abcebfd

Toggle 0.2.20260811-133855+9abcebfd's commit message
cargo: attempt to unblock GitHub build

Summary:
GitHub builds are failing with the "std" feature:

  $ cargo build --manifest-path /__w/sapling/sapling/eden/scm/exec/hgmain/Cargo.toml --release --features sl_oss
  warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
  package:   /__w/sapling/sapling/eden/scm/exec/hgmain/Cargo.toml
  workspace: /__w/sapling/sapling/eden/scm/Cargo.toml
  warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
  package:   /__w/sapling/sapling/eden/scm/lib/virtual-repo/virtual-tree/Cargo.toml
  workspace: /__w/sapling/sapling/eden/scm/Cargo.toml
  warning: /__w/sapling/sapling/eden/scm/lib/third-party/streampager/Cargo.toml: `edition` is set on library `streampager` which is deprecated
  warning: /__w/sapling/sapling/eden/scm/lib/third-party/conch-parser/Cargo.toml: `edition` is set on library `conch_parser` which is deprecated
  warning: /__w/sapling/sapling/eden/scm/lib/third-party/webview-sys/Cargo.toml: `edition` is set on library `webview_sys` which is deprecated
  warning: /__w/sapling/sapling/eden/scm/lib/slex/Cargo.toml: file `/__w/sapling/sapling/eden/scm/lib/slex/benches/executor.rs` found to be present in multiple build targets:
    * `bench` target `executor`
    * `bench` target `executor_benches`
      Updating git repository `https://github.com/markbt/abomonation`
      Updating crates.io index
      Updating git repository `https://github.com/facebookexperimental/rust-shed.git`
      Updating git repository `https://github.com/facebook/watchman.git`
      Updating git repository `https://github.com/facebook/fb303.git`
      Updating git repository `https://github.com/facebook/fbthrift.git`
  error: failed to select a version for `wezterm-dynamic`.
      ... required by package `sapling-io v0.1.0 (/__w/sapling/sapling/eden/scm/lib/io)`
      ... which satisfies path dependency `sapling-io` of package `sapling-clidispatch v0.1.0 (/__w/sapling/sapling/eden/scm/lib/clidispatch)`
      ... which satisfies path dependency `sapling-clidispatch` of package `hgmain v0.1.0 (/__w/sapling/sapling/eden/scm/exec/hgmain)`
  versions that meet the requirements `^0.2.1` are: 0.2.1

  package `sapling-io` depends on `wezterm-dynamic` with feature `std` but `wezterm-dynamic` does not have that feature.

This will unfortunately break fbsource cargo build. I pinged wez on
`wezterm:matrix.org` and hope we can get a 0.24 termwiz release to fix this.

Reviewed By: zzl0

Differential Revision: D115614865

fbshipit-source-id: 54ba5c8a452a2d6faf74b0b2aea9b61b5d30a6c7

0.2.20260522-084851+1e764c94

Toggle 0.2.20260522-084851+1e764c94's commit message
backtrace-python: improve compatibility on macOS release build

Summary:
I noticed the latest homebrew macOS OSS build does not resolve Python frames in
backtrace. It turns out that we need to match the underscore versions of the
function names. See the added comment.

Reviewed By: muirdm

Differential Revision: D106095666

fbshipit-source-id: 9bc6fcf1eeba77f4d561f32b5a128ea5a16295c3

0.2.20260317-201835+0234c21f

Toggle 0.2.20260317-201835+0234c21f's commit message
Support TypeSystem <-> SerializableTypeSystem conversion

Summary:
Adds round-trip conversion between `SerializableTypeSystem` and `TypeSystem` instances. (specifically `IndexedTypeSystem`).

- Construction uses `TryFrom<SerializableTypeSystem>`
- Any `TypeSystem` has a default serialization implementating using URI-based export
- Specific `TypeSystem` implementations can override this implementation where appropriate.

Reviewed By: praihan

Differential Revision: D96979371

fbshipit-source-id: fa193344bb5c6fde4b56c4699ff206867ab833d2

0.2.20250521-115337+25ed6ac4

Toggle 0.2.20250521-115337+25ed6ac4's commit message
fix some minor lints in TreeInodes.cpp

Summary: I was playing with `TreeInodes.cpp` and I found a few lint warnings and a wrong comment.

Reviewed By: jdelliot

Differential Revision: D75092377

fbshipit-source-id: 67dba155f5ae76d5a18ef167b2c48ca5851cda48