NativeLink v0.5.4
This release focuses on stability, implements various quality-of-life improvements, and adds experimental support for high-availability deployments.
Important
While this release doesn't contain breaking changes, the config schema changed to use arrays of named specs for stores and schedulers. This release supports both schemas, but the next release will remove support for the old one in a breaking change.
// Old:
"stores": {
"SOMESTORE": {
"memory": {}
}
},
"schedulers": {
"SOMESCHEDULER": {
"simple": {}
}
}
// New:
"stores": [
{
"name": "SOMESTORE",
"memory": {}
}
],
"schedulers": [
{
"name": "SOMESCHEDULER",
"simple": {}
}
]
🐋 Images
docker pull ghcr.io/tracemachina/nativelink:v0.5.4
# This image copies nativelink to a specified location such as a mounted
# volume. You can then re-mount that volume into your worker container.
docker pull ghcr.io/tracemachina/nativelink-worker-init:v0.5.4
# The nativelink-worker-lre-cc remote execution container for Bazel with a
# Clang/LLVM 19 C++ toolchain:
docker pull ghcr.io/tracemachina/nativelink-worker-lre-cc:v0.5.4
See the contribution docs for instructions on how to build from source with Bazel, Cargo, and Nix.
📜 Changelog
✨ Major changes
- Schedulers can now have a Redis backend. This lets you deploy NativeLink in a high-availability mode—that is, without a single point of failure (#1343).
- Changed the config schema as outlined above (#1496).
- Implemented Local Remote Execution for Rust (#1510).
- Added a new
OriginEvent
API which lets you trace data as it flows through NativeLink (#875). - Introduced new documentation and examples to aid with testing remote execution (#1498).
🩹 Notable fixes
- Fixed an interaction between
S3Store
andVerifyStore
that could lead to cache poisoning (#1383). - Fixed an issue where configurations using raw
FilesystemStore
s required an explicit--digest_function
flag in Bazel and which could lead to nonfunctional deployments in Reclient. If you used the--digest_function
flag before to work aroundmissing digest
issues, you can remove this now (#1489).
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from @SchahinRohani, @aleksdmladenovic, @amonshiz, @blakehatch, @caass, @jaroeichler, @KGrewal1, @swarren12, @WillDoItMyself and various contributors at @TraceMachina.