Repository navigation
Tags: meta/sapling
Tags
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
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
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
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
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
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
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
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
PreviousNext