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-project
preinstalled -
Workingbuck2 build
/rust-analyzer
support on first click
- Pre-warmed/Pre-built devcontainer
- Target Determination
supertd
is 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-13
runners
- Requires x86_64 binaries for
- x86_64 macOS support
- Windows
-
aarch64-windows
support- Should come in Q4 2024 when GHA runners are available?
- windows_shim for DotSlash,
improving Windows ergonomics
- Requires committing
.exe
files, 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.crate
files: 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_library
caching forlocal_only=True
(TBA) - Missing support for local execution
ActionCache
support- 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
buck2
exe facebook/buck2#774 -
linked_projects
support: rust-lang/rust-analyzer#17246 -
Unbreak OSS use ofrust-project
: facebook/buck2#659 -
--sysroot-mode
support forrust-project
: facebook/buck2#745 -
rust-project check
is broken: facebook/buck2#754 -
Invalid dep graph due to lack ofsysroot_src
-
Prebuiltrust-project
binaries + dotslash: facebook/buck2#766
- rust-project: add support for specifying
- UX improvements
-
buck2 test
should 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.
-
ImproveValidationInfo
failure messages facebook/buck2#769 -
Add subtarget information to test name facebook/buck2#743
-
- Platform support
-
buck2
aarch64-linux binaries don't with 16k page size facebook/buck2#693
-
Apache 2.0.