Caution
This repository is deprecated; it has migrated to https://github.com/thoughtpolice/a
This repository contains my extremely experimental, not-production-ready, outright dangerous work that is all based around Jujutsu.
The code here is different than the code I contribute directly to upstream; the work here is too experimental for now. Perhaps one day this repository might be obsolete and most of my work will all be in Jujutsu itself. But for now having a separate repository is the best way to iterate quickly without disturbing everyone and while researching, and in practice I'll always want a laboratory to cook things up.
In short, you probably don't want to bother with this stuff unless you're direcly working with me on it, so you know what you're up against.
This project uses Buck2 for the build system and has significant infrastructure to drive it. One goal — among others — is to explore build system <-> filesystem <-> version control integration, and this requires a system like Buck to achieve (so using it is a good way to figure that out.)
If you have questions or want to help out, you can contact me, @aseipp, on the
Jujutsu Discord.
Broadly unorganized and in no particular order.
TBD.
TBD.
- Toolchains
- Hermetic toolchain
- Rust
- Clang (all platforms)
- Windows
- Is hermetic MSVC possible?
- Hermetic toolchain
- DevEx improvements
- Turnkey Codespaces for instant-hacking
- Pre-warmed/Pre-built devcontainer
- Current boot time is ~several minutes on a cold start
- Tested on macOS, Windows, Linux
-
devcontainer that can be launched from GitHub UI -
dotslash,rust-analyzer,buck2,rust-projectpreinstalled -
Workingbuck2 build/rust-analyzersupport on first click
- Pre-warmed/Pre-built devcontainer
- Target Determination
supertdis available (from buck2-change-detector)
- Dependency monitoring + security updates
- Dependabot integration with our third-party
Cargo.toml?- How would we run
reindeer buckify?
- How would we run
-
osv.dev integration?-
RUSTSEC support based onCargo.lock -
Generic 3rd party support (BoringSSL, zstd, etc)- Still needs testing:
mimalloc,capnproto,zlib
- Still needs testing:
- Open issues:
-
Querying Git Repos google/osv.dev#2576
-
-
- Dependabot integration with our third-party
- Turnkey Codespaces for instant-hacking
- Platform support
- macOS
- x86_64 macOS support
- Requires x86_64 binaries for
smoltar; needsmacos-13runners
- Requires x86_64 binaries for
- x86_64 macOS support
- Windows
-
aarch64-windowssupport- Should come in Q4 2024 when GHA runners are available?
- windows_shim for DotSlash,
improving Windows ergonomics
- Requires committing
.exefiles, so size is absolutely critical - Does not exist upstream; TBA
- Requires committing
-
- macOS
Upstream bugs and PRs:
- Offline build support — unclear how to proceed
- Import 3rd party library source code into the repository?
-
Reindeer support for.cratefiles: facebookincubator/reindeer#46
- Log & build reporting
-
buck log --trace-id ...OSS support: facebook/buck2#770- Patched in https://github.com/thoughtpolice/buck2 fork used by this repo.
- Can replay any GHA build (within ~24hrs) with a known Build ID
- facebook/buck2#702
- Bazel Event Stream support: facebook/buck2#811
- See also: facebook/buck2#685
- Will allow us to abstract away underlying CI to some extent
-
- RE/AC support:
-
rust_librarycaching forlocal_only=True(TBA) - Missing support for local execution
ActionCachesupport- Patched in https://github.com/thoughtpolice/buck2 fork used by this repo.
- facebook/buck2#765
- facebook/buck2#771
- Wrong hashing algorithm used for upload permission checks facebook/buck2#784
- Patched in https://github.com/thoughtpolice/buck2 fork used by this repo.
- Block on concurrent blob uploads facebook/buck2#750
- Patched in https://github.com/thoughtpolice/buck2 fork used by this repo.
-
File size logic bugs facebook/buck2#639 -
Buggy concurrency limiter: facebook/buck2#642 -
Failure diagonstics facebook/buck2#656
-
rust-analyzer+rust-project- rust-project: add support for specifying
buck2exe facebook/buck2#774 -
linked_projectssupport: rust-lang/rust-analyzer#17246 -
Unbreak OSS use ofrust-project: facebook/buck2#659 -
--sysroot-modesupport forrust-project: facebook/buck2#745 -
rust-project checkis broken: facebook/buck2#754 -
Invalid dep graph due to lack ofsysroot_src -
Prebuiltrust-projectbinaries + dotslash: facebook/buck2#766
- rust-project: add support for specifying
- UX improvements
-
buck2 testshould build targets too facebook/buck2#702 -
Aggressively annoying download warnings facebook/buck2#316- Patched in https://github.com/thoughtpolice/buck2 fork used by this repo.
-
ImproveValidationInfofailure messages facebook/buck2#769 -
Add subtarget information to test name facebook/buck2#743
-
- Platform support
-
buck2aarch64-linux binaries don't with 16k page size facebook/buck2#693
-
Apache 2.0.