Skip to content

Releases: TraceMachina/nativelink

v0.5.3

04 Sep 21:30
v0.5.3
913e710
Compare
Choose a tag to compare

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

08 Aug 21:28
v0.5.1
b961192
Compare
Choose a tag to compare

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

07 Aug 15:35
v0.5.0
d898c54
Compare
Choose a tag to compare

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, remove hash_verification_function settings on your config. You can toggle whether hashes should be verified with the new verify_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 and 15KiB (#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 via initContainers 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

16 May 15:58
v0.4.0
75105df
Compare
Choose a tag to compare

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. The native-cli is importable in external nix flakes via the packages.${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). See nativelink-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

10 Apr 17:43
v0.3.0
aab867a
Compare
Choose a tag to compare

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 in CacheLookupScheduler configurations and use the CompletenessCheckingStore 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 and GRPCStore no longer take a string as endpoint but a new GRPCEndpointConfig 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 and ExistenceCacheStore 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 from main (#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

21 Dec 22:55
v0.2.0
29eb1fa
Compare
Choose a tag to compare

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 to nativelink. Cargo installations should now invoke it as nativelink ./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

20 Dec 03:38
v0.1.0
395674f
Compare
Choose a tag to compare

🎉 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.