Releases: TraceMachina/nativelink
v0.5.3
NativeLink v0.5.3
This is a hotfix release to fix the VerifyStore which was broken in v0.5.1
.
🐋 Images
docker pull ghcr.io/tracemachina/nativelink:v0.5.3
# New! 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.3
# The nativelink-worker-lre-cc remote execution container for Bazel with a
# Clang/LLVM 18 C++ toolchain:
docker pull ghcr.io/tracemachina/nativelink-worker-lre-cc:v0.5.3
See the contribution docs for instructions on how to build from source with Bazel, Cargo, and Nix.
📜 Changelog
🩹 Notable Fixes
- Fix verify_size w/ verify_hash set to true in VerifyStore (#1273)
- Fix bug in redis store when zero data stored but data does not exist (#1304)
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from various contributors at @TraceMachina.
v0.5.1
NativeLink v0.5.1
This is a hotfix release to unbreak the S3 store which was broken in v0.5.0
.
🐋 Images
docker pull ghcr.io/tracemachina/nativelink:v0.5.1
# New! 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.1
# The nativelink-worker-lre-cc remote execution container for Bazel with a
# Clang/LLVM 18 C++ toolchain:
docker pull ghcr.io/tracemachina/nativelink-worker-lre-cc:v0.5.1
See the contribution docs for instructions on how to build from source with Bazel, Cargo, and Nix.
📜 Changelog
🩹 Notable Fixes
- Unbreak the S3 store (#1248).
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from various contributors at @TraceMachina.
v0.5.0
NativeLink v0.5.0
This release implements several major overhauls: A new scheduler, better metrics and new docs.
Most changes are non-breaking. However, you might want to revisit your existing deployments since you no longer need to bundle NativeLink in remote execution worker images.
🐋 Images
docker pull ghcr.io/tracemachina/nativelink:v0.5.0
# New! 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.0
# The nativelink-worker-lre-cc remote execution container for Bazel with a
# Clang/LLVM 18 C++ toolchain:
docker pull ghcr.io/tracemachina/nativelink-worker-lre-cc:v0.5.0
See the contribution docs for instructions on how to build from source with Bazel, Cargo, and Nix.
📜 Changelog
❌️ Breaking changes
- The
VerifyStore
now auto-detects the digest function. To migrate, removehash_verification_function
settings on your config. You can toggle whether hashes should be verified with the newverify_hash
boolean setting (#899).
✨ Major changes
- The scheduler internals have been rewritten. This is an important step towards high availability deployments (#1169).
- Quantities in the configs now support human readable strings such as
10s
and15KiB
(#891). - NativeLink now has experimental support for the Build Event Protocol (BEP) via the
experimental_bep
config option (#961). - Worker images no longer need to bundle the
nativelink
executable (#1013). See the chromium example which shows how to levarage this viainitContainers
in K8s. - The documentation infrastructure has been rewritten (#1056) and doc contents were overhauled (#1138). A continuously updated configuration reference is available in the docs.
- Metrics are now much more fine-grained and flexible (#1192).
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from @SchahinRohani, @aleksdmladenovic, @Abhinav-Chdhary, @eltociear, @ibilalkayy, @matdexir and various contributors at @TraceMachina.
v0.4.0
NativeLink v0.4.0
This release implements some big quality-of-life features: More readable logs, Redis support, a new development cluster, and various other improvements to stability and overall user experience.
Installation
🦀 Cargo
cargo install --git https://github.com/TraceMachina/nativelink --tag v0.4.0
❄️ Nix
nix run github:TraceMachina/nativelink/v0.4.0
🐋 Docker
docker run ghcr.io/tracemachina/nativelink:v0.4.0
# For the nativelink-worker-lre-cc remote execution container
# for Bazel with an LLVM 18 C++ toolchain:
docker run ghcr.io/tracemachina/nativelink-worker-lre-cc:v0.4.0
📜 Changelog
❌️ Breaking changes
- Health status checks have been factored out into a dedicated service (#823). To migrate, add a
health: {}
field to the"services"
object.
✨ Major changes
- Introduced a new
native-cli
command to develop NativeLink and custom toolchains against a local Kubernetes Cluster (#851, #872). The Kubernetes examples have been updated accordingly. Thenative-cli
is importable in external nix flakes via thepackages.${system}.native-cli
flake output. - All logging now uses the
tracing
crate (#871). This vastly improves the readability of NativeLink's logs. - Introduced a new
RedisStore
(#393). Seenativelink-config/src/stores.rs
for usage instructions.
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from @blizzardc0der, @chrisstaite-menlo, @aleksdmladenovic and various contributors at @TraceMachina.
v0.3.0
NativeLink v0.3.0
This is a fairly large release with various new features and stability improvements.
Installation
🦀 Cargo
cargo install --git https://github.com/TraceMachina/nativelink --tag v0.3.0
❄️ Nix
nix run github:TraceMachina/nativelink/v0.3.0
🐋 Docker
docker run ghcr.io/tracemachina/nativelink:v0.3.0
# For the nativelink-worker-lre-cc worker remote execution container
# for Bazel with an LLVM 17 C++ toolchain:
docker run ghcr.io/tracemachina/nativelink-worker-lre-cc:v0.3.0
📜 Changelog
❌️ Breaking changes
- Removed completeness checking logic in CacheLookupScheduler (#826). To migrate, remove the
"cas_store"
field inCacheLookupScheduler
configurations and use theCompletenessCheckingStore
wrapper. - Generalized LRE to arbitrary toolchains and refactored image publishing worflows (#728). NativeLink containers no longer ship with
cacerts
. Instead, an external CA needs to be mounted into the image explicitly. See deployment-examples/kubernetes for updated deployment instructions. - The
/status
endpoint now returns a JSON status object (#636). - The
GRPCScheduler
andGRPCStore
no longer take a string as endpoint but a newGRPCEndpointConfig
object which bundles the endpoint string and TLS configuration and has an optional field for concurrency limits (#627). - Unknown fields during configuration initialization will now raise errors (#693). This breaks configurations which were already faulty but would previously be accepted silently.
✨ Major changes
- NativeLink now supports mTLS (#470)
- The
VerifyStore
now supports blake3 (#575) - Documentation is now generated via Docusaurus (#586)
S3Store
may now disable http2 (#604)- Bazel builds now use Bzlmod (#626)
CompressionStore
andExistenceCacheStore
now support metrics (#647)- NativeLink Production deployments are now built against musl libc (#583) and use mimalloc (#749) as memory allocator.
- Action directories during remote execution now run under a configurable root directory (#752)
- Added a chromium/Reclient example (#786)
- A new
nativelink-worker-lre-cc
image for C++ remote execution is now published frommain
(#794) - A new
nativelink-debug
target has been added to the nix flake to aid debugging concurrency issues (#811)
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from @blizzardc0der, @chrisstaite-menlo, @DolceTriade, @steed924 and various contributors at @TraceMachina.
v0.2.0
Nativelink v0.2.0
This is a quality-of-life release with various updates to dependencies, improvements to installation and usage instructions, as well as improved publishing workflows.
Installation
🦀 Cargo
cargo install --git https://github.com/TraceMachina/nativelink --tag v0.2.0
❄️ Nix
nix run github:TraceMachina/nativelink/v0.2.0
🐋 Docker
docker run ghcr.io/tracemachina/nativelink:v0.2.0
📜 Changelog
❌️ Breaking changes
- Renamed the
cas
executable tonativelink
. Cargo installations should now invoke it asnativelink ./config.json
. The container entry point is now/bin/nativelink
(#573).
✨ Major changes
- Starting with this release we publish SemVer-tagged containers in addition to the rolling containers (#569).
- Remote execution containers for LRE toolchains are now based on LLVM 17.0.6 (#557).
- Fixed an issue in the S3 store where certain deployments wouldn't correctly register provided credentials (#494).
See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from @steed924 and various contributors at @TraceMachina.
v0.1.0
🎉 Nativelink v0.1.0
We're excited to publish our initial release!
Installation
🦀 Cargo
cargo install --git https://github.com/TraceMachina/nativelink --tag v0.1.0
❄️ Nix
nix run github:TraceMachina/nativelink/v0.1.0
🐋 Docker
docker run ghcr.io/tracemachina/nativelink:wm6l3qi72hv9phn44853ir1dxs3q7k65
📜 Changelog
The changelog for this release contains commits from the beginning of the project until the release of v0.1.0
. See CHANGELOG.md for the full list of changes.
❤️ Thanks to our Contributors
This release contains contributions from @chrisstaite-menlo, @steed924, @jaroeichler, @TripleKai, @mhz5, @cormacrelf, as well as various contributors at @TraceMachina.