Changelog
Notable changes per release. Latest first.
This page mirrors
CHANGELOG.md,
the canonical changelog maintained with git-cliff
as part of each release.
1.8.4 - 2026-11-09
Compare with the previous release
Upgrade and rollback
- Every configuration field new in this release defaults to the previous
behaviour, so an existing config runs unchanged:
listener.http.tcp_nodelay(false),execute_stream_heartbeat_s(0, no heartbeats),fetch.downloader(omitted, lookup-only),recover_unknown_uuid_resumes(true),max_timeout_retries(1),worker_outcome_tripwire(unset, off),has_slow_write_wait_timeout_sandleader_inactivity_timeout_s(0, wait indefinitely) andmigrate_temporary_indexes(false). - Older binaries, including v1.8.3, reject a config that names any of these fields, even at its default. Keep them out of shared config and chart templates until every consuming binary runs v1.8.4, and remove them before rolling back.
max_timeout_retriesdefaults to 1: a command timeout is queued once more for another worker before it is final, and for 30 s the retry stays off the worker (and, withnode_nameadvertised, the node) that failed it. Set it to 0 for the v1.8.3 behaviour.- An action marked
do_not_cacheis no longer answered from the action cache or merged with an identical running action (#3135); a target Bazel tagsno-remote-cacheorno-cachenow always executes. - A Redis deployment upgraded from before v1.8.1 still carries temporary
RediSearch indexes that are never garbage collected; set
migrate_temporary_indexes: trueon the Redis store once to replace them without deleting their keys (#3076).
⛰️ Features
- (fetch) add opt-in HTTP downloads with explicit proxy configuration (#3071) - (c80b44a)
- (server) add opt-in TCP_NODELAY for accepted connections (#3131) - (03e510e)
- try a command timeout on another worker, keep a retry off the node that failed it, drain a worker whose attempts keep failing (#3146) - (15c0b8b)
- Expose a max upload size for stores (#2077) (#3097) - (8e2d88e)
🐛 Bug Fixes
- (linux) Read PSS only when RSS shows it could matter (#3141) - (47666c5)
- Honor Action.do_not_cache when looking up and merging actions (#3135) - (218a8a9)
- retry an operation update after a transient store error, not only a version conflict (#3148) - (1fd8ba0)
- a cache fill that moves no bytes fails at an inactivity timeout (#3107) - (0139ba4)
- has() stops waiting on an in-flight write at a deadline (#3102) - (0daa9d5)
- recover a resumed upload that lands on the wrong instance (#3105) - (78348c8)
- Redis store: replace inherited temporary scheduler indexes without deleting their keys (#3076) - (346a914)
- heartbeat idle Execute streams and log client drops (#3103) - (08a4696)
- share one /proc scan across all action resource samplers (#3095) - (e58637e)
📚 Documentation
- (blog) The Bomb in Your Bill of Materials (#3114) - (9e20269)
- Document the two intentional REAPI deviations: priority order and QueryWriteStatus (#3136) - (d737c73)
- Point docs at basic_cas.json5 instead of the missing basic_cas.json (#3093) - (2543cae)
- Update README for nativelink version 1.8.3 (#3092) - (3f4ed8b)
🧪 Testing & CI
- Re-add tracing to sim (#3152) - (c7d1230)
- Split out main code to lib for testing (#3150) - (810105f)
- fix the four failure modes on recent merges to main (#3147) - (e10b8a6)
- Add fleet-sim, simulated workers against a real scheduler (#3129) - (8029041)
- Add nativelink-sim, an in-process simulation of the scheduler (#3128) - (66dfcf3)
- Add a fault policy and command counts to the fake Redis (#3127) - (0634261)
- Inject the clocks, worker ids, jitter and operation ids the simulation harness needs (#3126) - (2fb20b2)
- persist a Bazel repository cache for the hosted rbe-toolchain lane (#3133) - (bbc6d80)
- use a dedicated lockfile for Bazel 8 compatibility (#3132) - (ecaa5c3)
- preserve Trivy scan identities and enable PR remote execution (#3124) - (05c4129)
- Set new public cluster config (#3125) - (d2547fa)
- Fix test_nix_ci that didn't run on PRs (#3121) - (1c553bd)
- worker tests: gate STORE_UNREACHABLE_ERROR_TIP import to unix (#3108) - (233a511)
- skip Bazel lanes on web-only pull requests (#3116) - (c71c6ac)
- Linting for github action hashes (#3099) - (2c07ca4)
- Add human-readable fuzz job summaries (#3062) - (1fed667)
⚙️ Miscellaneous
- Remove bun in favour of pnpm (#2962) - (f2b463d)
- let the six security capabilities carry the security section (#3089) - (01bd5a1)
- one stat anatomy, one feature card, one copy of each claim (#3088) - (ecac349)
- Fix all the current build warnings (#3130) - (d03ff6e)
- Log the connection age when a connection dies of ENHANCE_YOUR_CALM (#3106) - (63edefe)
- Add and reformat many things with Prettier (#3118) - (b75b231)
- rewrite the agents page for the agent reading it (#3091) - (c711c09)
- designed video poster and an MCP demo that invites a click (#3083) - (7c65868)
- an even inset for the active nav pill, and optical padding before the external arrow (#3112) - (662cd23)
- a chart that matches its axis, and a Secure card with content (#3084) - (29b76fe)
- Change copyright holder to Trace Machina, Inc. (#3100) - (fff012f)
- make the social proof hard to miss (#3087) - (e53a59b)
- one nav map, marked exits, and breadcrumbs below the top level (#3082) - (d0c1186)
- unify the site's calls to action (#3078) - (4181c85)
- web, docs: fix blank Open Graph images (#3072) - (52782d5)
- replace the Google Form behind "Join Slack" with an on-site form (#3086) - (f5b96ec)
⬆️ Bumps & Version Updates
- Fix vulns in pre-commit tools (#3123) - (ba5e377)
- Update follow-redirects and qs in the Azurite test runner (#3119) - (792f6a7)
1.8.3 - 2026-10-28
Compare with the previous release
⛰️ Features
- size actions from the usage its workers report (#3066) - (9aa8c8e)
- Add GitHub job metadata to Bazel build events (#3067) - (bda7d91)
🐛 Bug Fixes
- Count a store loss only when the worker marks it, so a lost result still spends max_job_retries (#3081) - (9e47e0f)
- retry the action read at start; a store the worker cannot reach does not spend the action's retries (#3075) - (6fd7af8)
- Fix learned resource sizing regressions on main (#3070) - (73df5dd)
- Redis store: bound the temp key of every upload (#3065) - (b57a164)
- Avoid embedding the Cargo manifest path (#3064) - (76aabfd)
- restore broken /resources/oreilly-bazel-book page (#3042) - (cfc0b95)
🧪 Testing & CI
- (ci) fix Clippy and Redis failures and restore Bazel PR checks (#3069) - (9577afb)
- worker tests: import Semaphore on every platform (#3074) - (a421953)
- Add REAPI protobuf fuzz target (#3057) - (dbcc0e5)
⚙️ Miscellaneous
- give the community page's offline contributor fallback real counts (#3060) - (3155e49)
- refresh the community page's fallback stats and hide a departed account (#3059) - (69cfd7d)
⬆️ Bumps & Version Updates
- Remove the vulnerable zstd line that survived the 0.14.3 bump (#3061) - (cebd484)
- Update Rust crate zstd to 0.14.0 [SECURITY] (#3056) - (fd11dc1)
1.8.2 - 2026-10-26
Compare with the previous release
⛰️ Features
- Bound the requests an Azure store keeps in flight, uploads included (#2985) - (4a6f505)
- Report action phases, transfer bytes and why an attempt ended in origin events (#3040) - (19cdbe7)
🐛 Bug Fixes
- verify's repair no longer deletes the durable filesystem copy (#3046) - (19e8462)
- Finish an upload's commit on its own task when the client leaves after its last byte, instead of parking it unpolled in the store's write queue (#3044) - (779c3e7)
- Sample and kill an action across its whole process tree, and kill the action furthest over its reservation under worker memory pressure (#3038) - (bed7314)
- Stop the existence cache vouching for a blob once it is found missing, and keep the missing-blob detail through a forwarded status (#3047) - (4ba0f7d)
- Grow the compression store's block index as blocks are written instead of sizing it from the upload size (#3045) - (722ce48)
- Forward binary headers in forward_headers (#3017) - (e76fd95)
- Declare macOS rustc dylibs and rust-objcopy as lre-rs toolchain inputs (#3036) - (f01785c)
- Give a namespaced action a /proc that matches its PID namespace (#3024) - (db200db)
📚 Documentation
🧪 Testing & CI
- Compare the swept attempts with assert_eq in the executing sweep test (#3053) - (0909e73)
- Express the Azure port-hint interval in minutes (#3050) - (315f096)
- run AddressSanitizer and fuzzing nightly (#3029) - (e4b5314)
- Keep coverage publication independent of cache uploads (#3033) - (0c4a6cf)
⬆️ Bumps & Version Updates
- Override MSAL Node to 7.1.0 in the Azurite test runner (#3048) - (7e55aeb)
- Update five dependencies with OSV advisories (#3035) - (42b4b4d)
1.8.1 - 2026-10-23
Compare with the previous release
⛰️ Features
🐛 Bug Fixes
- (scheduler) read the memory store's listing whole, never under the lock inside the stream (#3013) - (13939b5)
- Replay a reset buf_channel stream on every retry, not only the first: later upload retries sent an empty body and failed with InvalidArgument (#3026) - (547a151)
- Read a filter pass's listed records one at a time again: the 64-way reads broke the scheduler's Redis connection under a queue burst (#3021) - (86c2923)
- Report content length from filesystem store has() (#3006) - (b014176)
- Read the listed records of a filter pass 64 at a time so a deep queue on Redis lists inside the provisioner's timeout (#3001) - (4edf822)
- Create the scheduler index persistent: RediSearch never garbage collects a temporary index and every query pays for the dead entries (#3000) - (05bb310)
🧪 Testing & CI
- Run primary Bazel CI on warm NativeLink workers (#3016) - (e44d020)
- Compare the webpki root store with assert_ne so pedantic Clippy accepts the non-empty guard. (#3007) - (8a93851)
- Rename GitHub Actions workflows to an Area / Concern scheme. (#2997) - (113fee0)
⬆️ Bumps & Version Updates
- Fix nine OSV advisories in rustls-webpki, follow-redirects, DOMPurify and Next.js (#3022) - (e51df03)
- Fix rustls-webpki and follow-redirects advisories [SECURITY] (#3020) - (daa028f)
- Upgrade to Bazel 9.3.1 and 8.8.2 (#3015) - (a7bb376)
- Update Rust crate webpki-roots to v1.0.10 [SECURITY] (#2987) - (21ae178)
- Refresh ca-certificates apt pin in Compose image (#2994) - (818a71d)
1.8.0 - 2026-10-21
Compare with the previous release
⛰️ Features
- Bound object store reads with an adaptive permit pool, Azure first (#2941) - (3e3237c)
- add option to mount cached input directories as read-only (#2751) - (786c2c2)
- Bound a worker's input fetches with one pool across the actions it stages (#2952) - (23b4472)
- Grow and jitter consecutive throttle waits in the retrier (#2939) - (23e76a8)
🐛 Bug Fixes
- (evicting_map) stop has() batch from cascading-evicting every queried blob (#2840) - (56085a4)
- (remote-exec) handle scheduling edge cases and output flush (#1533) (#2963) - (1b9362d)
- Restore per-action input fetches as the worker default and suggest a shared pool under load (#2984) - (2a3ad61)
- Report empty Azure and Redis objects under a non-empty digest as missing and stop cutting unbounded Azure reads (#2993) - (76e17f5)
- Report the digest size from the compression store has, not the compressed one (#2960) - (a1e6efb)
- Reject incomplete CAS uploads before publishing blobs (#2974) - (086289a)
- Reconnect and retry the Redis length check after a failover (#2961) - (11dc077)
- Discard the blocks a failed Azure upload left staged (#2969) - (2966660)
- Forward cache removal through CacheMetricsStore (#2968) - (7abc434)
- Preserve retryable failures in CAS uploads (#2966) - (94c86c0)
- Return Unavailable when resuming an active ByteStream upload (#2889) - (a55baad)
- Count the fast store toward presence when the slow store is read-only (#2959) - (bd87f4d)
- Reduce matcher contention after lost assignments (#2954) - (8431150)
- Write every upload through the existence cache instead of discarding one it believes present (#2951) - (d05d910)
- propagate completeness backend errors instead of swallowing them (#2815) - (7149987)
- close two subscription-lifecycle windows that silently drop events (#2839) - (89ea706)
- map transport-originated Unknown to retryable Unavailable (#2816) - (0cd82ff)
📚 Documentation
🧪 Testing & CI
- run Bazel Native nightly and on merge, not on every PR (#2880) - (616c315)
- Split rbe-toolchain test into generate and test (#2964) - (6a52a66)
- defer cargo, integration, and coverage lanes to nightly (#2877) - (34da49a)
⬆️ Bumps & Version Updates
- Upgrade stale git and curl apt pins in the Dockerfiles (#2995) - (e1c6ed2)
- Fix vulnerable dependencies in fuzzing, Azurite, and web tooling (#2965) - (c788277)
- Update Rust crate zip to v9 [SECURITY] (#2956) - (d5f7f9b)
- Update renovate.json5 (#2950) - (5186112)
- Update Rust crate rustls to v0.23.46 [SECURITY] (#2938) - (f798fa1)
- Upgrade curl to 8.5.0-2ubuntu10.16 (#2942) - (8bf6be1)
1.7.7 - 2026-10-14
Compare with the previous release
⛰️ Features
- Count retries, recoveries and exhausted retries per client (#2930) - (9ff16ea)
- Hold a worker for a queued action whose reservation only fits an idle one (#2933) - (0fd9cd2)
- Retry an action's input fetch on the worker after a transient store failure (#2932) - (1911c9c)
- Honor Retry-After on throttled Azure blob responses (#2931) - (00d3b7f)
- Report queued and executing actions by age (#2929) - (d06d9c9)
🐛 Bug Fixes
- Clear a read-only tree without changing the mode of the files it links to (#2934) - (c6ae7d1)
- Fetch an input again when the store evicts it between fetch, lookup and link (#2928) - (4ad28b3)
- Resolve a forwarded operation name by its configured instance and carry the request context to the upstream scheduler (#2927) - (23d54fd)
- Relink an input whose blob was evicted during staging and count variant hits as blob use (#2926) - (a435beb)
- Report running operations on the worker keepalive and requeue what the worker no longer runs (#2925) - (beba0fe)
- Sweep executing actions on the scheduler's clock and keep a result the store refuses until it is resent (#2923) - (963000e)
- Worker match logging off by default, and listing only queued and executing operations when on (#2924) - (b5bdf36)
🧪 Testing & CI
⚙️ Miscellaneous
1.7.6 - 2026-10-08
Compare with the previous release
🐛 Bug Fixes
- (scheduler) tolerate backwards clock steps in worker liveness refresh (#2900) - (76b1f93)
- Pipeline BEP stream store writes so acks no longer wait one event at a time (#2912) - (bc7ce7c)
- Fix a blocking-pool deadlock in
nativelink_util::fs::read_dir(#2647) - (f5ae69b)
🧪 Testing & CI
⬆️ Bumps & Version Updates
- Bump hickory-resolver from 0.26.1 to 0.26.3 (#2908) - (c924717)
- Update next and dompurify for security issues (#2898) - (698f084)
1.7.5 - 2026-10-06
Compare with the previous release
🐛 Bug Fixes
- Resend a retried event-sink write from offset zero (#2906) - (417771e)
- Drop hint dimensions the ladder does not reserve (#2903) - (b6f1b9b)
🧪 Testing & CI
- Check and fix license headers (#2902) - (2921f75)
- Add Azurite test support for AzureBlobStore (#2684) - (a347402)
⬆️ Bumps & Version Updates
1.7.4 - 2026-10-05
Compare with the previous release
🐛 Bug Fixes
- Let paused idle workers accept new work (#2876) - (7d3d20c)
- Change worker to consider reclaimable page cache as usable memory (#2873) - (db375f0)
- Azure store: bound a read to the bytes the digest declares and resume a retry (#2872) - (83c1f81)
📚 Documentation
🧪 Testing & CI
- (nix) warm the Bazel Dev lane from the remote cache via hermetic toolchain identity (#2874) - (5b75558)
- skip the sanitizer lane on docs-only changes (#2878) - (59d8ede)
- build the OCI image on merge-to-main, not on every PR (#2879) - (bb3ead5)
- Disable Bazel disk cache when nativelink cloud cache is enabled (#2864) - (b9a0b1e)
⬆️ Bumps & Version Updates
- (deps) update rust crate serial_test to v4 (#2865) - (d54ab05)
- (deps) update dependency typescript to v7 (#2863) - (46539bd)
1.7.3 - 2026-10-01
Compare with the previous release
⛰️ Features
- Support queueing-service through an opt-in gRPC event sink (#2811) - (181a1d3)
- bound the input fetch with max_download_timeout and let a kill reach it (#2846) - (82240c6)
- read capacity and free memory from the worker's own cgroup directory (#2845) - (b4a5468)
- Historical resource scheduler: hints by digest keys, size classes with a cold-start policy, and where each reservation came from (#2832) - (59cbad2)
- Persistent workers: a configurable pool with an idle sweeper, the action environment, namespaces, measured usage, and a wait at the cap (#2830) - (035dd63)
- memory escalation with retry budgets by cause, the whole worker as the last step (#2829) - (3c52ee1)
- a disk soft limit, and peak_disk_kb from the files an action writes (#2825) - (7bd3c54)
- each action gets a private /tmp, its own tmp directory bound over /tmp (#2824) - (c79e3bb)
- Worker reaps the zombies actions leave behind, and an action's stragglers no longer hold its output open (#2823) - (4fe0a27)
- SIGTERM grace before the kill, output kept, a TMPDIR per action, and resource usage with an outcome (#2822) - (9a95e29)
- Worker readiness follows scheduler registration (#2821) - (de7a540)
- Worker advertises CPU and memory from its own cgroup limits (#2820) - (d86ff4f)
- soft memory enforcement against the reservation, and a disk guard before inputs are fetched (#2812) - (fcdccc8)
- bound output capture, upload fan-out, precondition scripts and orphaned action directories (#2810) - (f10c7b7)
- kill the whole process group when an action times out or is cancelled (#2809) - (e6aa38a)
- Dispatch is acknowledged or declined by the worker (#2808) - (a21d82c)
- GoingAway with a drain flag, reconnect backoff with jitter, and a shutdown guard that waits for the drain (#2807) - (2bfa020)
- Matching pass: room that opens mid-pass goes to the oldest waiting action, one store read per queued action (#2806) - (2762510)
- Redis scheduler store: RESP3 cursor pages, the retention default, an unreadable row skipped, a wait for the new index (#2803) - (5ef7a83)
- least_loaded and best_fit allocation strategies, typed properties cached per pass (#2805) - (a7cc44d)
- Admin API: list connected workers and queued demand (#2804) - (02a64f2)
- Serve the scheduler queue in order, and let workers report their load on the keepalive (#2796) - (4c06bb8)
- Unsatisfiable actions: the clock follows the fleet's shapes, and a timeout for a fleet with no worker at all (#2799) - (31be880)
- Scheduler worker state: budget released at completion, pause until the next keepalive, retry cap fails with FailedPrecondition (#2798) - (71bb05a)
- Worker liveness: any message counts, a 10s default, a dead keepalive reconnects, SIGINT drains (#2797) - (2f54cc3)
🐛 Bug Fixes
- a stalled scheduler connection reconnects instead of leaving the worker evicted and idle (#2856) - (389cf73)
- a fast tier that ends short on a digest resumes from the slow store, and a missing input names its digest so the client re-uploads it (#2855) - (bd1bb34)
- Give a live worker a grace period to report its own timeout (#2826) - (5b4e555)
- a read that stops short of the digest's size is an error, not EOF (#2844) - (fd6530e)
- build the cleanup mark's guard after the lock is released (#2843) - (9a03932)
- Scheduler skips and counts a queue entry it cannot read (#2795) - (4001f52)
- Sorted index reads return the whole set, not ten rows (#2794) - (7b2c02d)
🧪 Testing & CI
- Give the oversized-upload store tests the 30 s deadline the third already has (#2818) - (3ff63f1)
- Give trivy three vulnerability database mirrors to fall through (#2801) - (a9c6801)
1.7.2 - 2026-09-25
Compare with the previous release
Major changes
This release adds worker lifecycle management and opt-in experimental Buck2 file capture with invocation isolation. It also fails queued actions when no worker can meet their requirements, fixes signal-terminated worker property commands, and keeps directory construction retries on the same lock.
⛰️ Features
- Add opt-in experimental Buck2 file capture and invocation isolation (#2791) - (b00fb48)
- Add worker lifecycle management (#2787) - (9e83b48)
- fail queued actions with criteria no worker can meet (#2784) - (67cebb5)
🐛 Bug Fixes
- Fix signal-terminated worker property commands (#2780) - (8f2c884)
- keep directory construction retries on the same lock (#2750) - (d48a7f0)
- Fix remaining refs to rustls 0.23.45 (#2775) - (f4d0266)
📚 Documentation
- (llms) regenerate llms.txt, llms-small.txt and llms-full.txt (#2788) - (62c17a3)
- (llms) regenerate llms.txt, llms-small.txt and llms-full.txt (#2771) - (00f8a96)
🧪 Testing & CI
⚙️ Miscellaneous
⬆️ Bumps & Version Updates
- Upgrade curl to 8.5.0-2ubuntu10.15 (#2790) - (d20df95)
- baseline-browser-mapping to 2.11.0 (#2776) - (cc06e62)
1.7.1 - 2026-09-17
Compare with the previous release
⛰️ Features
🐛 Bug Fixes
- fix active counts when a client disappears (#2765) - (0c41992)
- Sign GCS service-account JWTs with aws-lc-rs [SECURITY] (#2734) - (5b330a8)
📚 Documentation
- Empower AI systems (#2766) - (de28784)
- Enhance NativeLink description with use cases (#2759) - (5d6e287)
🧪 Testing & CI
- Let the S3 store address S3-compatible endpoints (#2768) - (acb3a7c)
- Navbar active state (#2744) - (3de455d)
- Return an error when TlsClient cannot load CA root certificates (#2748) - (6def321)
⚙️ Miscellaneous
1.7.0 - 2026-09-15
Compare with the previous release
Major changes
Filesystem-store uploads now use generation-specific filenames, preventing delayed eviction from removing a newer upload. Uploads also repair index entries whose files are missing, and corrupt fetch-store entries return an error instead of panicking.
Migration and rollback
New filesystem-store files use d2/<hash>-<size>-<generation> and
s2/<key>-<generation>. Writable startup migrates existing cache files. Failed
migrations remain readable and retry at the next startup.
Earlier NativeLink versions cannot read the new directories. Plan rollback with a separate cache directory or a cache rebuild. See the filesystem-store guide for details.
🐛 Bug Fixes
- Fix filesystem eviction races and recover missing cache files (#2762) - (a9c7bae)
- don't panic on a corrupt fetch-store entry in FetchServer (#2760) - (b3cbb7b)
📚 Documentation
- Add figures and Biology updates to the RE API Fellow post (#2755) - (63c5f09)
- (config-reference) regenerate for NativeLink v1.6.7 (#2746) - (76392b5)
- Remove the byline from the RE API Fellow post (#2754) - (59c9d6b)
- Say stipend instead of salary in the RE API Fellow post (#2752) - (d6bfd56)
- Announce the inaugural RE API Fellow (#2749) - (df8ffcd)
1.6.7 - 2026-09-07
Compare with the previous release
⛰️ Features
🐛 Bug Fixes
📚 Documentation
- (config-reference) regenerate for NativeLink (#2711) - (9d0731e)
- Update mermaid to 11.17.2 [SECURITY] (#2738) - (e6d3796)
- Update esbuild to 0.28.2 [SECURITY] (#2736) - (df6d817)
- track Menlo case-study figures under public/assets (#2723) - (4d8fc4b)
- Cursor/menlo security case study 6c68 (#2721) - (574986b)
🧪 Testing & CI
⚙️ Miscellaneous
- stop linking released macOS binaries to /nix/store libiconv (#2742) - (63c9fd7)
- Retire queued actions no client is waiting on (#2726) - (090d972)
- Label execution resource samples with the action mnemonic (#2712) - (53b528e)
⬆️ Bumps & Version Updates
- Update postcss to 8.5.28 [SECURITY] (#2740) - (908250c)
- Update Next.js to 16.2.12 [SECURITY] (#2733) - (f081c89)
- Update js-yaml to 4.3.2 [SECURITY] (#2737) - (634214f)
- Update dompurify to 3.4.14 [SECURITY] (#2735) - (64e6e04)
- Update nanoid to 3.3.18 [SECURITY] (#2739) - (5d720d5)
- Update Rust crate h2 to 0.4.19 [SECURITY] (#2732) - (b8a1163)
- Update Rust crate event-listener to 5.4.2 [SECURITY] (#2731) - (5dae6a0)
- Upgrade scorecard action to 2.4.4 (#2725) - (5daa1a2)
- Upgrade rules_rs to 0.0.108 to fix zlib issues (#2724) - (e42efc8)
- Upgrade curl to 8.5.0-2ubuntu10.13 (#2717) - (1330267)
1.6.6 - 2026-08-21
Compare with the previous release
⛰️ Features
📚 Documentation
- (config-reference) regenerate for NativeLink (#2700) - (aa4ca31)
- (config-reference) regenerate for NativeLink v1.6.5 (#2697) - (712f321)
- rewrite the open-source documentation site for v1.6.5 (#2698) - (8ae3317)
- generate the metrics reference and bring the config reference to v1.6.5 (#2701) - (8f86dab)
- add the journey components, page templates, lint scripts and the llms.txt generator (#2699) - (b6bf4d0)
🧪 Testing & CI
- Never notify the action-done channel while holding the running-actions mutex (#2706) - (4eb2d07)
- Fix a crash from scheduler/worker disconnect [1.6-patch-2] (#2643) - (64f0fbc)
⚙️ Miscellaneous
- Evict a worker that never acknowledges a kill (#2707) - (4ae820a)
- Match undeclared platform properties dynamically instead of rejecting them (#2705) - (2978a1d)
- Collapse the PR template comment once the description is fixed (#2703) - (5f028d9)
- Batch input staging syscalls (#2695) - (1444869)
- fix log dupe at cmd completion (#2694) - (cbcdf64)
⬆️ Bumps & Version Updates
- Update Rust crate lru to 0.18.0 [SECURITY] (#2681) - (5d29f82)
- Bump the pinned curl to 8.5.0-2ubuntu10.12 (#2702) - (888ea82)
1.6.5 - 2026-08-18
Compare with the previous release
⛰️ Features
- Add OTLP metrics for workers, gRPC, the scheduler, store tiers and health (#2687) - (9172cec)
- Add an optional TTL for keys a redis store writes (#2688) - (5c1a042)
- Add support for multi arch container on docker compose examples (#2653) - (ed56f95)
🐛 Bug Fixes
📚 Documentation
🧪 Testing & CI
- (worker) 🐛 lease active action inputs across eviction (#2675) - (df7de0d)
- Chunk oversized messages in the bytestream write and batch update paths (#2686) - (36a7b08)
- Upgrade rules_rs and hermetic_llvm (#2674) - (e9033a9)
- Enable remote execution in CI (#2671) - (0af8592)
⚙️ Miscellaneous
- Rework the PR template and check that it is filled in (#2689) - (b76af1c)
- Retry the final key TTL after a failover (#2691) - (3f1fb5d)
- Reap orphaned actions and check worker liveness before recreating one (#2685) - (a50385e)
- Don't let one scheduler instance time out another's in-flight actions (#2680) - (d4fa6af)
- Chunk ByteStream writes instead of sending a whole blob as one message (#2679) - (93b679b)
- CAS eviction mid-build is recoverable (#2678) - (9565f46)
- Limit local uploads to trusted lanes (#2677) - (efc21cf)
- Harden the compressed GrpcStore download path (#2640) - (aba6718)
⬆️ Bumps & Version Updates
- Update copyright year to 2026 (#2676) - (492fa50)
- increase RPC timeout to 30-second deadline (#2683) - (02dd21d)
- Update CONTRIBUTING.MD instructions template from v0.x.y to v1.x.y (#2667) - (624420d)
- Amend release steps in CONTRIBUTING.md (#2665) - (364fd2e)
1.6.4 - 2026-08-04
Compare with the previous release
⛰️ Features
- Add issue templating for more approachable reports (#2471) - (4eb80ad)
- Add opt-in zstd wire compression to GrpcStore transfers (#2596) - (64ca974)
🐛 Bug Fixes
- Fix deadlock due to worker resource-tracking leak in scheduler [1.6-patch-1] (#2642) - (7ddf1bd)
- Fix duplicate executions of the same action that caused scheduler state to get out of sync [1.6-patch-6] (#2648) - (4278d4b)
- Fix S3 credential discovery over HTTP (#2651) - (58dd792)
- (redis) skip FT.AGGREGATE rows for docs that expired mid-query (#2656) - (f784549)
- (error) classify transient Redis failures as retryable (#2657) - (56aa6f7)
- (worker) don't abort the worker when a disconnect catches an action in transit (#2658) - (bafafc7)
📚 Documentation
- (config-reference) regenerate for NativeLink (#2652) - (4649c50)
- Zstd transfers consistency (#2660) - (46a3202)
- Add GTM to the docs site to improve developer experience (#2661) - (af1bd74)
- remove NativeLink Cloud product listings and links (#2637) - (d16a1d7)
🧪 Testing & CI
⚙️ Miscellaneous
- (worker) prevent upload_results deadlock when file count exceeds semaphore permits (#2636) (#2638) - (7db3f70)
- Move Github bazel retry into a general command (#2616) - (66055ac)
- Remove the marketing site tracker script (#2612) - (4c2269a)
1.6.3 - 2026-07-24
Compare with the previous release
⛰️ Features
- Add GTM to the corporate site (#2610) - (94f312a)
- Add the Leadfeeder tracker to the marketing site (#2606) - (9700a4a)
- Prefetch directory-cache tree protos with one GetTree stream (#2546) - (2cbf21e)
🐛 Bug Fixes
- Fix #2564, .exec cleanup and coun F_FULLFSYNC operations (#2602) - (b44f31d)
- Fix custom-image workflow: grant pull-requests: write and fix command parsing (#2600) - (63567c8)
- Let GCS get_part defer NotFound to the retrier (#2584) - (3947c71)
- Fix skopeo login on ubuntu-24.04 for all image workflows (#2577) - (9717f2f)
📚 Documentation
- (config-reference) regenerate for NativeLink v1.6.2 (#2576) - (9daa989)
- Move the FAQ into per-page FAQ sections (#2590) - (82a036c)
- Extend the docs FAQ to cover every documentation area (#2581) - (217276c)
- Redis eviction events support (#2521) - (45a5652)
🧪 Testing & CI
- Skip empty chunks in GCS get_part read stream (#2620) - (41be332)
- Add trace logging for bytestream read (#2482) - (4e2f554)
- Bootstrap CI on NativeLink Cloud staging (remote cache + BES, dark) (#2579) - (eed5b31)
⚙️ Miscellaneous
- Web/compliance and careers (#2624) - (97916b2)
- Replace determinate with nix-quick-install-action (#2618) - (bf908e5)
- add security and trust responsibilities to careers job description (#2622) - (3d40c91)
- Upgrade to rules_rs 0.0.96 (#2615) - (0e7580f)
- Increase timeout on trivy (#2613) - (fbf49d6)
- Record the execution metrics that were declared but never emitted (#2599) - (7bb62d7)
- Make filesystem store posix_fadvise(DONTNEED) opt-in (#2608) - (d15b2a9)
- Commit public read-only cache defaults so fork PRs actually receive them (#2604) - (9fe34de)
- Skip pre_exec hook when namespaces are disabled to allow posix_spawn (#2597) - (02e3e76)
- Coalesce FilesystemStore durability flushes on macOS (#2539) - (97b961a)
- cmake links; rust headers; sandboxing (#2586) - (ddcb47e)
- Exclude the aggregate total runner entry from the canary hit-rate math (#2589) - (3b1e179)
- Give fork PRs read-only remote cache via a public key variable (#2587) - (43c0658)
- cargo-llvm-cov gets flagged, but doesn't have actual vulnerabilities (#2585) - (d59e50f)
- Cache cargo runs under nix (#2570) - (5ee0afc)
⬆️ Bumps & Version Updates
- fix compliance claims, normalize contact emails, add careers pages (#2621) - (b3659b7)
- add change history to Terms & Privacy page (#2619) - (c3ffa86)
- anyhow to 1.0.104 (#2580) - (d1e49ac)
- Update Rust crate syn to v3 (#2578) - (abd0258)
1.6.2 - 2026-07-17
Compare with the previous release
⛰️ Features
- Add fallback match interval to simple scheduler (#2557) - (7a4279b)
- Add opt-in small-blob read coalescing to GrpcStore (#2540) - (4be35e6)
🐛 Bug Fixes
- Remove quoting around NetApp (#2556) - (65e2ec2)
- Fix skopeo login issues on image publish (#2549) - (e72490c)
- Handle zero digests in CompressionStore (#2548) - (b08995d)
📚 Documentation
- (config-reference) regenerate for NativeLink v1.6.0 (#2553) - (f871377)
- Adds weekly and "everything" docs regen (#2551) - (2a061ba)
- Remove StoreSpec docs (#2545) - (fb37e86)
- Add opt-in subtree-keyed caching to the worker DirectoryCache (#2541) - (9f9451e)
🧪 Testing & CI
- Fix AsyncFixedBuffer with zstd compression, remove unused BufChannelReader adapter (#2574) - (b01cb0d)
- Reject duplicate store names in StoreManager (#2533) - (2106b1a)
- Add free-disk to Redis store tester (#2543) - (4b1de2c)
- Fix flakey MongoDB test (#2535) - (b8e8171)
⚙️ Miscellaneous
- Remove more unused items (#2561) - (8a8be18)
- Don't update config reference without changes (#2562) - (48d9b96)
- Tag config regen builds to our bot account (#2554) - (5003676)
- Enforce Vale settings for config as well as markdown (#2552) - (27fb8ad)
- curl 8.5.0-2ubuntu10.11 security update (#2544) - (a8e383a)
⬆️ Bumps & Version Updates
- Upgrade anyhow to 1.0.103 for RUSTSEC-2026-0190 (#2569) - (6675acb)
- Upgrade quick-xml to 0.41 for RUSTSEC-2026-0194 (#2566) - (b173e4b)
- Upgrade serde_with to 3.21 for GHSA-7gcf-g7xr-8hxj (#2559) - (b18311f)
- Update nixpkgs so we can drop our patched renovate (#2537) - (ad0d83d)
1.6.1 - 2026-07-08
Compare with the previous release
⛰️ Features
- Materialize directory-cache nodes concurrently on cold misses (#2526) - (065be46)
- Marcussorealheis extend zstd (#2527) - (e4b6ca6)
- Adds timer to hyper (#2523) - (63f3454)
- Add REAPI content-defined chunking (SplitBlob/SpliceBlob) support (#2497) - (9d86aaf)
🐛 Bug Fixes
📚 Documentation
🧪 Testing & CI
- Increase the attic retry time (#2524) - (21dadec)
- Disable Bazel lockfile in 8.7 compatibility lane (#2517) - (8162a93)
⚙️ Miscellaneous
- (release) cross-compile the aarch64 Linux binary on x86 (#2529) - (32e4952)
- add MCP AI widget, MDX support, and design updates (#2488) - (7909e32)
- Attach the tag to images pushed on a tag build (#2515) - (05c5fac)
⬆️ Bumps & Version Updates
- Upgrade crossbeam-epoch and serial_test (#2519) - (0ac1434)
- Upgrade to Bazel 9.1.1 and 8.7.0 (#2514) - (1f94866)
1.6.0 - 2026-07-06
Compare with the previous release
⛰️ Features
- Add troubleshooting tips for macOS Nix setup (#2505) - (5e72a32)
- Regenerate Changelog on New Release (#2500) - (503056f)
- Add Oracle store (#2492) - (8b74394)
- Improve logging for detect_duplicate_upload and fake redis sync (#2481) - (66f7159)
- Add multi-arch images for worker-init (#2459) - (a5b6f65)
📚 Documentation
- (config-reference) regenerate for NativeLink v1.5.2 (#2447) - (9ec713c)
- Update the OCI store with the tests and docs (#2506) - (d624f6a)
- [web] restore blog posts deleted by the site redesign (#2501) - (6dca947)
- Update LRE/store docs to fix #2406 (#2498) - (5516d8b)
- Make cleanup wait timeout configurable in LocalWorkerConfig (#2456) - (f25f68d)
- Improve other build systems docs (#2448) - (bc1a294)
🧪 Testing & CI
- Fix custom image building (#2477) - (452a720)
- skip writes larger than max_bytes instead of buffering them (#2473) - (1a10e3f)
- Fix various OCI image upload issues (#2457) - (5f6be36)
- Improve security scorecard (#2452) - (babdfd9)
⚙️ Miscellaneous
- (release) build aarch64 Linux binary on a native arm64 runner (#2483) - (d55e0e5)
- (release) pin cosign to v2.5.3 for legacy .sig/.pem output (#2480) - (1829fa4)
- (release) keep legacy cosign signature/cert outputs (#2478) - (2cd0507)
- (release) add signed release artifacts with SLSA provenance (#2470) - (c72bce8)
- Migrate Azure Blob store to use the Azure v1.0 crates (#2472) - (884ffde)
- Remove reclient in favor of Siso (#2510) - (d9325f8)
- Strip stray item from changelog (#2507) - (87d16c6)
- evict .exec variant when its digest is evicted (#2474) (#2503) - (6a162e3)
- Default --fallback for nix rather than having to set it everywhere (#2475) - (f170cdf)
- Rename time-based config values to have appropriate postfixes (#2462) - (ccc01eb)
- Disable various things we don't want renovate to upgrade (#2469) - (414246b)
- == not != for multi-arch upload (#2455) - (d74ba31)
- Multi arch image publish with date-versioning (#2454) - (65d43ed)
- ref_store now resolves on boot, not first query (#2451) - (0952bb6)
⬆️ Bumps & Version Updates
- (web) Replace hero visual with YouTube video embed (#2443) - (d1863ca)
- Update dependency marked to v18 (#2502) - (0d516b9)
- Update Rust crate anyhow to v1.0.103 [SECURITY] (#2494) - (d459bd9)
- Update Rust crate opentelemetry_sdk to 0.32.0 [SECURITY] (#2487) - (ce3a919)
- Update website components (#2486) - (3bfe408)
- bump quinn-proto to 0.11.15 and memmap2 to 0.9.11 (RustSec) (#2479) - (ae5762e)
- Update dependency @types/node to v26 (#2453) - (a9f5ce1)
- Update logo (#2450) - (1989e8d)
1.5.2 - 2026-06-17
Compare with the previous release
🐛 Bug Fixes
- (redis) ride out a Sentinel failover on the write paths (#2445) by @amankrx - (a776234)
- (origin-events) don't drop resource-usage events on transient failure (#2442) by @amankrx - (78af03a)
📚 Documentation
⚙️ Miscellaneous
1.5.1 - 2026-06-16
Compare with the previous release
⛰️ Features
🐛 Bug Fixes
- (redis_store) recover connections through a Sentinel master failover (#2438) - (06e0caf)
- (redis_store) retry has/get_part/list on failover too (#2437) - (d4565e6)
- (redis_store) re-resolve master on update verify/rename for failover safety (#2435) - (54918b6)
📚 Documentation
🧪 Testing & CI
- Dump coverage in text form during CI (#2432) - (04c2f49)
- Make bash shell scripts actually fall over (#2428) - (d537003)
- worker_utils test coverage to 100% (#2427) - (729c88d)
1.5.0 - 2026-06-12
Compare with the previous release
⛰️ Features
- opt-in bypass of leader/follower dedup for huge blobs (#2415) - (b4ee17c)
- (scheduler) publish resource-usage origin event from ApiWorkerScheduler (#2413) - (08a2f24)
- (worker) sample action peak memory by process group (#2409) - (5a9259e)
🐛 Bug Fixes
- ⚠️ Breaking: Prevent CAS and AC from using the same store (#1177) - (9a5843b)
Configs that point an instance's
cas_storeandac_storeat the same store now fail at startup withInvalidArgument. Give the AC its own store before upgrading. - make unref ENOENT idempotent and demote map/disk divergence to warn (#2424) - (f200e10)
- single-acquire active_uploads in create_or_join_upload_stream (#2429) - (f1032f8)
- fall through to slow on stale fast-tier map entries (#2414) - (5186a3b)
- bound cid_* lifetime to stop orphan accumulation (#2417) - (d9403b0)
- pass explicit TIMEOUT to absorb RediSearch slow scans (#2393) - (081a2c4)
- Fix calculation of multipart S3 upload chunk size (#1648) (#2091) - (1ca2373)
- Fix println/debug warnings (#2423) - (c9a63e7)
📚 Documentation
- Add cmake and recc tutorial blog (#2297) - (9760b94)
- Fix broken reid link at the bottom of cmake-recc (#2426) - (b15745d)
- link to enterprise.nativelink.com for self-serve Helm licensing (#2407) - (1a4953e)
⚙️ Miscellaneous
- De-duplicate filesystem emplace (#2396) - (73029bb)
- Drop as_know_platform_property_provider (#2410) - (1794d85)
- Drop vercel.json (#2425) - (6422b0e)
- use Duration::from_mins() for timeout constants (#2411) - (ab0f881)
📦 Bumps & Version Updates
1.4.0 - 2026-06-06
Compare with the previous release
⛰️ Features
🐛 Bug Fixes
- surface deferred write errors before emplacing files (#2402) - (76b1924)
- Fix a pile of lints that clippy complains about (#2389) - (6e29b93)
📚 Documentation
🧪 Testing & CI
- Fix infinite loop when using --help flag on the integration test script (#2395) - (9b275a3)
- run indicator checks in parallel, not serially (#2390) - (43b2eb2)
- Coverage update nativelink-error and nativelink-config(serde_unnti) (#1479) - (bf7c177)
⚙️ Miscellaneous
- (nix) retry transient Bazel external-fetch failures (#2397) - (776fa53)
- support
IP_FREEBINDto bind not-yet-assigned addresses (#2399) - (3a9a8bc) - Drop unnecessary checks section (#2388) - (fce7ba0)
- replace deprecated
pkgs.systemwithstdenv.hostPlatform.system(#2381) - (6081fa7) - Clarify error when TCP Listener binding fails (#2394) - (f4b57b9)
- Remove extra Github icon (#2387) - (4711eb3)
- gcs_store, filesystem_store: lightweight check_health probes (#2361) - (c5d5691)
- migrate off deprecated crane
stdenvarg tostdenvSelector(#2379) - (f4429b6)
⬆️ Bumps & Version Updates
- (deps) update dependency typescript to v6 (#2364) - (48bf9cb)
- Update hoverkraft-tech/compose-action action to v3 (#2400) - (fe6d437)
- Update coverage for nativelink-error (#1482) - (01eff09)
- Update dependency fumadocs-mdx to v15 (#2383) - (cd11280)
- Update dependency tailwind-merge to v3 (#2386) - (3c783c0)
- Update dependency motion to v12 (#2385) - (eaf3270)
- Update dependency @types/node to v25 (#2372) - (c524dba)
- Update Rust crate tar to v0.4.46 [SECURITY] (#2378) - (e5873e5)
- Upgrade aws-smithy components to drop hyper 0.x (#2384) - (f97e865)
1.3.2 - 2026-05-29
Compare with the previous release
📚 Documentation
🧪 Testing & CI
⚙️ Miscellaneous
- add CSS ambient declarations to work with TS6 (#2374) - (84a7b07)
- fixing broken contact us button and start free buttons (#2369) - (b157f0c)
⬆️ Bumps & Version Updates
1.3.1 - 2026-05-23
Compare with the previous release
🐛 Bug Fixes
- make permission walks symlink-safe (#2358) - (c40fd10)
- keep directory-cache materialized inputs read-only by storing CAS blobs read-only - (5b31e1a)
⚙️ Miscellaneous
- make directory-cache entries already-writable (#2357) - (83f7be1)
- hardlink CAS blobs in directory-cache construct (#2359) - (bbf086a)
- drop the two redundant full-tree walks in directory-cache build (#2359) - (7c18e3a)
- narrow the directory-cache lock and single-flight construction (#2359) - (73764ad)
🧪 Testing & CI
- remove inode stat in test - (b7c6c9f)
- Add --fallback to all remaining nix CI commands (#2360) - (590c514)
1.3.0 - 2026-05-21
Compare with the previous release
⚠️ Compatibility Notes
- Absolute symlink outputs are now resolved to the file or directory contents before upload instead of being returned as worker-local absolute symlink targets. Relative symlinks are still preserved. If a workflow expected the old worker-local target, update it to consume the uploaded file or directory output. (#2346) - (74aa906)
⛰️ Features
- Implement Remote Persistent Workers (#2323) - (78d1232)
- Add Cloudflare R2 support (#2319) - (3d76991)
- Add improved logging around command failures (#2351) - (0cf6af7)
🐛 Bug Fixes
- Fix zero-digest output file uploads (#2346) - (74aa906)
- Fix CAS inode corruption: directory cache cleanup must not chmod files (#2347) - (a00bf8c)
- APFS clonefile fast path + concurrency cap + zero-byte fix for Bazel input materialization (#2338) - (e6def51)
- hold subscribed_keys write lock across receiver drop (#2353) - (41c7789)
- has_with_results consults fast store and in-flight slow writes (#2343) - (2f42265)
- replace usize counter with Semaphore RAII permit (#2350) - (f25e7ac)
🧪 Testing & CI
⚙️ Miscellaneous
- Replace bincode with wincode (#2345) - (13c77ab)
- Update astro monorepo (#2334) - (4082867)
- Update Rust crate shlex to v2 (#2340) - (2c04038)
1.2.0 - 2026-05-14
Compare with the previous release
⚠️ Breaking Changes
- Completed Redis scheduler actions now expire according to
retain_completed_for_s. Deployments that relied on completed actions staying in Redis indefinitely should increase that retention setting before upgrading.
⛰️ Features
- pre-validate CAS blobs and return PreconditionFailure (#2322) - (80ac19c)
- Fix attic push (#2310) - (fd5eddd)
- Add --fallback to all the nix develop commands (#2308) - (1c553b6)
🐛 Bug Fixes
- Add expiry to completed redis actions (#2315) - (43ab01d)
- Fixes readonly eviction for directory cache (#2332) - (b3d4064)
- Fix the directory we push to attic from (#2326) - (c9ade93)
🧪 Testing & CI
- Split rbe-toolchain into multiple tests (#2330) - (bfba576)
- Bound CAS leader-wait + per-blob batch deadline; tolerate empty FT.AGGREGATE (#2298) - (feb6a15)
- fix RBE CI for hermetic LLVM (#2314) - (6cdcf8e)
⚙️ Miscellaneous
- Generate precondition_failure (#2333) - (b1cea14)
- migrate to bazel mod skill (#2318) - (847b0d3)
- Only push attic client on a push (#2316) - (743f1bf)
- Migrate to hermetic llvm (#2312) - (f5846df)
- Mac-specific disk freeing (#2309) - (2965392)
- Remove cascading eviction map from EvictingMap::get (#2300) - (3dd4289)
⬆️ Bumps & Version Updates
1.1.0 - 2026-05-06
Compare with the previous release
⛰️ Features
- Use mount namespace too (#2248) - (d418919)
- Add attic nix cache (#2274) - (098cf67)
- Add request limits for mongo (#2229) - (a65c137)
🐛 Bug Fixes
- Interval for keepalives (#2305) - (02e038a)
- Set arg0 for process. (#2267) - (dbb38fd)
- Add use_legacy_resource_names option to GrpcSpec (#2285) - (03a723e)
- Reconnect when ft_create fails (#2244) - (9b784b7)
- Fix container-image properties for LRE rust (#2271) - (5e94e9b)
- Fix community page scrollbar (#2250) - (0bba2b8)
- Fix ft_create race (#2246) - (11f8285)
- Fix the Not Found Store log level (#2238) - (7fe7348)
📚 Documentation
🧪 Testing & CI
- Forward client headers and OTEL trace context to upstream gRPC stores (#2288) - (c2904d3)
- Add get_part tests for legacy resource names (#2291) - (aba12cd)
- Add grpc test with an actual gRPC server (#2287) - (ff15e88)
- Re-enable mongo integration test (#2284) - (b7f3971)
⚙️ Miscellaneous
- Readable last_seen (#2304) - (f50dca8)
- Testing and logging around worker keepalive (#2302) - (d8426b6)
- Curl 8.5.0-2ubuntu10.9 (#2303) - (d26d24f)
- Detect changes as a result of Bazel runs (#2294) - (48bd42b)
- If namespacing fails, give clearer errors as to why (#2290) - (3ae7168)
- Retry attic cache setup (#2295) - (64d8de0)
- add claude skills (#2292) - (510f443)
- gitignore user.bazelrc (#2282) - (533d0da)
- Publish lre-rs image (#2270) - (0e0ff9f)
- native-cli is no longer needed (#2268) - (f690481)
- Remove Flux from deployment examples (#2266) - (8228d85)
- Upgrade actions for Node24 (#2265) - (fb0d2fa)
- Replace experimental_s3_store with experimental_cloud_object_store (#2263) - (a92f15d)
- Delete unused WriteCounter code (#2264) - (feb4dcc)
- Support empty instance name in basic_cas (#2261) - (9402e75)
- MacOS 26 doesn't like "sleep infinity" (#2259) - (852c343)
- Various security updates including aws-sdk-* (#2256) - (4365b7f)
- Log additional timeout cases (#2232) - (10ed3c5)
- 2026-03-24 flake update (#2041) - (7b62bec)
- Upgrade to MacOS 26 on runners (#2245) - (1ffae58)
- Sandbox execution on Linux (#2241) - (4413daf)
- make local worker execute command with canonicalized path (v2) (#2237) - (65c2600)
- Redo make_err calls with Error::from_std_err (#2239) - (05ae27e)
⬆️ Bumps & Version Updates
- Update dependency rules_python to v2 (#2286) - (53b1f8d)
- Update rand and rustls-webpki (#2283) - (28dc60c)
- Update Rust crate rand to v0.9.4 [SECURITY] (#2275) - (8d84808)
- Update Rust crate rand to v0.9.3 [SECURITY] (#2273) - (7aa7286)
- Update github.com/go-git/go-git/v5 and google.golang.org/grpc (#2258) - (694dec5)
- Update references to v1.0.0 (#2260) - (b5eaef8)
- Update module google.golang.org/grpc to v1.79.3 [SECURITY] (#2252) - (d7a3eb2)
- Update Rust crate aws-sdk-s3 to v1.112.0 [SECURITY] (#2254) - (d835945)
- Update dependency astro to v5.18.1 [SECURITY] (#2247) - (67ae5d4)
- Update dependency typescript to v6 (#2240) - (cc52c3a)
1.0.0 - 2026-03-23
Compare with the previous release
⛰️ Features
- Implement Azure Blob Store (#1554) - (5d625c2)
- Add sources to auto error conversion (#2225) - (6cb8d11)
- Add debug info to connection manager queues (#2188) - (6b6efcf)
- Add json schema (#2193) - (d926c47)
- Add boolean and optional data size shellexpands (#2172) - (e54a0c3)
- Add Max Concurrent Writes (#2156) - (3a90838)
- Add logs for stall detection (#2155) - (94e7e3f)
- Add Max action executing timeouts to scheduler (#2153) - (5549a96)
- Add GRPC timeouts and other improvements to detect dead connections (#2152) - (b4b44ba)
- Allows setting environment variables from the environment (#2143) - (a57c771)
- Add Max Upload timeout to CAS (#2150) - (24cc324)
- Add tracing to hyper-util (#2132) - (bc773dc)
🐛 Bug Fixes
- (deps) update module github.com/go-git/go-git/v5 to v5.16.5 [security] (#2138) - (dc25843)
- Fix old Apple SDK refs (#2224) - (edeef58)
- Handle correctly subscription messages (#2201) - (2ea428b)
- Fix Redis to reconnect in Sentinel (Chris Staite) (#2190) - (8783134)
- Fix worker inflight tasks heading (#2177) - (8ae17ba)
- Fix all the current clippy lints (#2174) - (23611ca)
- Fix integer overflow in compression_store.rs data retrieval logic (#2151) - (f996507)
- Fix Max Inflight Workers job acceptance (#2142) - (6ffab5f)
📚 Documentation
- Document max concurrent writes (#2169) - (cedba0e)
- Document RPC timeouts in Redis config (#2168) - (f0d12ff)
- Document max inflight tasks (#2167) - (2650680)
🧪 Testing & CI
- GCS error codes (#2228) - (61a35d1)
- Fix Fast slow store Not Found error by returning failed precondition (#2194) - (3354945)
- Flake update fixes (#2192) - (a7d873a)
- pre-commit rustfmt all files (#2176) - (27fa965)
⚙️ Miscellaneous
- (deps) update rust crate toml to v1 (#2147) - (85e9ecf)
- (deps) update rust crate bytes to v1.11.1 [security] (#2134) - (5d32d18)
- Implement Operations server (#2233) - (b15154c)
- Permit access times for files after FilesystemStore startup (#2178) - (373e1b5)
- Reduce debug on all Batch* structs (#2231) - (a5609d8)
- Test Mongo against an embedded MongoDB instance, not external (#2222) - (e71d738)
- empty find_missing_blobs can return immediately (#2217) - (dad870a)
- remove free cloud user (#2199) - (c7109f6)
- Only display Baggage enduser.id when identity is present (#2197) - (86b86e1)
- Prevent retry loop large uploads (#2195) - (2a2ca64)
- If all workers are fully allocated, shortcut find workers (#2130) - (faad8bb)
- Log NotFound as info, not error (#2171) - (4ca9d7b)
- Dummy streams should be pending, not empty (#2154) - (e72b5a0)
- fix metrics (#2097) - (e6c7097)
- Advise the kernel to drop page cache (#2149) - (727760d)
- Replace Fred with redis-rs (#2076) - (4956889)
- No workers logging (#2137) - (12c63f5)
- Make update_with_whole_file logging default to trace (#2131) - (ecd2903)
- Be clearer about what property values workers are missing (#2121) - (85385e6)
⬆️ Bumps & Version Updates
- Update module google.golang.org/grpc to v1.79.3 [SECURITY] (#2227) - (3f6ab07)
- Update Rust crate lz4_flex to v0.11.6 [SECURITY] (#2223) - (244a1c7)
- Upgrade curl to 8.5.0-2ubuntu10.8 (#2204) - (36a8238)
- Update module github.com/cloudflare/circl to v1.6.3 [SECURITY] (#2191) - (77b13f0)
- Update curl version in Dockerfiles (#2189) - (c161433)
- Update grafana/grafana Docker tag to v12 (#2182) - (658dd53)
- Update jsonwebtoken (#2135) - (56a8955)
0.7.10 - 2025-12-30
Compare with the previous release
🐛 Bug Fixes
🧪 Testing & CI
⚙️ Miscellaneous
- (deps) update dependency abseil-cpp to v20250512 (#2099) - (2bdb869)
- (deps) update actions/checkout action to v6 (#2085) - (fbda7bb)
- (deps) update actions/github-script action to v8 (#2098) - (f9f3b60)
- reduce worker disconnect cascades (#2093) - (44ada84)
- Replace rustls-pemfile to fix RUSTSEC-2025-0134 (#2094) - (1b85f71)
0.7.9 - 2025-12-10
Compare with the previous release
⛰️ Features
- Add LazyNotFound Store Optimization, Support for fast_slow_store (S3, GCS slow_store targets) (#2072) - (8c62bb3)
🐛 Bug Fixes
📚 Documentation
⚙️ Miscellaneous
0.7.8 - 2025-11-28
Compare with the previous release
🐛 Bug Fixes
- Fix the changelog post 0.7.7 (#2057) - (437a785)
- Fix assertion message for fastcdc (#2056) - (7ec4f11)
🧪 Testing & CI
- use wildcard query when Redis index value is empty (#2069) (#2075) - (92869d9)
- use wildcard query when Redis index value is empty (#2069) - (43f7f8d)
- Recoverable connection pool (#2067) - (14b2cc6)
- Redis store tester and permits (#1878) - (3df6293)
⚙️ Miscellaneous
- (deps) update dependency astro to v5.15.9 [security] (#2061) - (3d41449)
- Revert "bugfix: prefix Redis index name and sort key (#2066)" (#2068) - (2e84883)
- prefix Redis index name and sort key (#2066) - (6a95ae8)
- Disable digest updates for renovate and Nix magic cache (#2059) - (f56c2bb)
- Do not need to store zero-length filesystem files (#2033) - (5adf904)
- Don't complain about worker stream error if we're shutting down (#2055) - (6282afc)
⬆️ Bumps & Version Updates
0.7.7 - 2025-11-17
Compare with the previous release
⛰️ Features
🧪 Testing & CI
⚙️ Miscellaneous
0.7.6 - 2025-11-13
Compare with the previous release
⛰️ Features
- Redo worker_find_logging as config (#2039) - (958f687)
- Log on command complete (#2032) - (daea037)
- Directory Cache (#2021) - (a01bd65)
- Log failures to update actions (#2022) - (3697512)
🐛 Bug Fixes
🧪 Testing & CI
- Add testing for running action manager failure logging (#2031) - (922d7f6)
- Fix fast store direction (#2019) - (e7f29fe)
⚙️ Miscellaneous
- (deps) update swatinem/rust-cache digest to a84bfdc (#2018) - (d5ea603)
- Upgrade python3 to new security patch version (#2044) - (222731d)
- Use common_s3_utils in s3_store (#2040) - (b2eaf79)
- Lockdown and upgrade the nix action versions (#2038) - (f679946)
- Log more info about redis key updates (#2035) - (1d3cc10)
- Use display, not debug formatting for operation ids (#2028) - (b7238b3)
- Removes starter pricing (#2027) - (bef18b3)
- Drops the cloud references (#2025) - (c3431ac)
0.7.5 - 2025-10-30
Compare with the previous release
🐛 Bug Fixes
🧪 Testing & CI
⚙️ Miscellaneous
- Filestore update deadlock (#2007) - (d55c59d)
- guard shutting down in scheduler while SIGTERM (#2012) - (1708859)
- Remove unnecessary Mutex (#2006) - (083232d)
0.7.4 - 2025-10-23
Compare with the previous release
⛰️ Features
- GCS do not upload zero (#1995) - (ab0d4e6)
- GCS store connect timeout (#1994) - (854d51c)
- Add cache to native-cargo step (#1974) - (0c02306)
- Add metadata checks to machete (#1952) - (21d5fdc)
🐛 Bug Fixes
- Fix clippy::cast_possible_truncation (#1423) - (b050976)
- Notify execution complete (#1975) - (8527f25)
- Fix removal state (#1981) - (d85e491)
- Fix Redis subscribe race (#1970) - (9353508)
📚 Documentation
🧪 Testing & CI
- Add Rust test to RBE work (#1992) - (e01079b)
- Make all tests in running_actions_manager_test serial (#1984) - (41cdd9c)
- comment legacy Dockerfile test (#1983) - (6316b55)
- Adds testing to bytestream backwards compatibility (#1979) - (21bb502)
⚙️ Miscellaneous
- Pin various dependencies (mostly Docker images) (#1990) - (29c3dc4)
- Unify all the service setups with a macro (#1996) - (e46b5c7)
- Sweep forgotten client operation IDs (#1965) - (9fcf5b1)
- Require default-features=false (#1993) - (0146c34)
- Single worker stream (#1977) - (e9250ee)
- Explicitly separate state locks and awaits (#1991) - (930b352)
- Replace derivative with derive_more (#1989) - (9f39700)
- Build toolchain-examples (#1971) - (2d08aba)
- Remove folders with bad permissions (#1980) - (5e487f3)
- Property replace (#1976) - (41a2452)
- Harden worker disconnect (#1972) - (1055cd1)
- Drop MacOS 14 support (#1973) - (bdfa17c)
- Drop 22.04 support (#1883) - (4fe024b)
⬆️ Bumps & Version Updates
- Update Swatinem/rust-cache digest to 9416228 (#2004) - (15c747e)
- Update dependency hermetic_cc_toolchain to v4 (#1988) - (ed918d8)
- Update Rust crate relative-path to v2 (#1985) - (997feb4)
- Update dependency astro to v5.14.3 [SECURITY] (#1969) - (d896788)
- Update dependency dotenv to v17 (#1966) - (3b7f05f)
0.7.3 - 2025-10-10
Compare with the previous release
⛰️ Features
- Add timeout to health check (#1961) - (cff9b6b)
- Detect anonymous GCS auth and optionally quit (#1958) - (4b77932)
🐛 Bug Fixes
0.7.2 - 2025-10-08
Compare with the previous release
⛰️ Features
- Move Bytestream to array config (#1951) - (e5b0eef)
- Add more logging around active_drop_spawns (#1941) - (24624ef)
🐛 Bug Fixes
- Fixes all the examples in the stores config (#1948) - (f70c487)
- Prevent UUID collisions (#1945) - (184d629)
- Existence cache remove callbacks (#1947) - (67adf59)
- Make the error on a size field clearer (#1939) - (a294778)
📚 Documentation
⚙️ Miscellaneous
- RHEL8 demo image (#1933) - (e3b108f)
- Better logging for store_awaited_action update failures (#1940) - (892893e)
- update hero with trademark (#1942) - (f5c2c17)
- LastMile AI case study (#1937) - (ef03983)
- Add trending badge (#1936) - (969713d)
0.7.1 - 2025-09-24
Compare with the previous release
⛰️ Features
- Add ONTAP S3 Store with existence cache (#1630) - (b4c8216)
- Add worker_find_logging (#1925) - (8b46fd8)
🐛 Bug Fixes
🧪 Testing & CI
⚙️ Miscellaneous
- Revert ExecutionComplete early scheduling optimization (#1929) - (d39eeb6)
- Support pre-0.7.0 cacheable spelling (#1926) - (32ef435)
- Format JSON files (#1927) - (ecc6c1e)
- Make the bazelrc warnings back to being actual warnings (#1914) - (6180146)
⬆️ Bumps & Version Updates
- Update dependency astro to v5.13.2 [SECURITY] (#1890) - (7010351)
- Update product pricing p2 (#1923) - (7cedb68)
- Update the Nativelink pricing in the website (#1921) - (e973aa1)
- Update Rust crate tracing-subscriber to v0.3.20 [SECURITY] (#1917) - (f380d7d)
0.7.0 - 2025-08-16
Compare with the previous release
❌️ Breaking Changes
- [Breaking] Remove support for MacOS 13 on x86_64 (#1732) - (d7deee3)
- [Breaking] Change S3Store to a generic CloudObjectStore (#1720) - (1d94417)
- [Breaking] Remove backwards compatibility for configs (#1695) - (aff81c8)
- [Breaking] Remove
experimental_prometheusanddisable_metrics(#1686) - (23a64cf)
⛰️ Features
- Early scheduling (#1904) - (85c279a)
- CMake tutorial for C/C++ devs not using Bazel/Buck2 (#1896) - (bc95749)
- Add the O'Reilly book to our website (#1886) - (d4e556d)
- Add nix command to create local nativelink images (#1871) - (fb538ca)
- Add debug helpers to check LRE kustomization (#1857) - (ba1cd53)
- Add GCS bucket/path when we fail to load metadata (#1849) - (b63f623)
- Add Browserbase wordmark (#1800) - (bace8c0)
- Add a Contributors Section To Website's Home Page (#1797) - (f39be28)
- Add support for native root certs (#1782) - (cd3f993)
- Add typos to spellcheck source code (#1780) - (d545a1c)
- Add Finetuning LLMs on CPUs Blog Post (#1748) - (18eb9e1)
- Add shellcheck to lint shell scripts (#1759) - (ce06332)
- Add implementation for Google Cloud Storage with REST (#1645) - (2839470)
- Add ISA support for buildstream (#1681) - (4b42fec)
- Add actualized param for reclient config dir (#1679) - (39d390d)
- Add RemoteAsset protobuf (#1647) - (07bba7c)
- Add Thirdwave Automation case study (#1615) - (0125a34)
🐛 Bug Fixes
- Fix Docker error due to version drift (#1882) - (3c9b1f3)
- Fix directory collision on action retries by waiting for cleanup and removing stales (#1868) - (47602d1)
- Fix local rustfmt with new flags (#1850) - (efd5c5c)
- Fix execution_server instance name error (#1858) - (e362da8)
- Fix wrong log messaging while removing file in
FilesystemStore(#1400) - (350070d) - Improve root cert blog post (#1795) - (3ad3f20)
- Fix blog post image. (#1791) - (47fab25)
- Resolve
clippy::fallible_impl_from(#1771) - (d53363d) - Fix clippy::similar_names (#1777) - (acc2a8a)
- Fix clippy::from_iter_instead_of_collect (#1768) - (f281e9a)
- Fix clippy::option_option (#1765) - (1432b36)
- Fix clippy::unnecessary_semicolon (#1769) - (4721a81)
- Fix clippy::doc_link_with_quotes (#1767) - (b52451a)
- Fix clippy::if_not_else (#1766) - (ea03da7)
- Fix clippy lints after d106fe7 (#1758) - (368bdb4)
- Fix remote build against lre-rs on NixOS (#1762) - (c86801a)
- Fix outdated homepage link (#1755) - (ec4592b)
- Fix formatting in configuration-intro (#1742) - (08f1eb0)
- Handle slashes in instance name of
WaitExecutionRequest(#1689) - (5f4bbbf) - Remove console-subscriber (#1683) - (3ba41c9)
- Fix admin router syntax for axum 0.8 (#1675) - (3d8f4a8)
- Fix keyword casing in docker-compose Dockerfile (#1663) - (c196ce4)
- Fix various Bazel warnings after 24cbbfd501ffe5a569e23c2c456b391b58f4d8e4 (#1621) - (742c985)
📚 Documentation
- Updating version in README and package manifests (#1911) - (fe996ab)
- Migrate tracing infrastructure to OpenTelemetry (#1772) - (7a8f561)
- Add store README (#1739) - (92ddb62)
- Refactor
write_too_many_bytes_failstest (#1726) - (a0c5db0) - Throw error on generate docs fail (#1710) - (d9577c3)
- Prepare development cluster for OpenTelemetry (#1685) - (6811139)
- Update ECR docs (#1667) - (b09f9a6)
- Update native-cli loadbalancer and flux (#1670) - (665cca8)
- Fix links in documentation (#1655) - (8071565)
- Document contributing to the native-cli (#1625) - (4e3366d)
🧪 Testing & CI
- Fake Redis test (#1895) - (df93f97)
- Tested redaction for stream.first_msg in bytestream (#1865) - (cd1e515)
- Fix RBE testing (#1862) - (4efa1ab)
- Add integration test for mongo backend (#1853) - (db1e341)
- Add JSON5 formatting to pre-commit (#1817) - (4616615)
- Re-enable doctests for nativelink-proto (#1824) - (82b30ff)
- Make default config for k8s examples more realistic (#1802) - (45e300c)
- Largely switch from map-based to array-based config (#1712) - (3f1cf3b)
- Synchronize clippy lints between bazel and cargo (#1745) - (1a61af2)
- Add shfmt to lint shell scripts (#1749) - (945c45c)
- Test bytestream message too large (#1721) - (3dc666c)
- Use default pre-commit hooks where possible (#1723) - (e1d2e6f)
- Create Bazel flake template (#1718) - (d95db0d)
- Add unit tests to bazel (#1691) - (6473203)
- Resolve clippy lints, change to
#[expect](#1661) - (8d97af7)
⚙️ Miscellaneous
- Prepare 0.7.0-rc-2 (#1908) - (b23cf19)
- Modified the todos, though many will be removed (#1909) - (0e9626c)
- Retry matching on failure (#1892) - (e691bea)
- Temporarily disable llre.yaml (#1902) - (7c02e58)
- Graceful worker shutdown (#1899) - (98b1201)
- Improve visibility of .conf (#1900) - (d196648)
- Typo/makefile formatting (#1897) - (de2abb8)
- Repository hygiene, Rust 1.89.0, enter to submit (#1894) - (e2cb612)
- Download work on submit (#1893) - (052c53a)
- Improve hero consistency (#1887) - (d7ec1e1)
- Redact data fields in tracing (#1884) - (bee59b5)
- Make Redis connection errors actually fail as such (#1879) - (4e2c20e)
- Create the client-to-operation mapping when a client subscribes to an existing action (#1876) - (7caa78b)
- Improve evicting map performance (#1875) - (036e394)
- When logging errors, detail the keys (#1877) - (eeec964)
- Readd publish-ghcr as needed by deploy (#1873) - (0a331e5)
- Redis scheduler store should read OperationId as a JSON instead of String. (#1872) - (7ee11d6)
- Backwards compatibility now says what to change (#1870) - (0c006fd)
- Reduce confusion (#1867) - (6aaee38)
- Re-add Nix magic cache (#1851) - (8d9470b)
- Log fallback calls to help with adding new gRPC bits (#1861) - (05bef36)
- Remove background video on mobile (#1812) - (181e39d)
- Remove unused cargo deps with machete (#1839) - (5a11bce)
- Mark all warnings as errors so bazel fails (#1840) - (e6cf730)
- Reduce renovate noise by limiting to security and major fixes only (#1836) - (a24fa5b)
- Remove trace level and add note (#1805) - (91ee900)
- Don't allow used_underscore_binding (#1819) - (e70a4bb)
- Make config references version-specific (#1823) - (cd73302)
- Override the reclient ToC with a working version (#1827) - (36ccefd)
- Check example JSON5 files pass the parser (#1818) - (20ad6a3)
- Implements the internals of the remote asset protocol (#1816) - (4a299f9)
- Generate bazel lints from Cargo.toml (#1820) - (1cd0e5c)
- Replace Video for Website's Hero Section (#1809) - (9b4fbd4)
- Use upstream buildstream packaging (#1815) - (58513f3)
- Modify blog image (#1811) - (afc36bd)
- Include Vale changes into web only workflows (#1793) - (5c87e88)
- Use native root certs for S3 stores (#1785) - (44e35ba)
- Blog about trust root support (#1788) - (0fec68e)
- Reduce verbosity of the info trace level (#1778) - (fe813a9)
- Move redis fingerprint logic to logs (#1773) - (708ab5b)
- Simplify clippy configs (#1764) - (c66ead2)
- Remove python from NixOS path (#1763) - (19d4aac)
- Make K8s filesystem paths independent of
$HOME(#1761) - (c31233e) - Change title on website (#1760) - (5be8d25)
- Enable more clippy lints (#1746) - (d106fe7)
- Test stream termination (#1741) - (f9ab7c4)
- Disable unnecessary workflows for web changes (#1750) - (36d1c43)
- Reassign TODOs (#1747) - (03152f1)
- Remove unnecessary photos (#1733) - (411a018)
- Format toml files with taplo (#1724) - (f6269d1)
- Implement
StoreDriver::listforRedisStore(#1697) - (06362d5) - Use explicit level macros instead of events (#1725) - (78247a2)
- Rename name to path in rustdoc (#1708) - (8f327d7)
- Use
alloc,corewhen possible (#1704) - (18572ab) - Refactor flake modules (#1699) - (f9ff630)
- Initial Remote Asset support (#1646) - (d319fda)
- Standardize flake naming conventions (#1698) - (0ff64b1)
- Ramp up linting (#1672) - (840a5b3)
- Refactor K8s namespaces (#1680) - (0419f76)
- Ensure soundness of, rename
RawSymbolWrapper(#1673) - (9122f19) - Rename variants to Rust standards (#1666) - (12b24be)
- Remove indirection for wrapping tonic error codes (#1656) - (a204116)
- Remove redundant settings in
Cargo.toml(#1659) - (3cff6ac) - Adjust nofile limit recommendations (#1641) - (3431126)
- Migrate S3Store to hyper 1.x (#1639) - (a5e845c)
- Start cilium before capacitor (#1644) - (f91871c)
- Use selector function for stdenv (#1642) - (6952c3e)
- Migrate to Bazel 8 (#1618) - (24cbbfd)
- Adjust team to show leaders (#1617) - (fa64033)
⬆️ Bumps & Version Updates
- Retry on disconnect (#1906) - (ea0e0ae)
- Update company.tsx (#1901) - (1354bb0)
- Upgrades Mongo library to 3.x (#1854) - (739613b)
- Update ubuntu:22.04 Docker digest to 3c61d37 (#1025) - (add1637)
- Fix GCS store implementation (#1846) - (3d2dd5e)
- Add ExperimentalMongoStore (#1807) - (bc1c5ce)
- Update dependency toolchains_protoc to v0.4.3 (#1833) - (8c6180c)
- Bump github.com/cloudflare/circl from 1.6.0 to 1.6.1 in /native-cli (#1834) - (da0f87f)
- Update Rust crate formatx to v0.2.4 (#1751) - (5aebecd)
- Update dependency rules_rust to v0.61.0 (#1650) - (de0e26f)
- Updates smithy to remove proc-macro-error (#1822) - (6e9b131)
- Update nix setup for GHA workflows (#1813) - (76e769c)
- Update bincode to 2.0.1 (#1803) - (dd5d19c)
- Update team (#1801) - (5aa3603)
- Bump flake (#1783) - (88e14dc)
- Update website hero (#1776) - (8a81bde)
- Fix various website issues (#1752) - (9287f6d)
- Update dependency @builder.io/qwik to v1.13.0 (#1735) - (d6acccf)
- Update configuration example "stores" field format (#1727) - (9798a0d)
- Upgrade to 2024 edition (#1676) - (07534c5)
- Update Rust crate tokio to v1.44.2 (#1677) - (81b2c14)
- Update Rust dependencies (#1674) - (6b0cb60)
- Bump flake (#1671) - (1cc2baf)
- Update website nits (#1658) - (1982938)
- Bump flake (#1632) - (07bd27a)
- Bump Cilium to 1.17.2 (#1631) - (403a71c)
- Bump Go deps (#1622) - (c72adee)
- Bump AWS SDK for Rust (#1620) - (e465f73)
0.6.0 - 2025-03-06
Compare with the previous release
❌️ Breaking Changes
⛰️ Features
- Add Grpc, Memory & S3 store to health checker registry (#1586) - (44d8db1)
- Add ability to prefix worker_id in config (#1578) - (e753b8d)
- Add OriginEvent for scheduler scheduling action (#1574) - (60b0049)
🐛 Bug Fixes
- Move Tekton from Pulumi to Flux (#1593) - (96adea4)
- GrpcStore now sends digest function from context (#1587) - (fc85156)
📚 Documentation
🧪 Testing & CI
- Chage remote exec CI to new endpoints (#1601) - (d755d30)
- Upgrade rand crate version and stabilize test rand generation (#1583) - (79c2357)
- ClientKeepAlive update action ClientKeepAlive (#1580) - (7afe286)
⚙️ Miscellaneous
- Remove GrpcStore from health checker registry (#1602) - (cba7359)
- Mark functions
constwhere possible (#1573) - (8b9824f) - Remove atime references to FilesystemStore (#1584) - (0d6cbed)
- ensuring everything is scrubbed. (#1576) - (a8c7339)
⬆️ Bumps & Version Updates
- Update readme (#1611) - (1e5d866)
- Bump Go deps (#1603) - (284eeb2)
- Bump flake (#1596) - (34f1c94)
- Refactor GitHub actions (#1589) - (f11c88b)
0.5.4 - 2025-01-30
Compare with the previous release
⛰️ Features
- Add
Closedstream event to OriginEvents (#1570) - (2d2986b) - Add ananonymized blog (#1567) - (90c086b)
- Add Aaron's awesome talk to homepage and resource page (#1452) - (0915e03)
- Add event type info to node_id info in UUID (#1550) - (b1df876)
- Add OriginEventPublisher (#1497) - (f280e71)
- Add google-cloud-sdk to flake (#1526) - (d75d20d)
- Introduce the LRE flake overlay (#1516) - (ae71bc8)
- Add tekton operator to local dev cluster (#1337) - (56dcd10)
- Add ShutdownGuard to replace oneshot for shutdown (#1491) - (a8c3217)
- Adds Analytics Container to Website. (#1465) - (cb9d441)
- Add static content from s3 bucket (#1440) - (3e8dc29)
- Add graceful shutdown to worker instances (#1394) - (d0eb00c)
- Add NixOS support (#1287) - (b2386fd)
- [Bug fix] Adds retry logic to redis store (#1407) - (a815ba0)
- Revert "Allow nativelink flake module to upload results (#1369)" (#1372) - (73dbf59)
- Allow nativelink flake module to upload results (#1369) - (9600839)
- Add pulumi k8s await functionality (#1353) - (dfe821c)
- [Feature] Add Redis Scheduler (#1343) - (a6c3a6f)
- Add StoreAwaitedActionDb API (#1342) - (ac4ca57)
- Allow empty page_token for getTree (#1340) - (d66d418)
- Add KeepAlive updating to ApiWorkerScheduler (#1310) - (37ebd58)
🐛 Bug Fixes
- Fix bug where actions rarely get timedout on rejoin (#1569) - (41d2670)
- Fix broken Slack link (#1557) - (1ee61b1)
- Fix clippy::implicit_hasher (#1503) - (fdd163a)
- Fix clippy::struct_field_names (#1505) - (91f3a2c)
- Fix clippy::doc_markdown (#1504) - (524dc11)
- Fix clippy::{ignored_unit_patterns, needless_continue} (#1502) - (5e5b170)
- Fix clippy::default_trait_access (#1500) - (cbc86c6)
- Fix broken video link (#1488) - (22707d7)
- Fix clippy::needless_raw_string_hashes (#1473) - (545793c)
- Fix clippy::ptr_as_ptr (#1472) - (1cf6365)
- Fix clippy::stable_sort_primitive (#1396) - (de372f7)
- Fix clippy::explicit_into_iter_loop (#1457) - (ac44984)
- Fix clippy::items_after_statements (#1456) - (7d0e6af)
- Correctly wait for LRE/Remote tekton pipelines (#1455) - (070485f)
- Fix clippy::explicit_iter_loop (#1453) - (973f210)
- Work around trivy ratelimits (#1442) - (b4cb577)
- Fix LRE/Remote workflow after b44383f (#1441) - (399e95b)
- Fix clippy::match_same_arms (#1433) - (51a2fd4)
- Fix misspellings in code files (#1420) - (6899467)
- Fix clippy::return_self_not_must_use (#1435) - (6fcb3bb)
- Fix clippy::redundant_else (#1432) - (6ed0455)
- Fix clippy::inline_always (#1431) - (4948580)
- Fix clippy::ref_as_ptr (#1430) - (1887337)
- Fix clippy::map_unwrap_or (#1415) - (cf4f11d)
- Fix clippy::cast_lossless (#1426) - (9e5a145)
- Fix clippy::unnecessary_wraps (#1409) - (e3c2a58)
- Fix clippy::trivially_copy_pass_by_ref (#1416) - (4aa69c2)
- Fix clippy::explicit_deref_methods (#1410) - (f7ff342)
- Fix LRE Remote Workflow (#1424) - (e14732f)
- Fix clippy::needless_pass_by_value (#1413) - (712608c)
- Fix broken demo button link (#1404) - (f5de318)
- Fix clippy::implicit_clone (#1384) - (4001d12)
- Fix clippy::match_wildcard_for_single_variants (#1411) - (257aedb)
- Fix clippy::inconsistent_struct_constructor (#1412) - (85904fb)
- Fix clippy::range_plus_one (#1395) - (8dfb0ae)
- Handle empty file request on dedup store (#1398) - (fc6f155)
- Fix clippy::unreadable_literal (#1392) - (d418132)
- Fix clippy::semicolon_if_nothing_returned (#1393) - (553f33c)
- Fix S3Store retry might cause poisoned data (#1383) - (e6eb5f7)
- Fix clippy::redundant_closure_for_method_calls (#1380) - (2b24ce2)
- Fix clippy::single_match_else (#1379) - (255e0e7)
- Fix clippy::manual_let_else (#1361) - (3e8b0b1)
- Fix the date on the case studies. (#1357) - (b770b13)
- Fix a possible infinite loop in
RedisStore::update(#1269) - (8d957a5) - Fix format issues in markdown files (#1332) - (0ab5a99)
📚 Documentation
- Create docs and examples for classic remote execution (#1498) - (3f3d4e2)
- Fix Broken Links on docs/introduction/on-prem (#1480) - (481226b)
- Add Matomo tracking pixel to rest of public READMEs (#1460) - (1157a04)
- Introduce the NativeLink Kubernetes operator (#1088) - (b44383f)
- Remove wildcard searching in redis scheduler (#1408) - (2238ef9)
- Fix
docs.nativelink.combased URL not working (#1386) - (d602746) - Introduce nativelink web platform including docs & website (#1285) - (0e8811f)
- Update README.md with newest version (#1351) - (51974db)
- Update docs for RBE exec properties to support GPU etc. (#1350) - (0ccaa15)
- Update
docsgeneration (#1280) - (f337391) - Update Cloud RBE docs for private image repositories and advanced config (#1333) - (a1191f2)
- Update RBE docs for private image repositories (#1324) - (3d8766f)
- Update cloud docs for RBE and Read Only (#1322) - (96db0cb)
- Disable various test for docs only PRs (#1323) - (065029b)
🧪 Testing & CI
- Fix hardcoded value in local-image-test (#1545) - (f672af7)
- Achieve perfect reproducibility for Linux Bazel builds (#1543) - (4896948)
- Implement Local Remote Execution for Rust (#1510) - (5e07ce4)
- Fix
cargo test -p nativelink-storeafter 4896b5c (#1540) - (2697eaf) - Decouple automated K8s deployments (#1531) - (a0ca341)
- Add gnused to createWorker (#1511) - (638c4a7)
- Fix tests to support nixos pathing (#1427) - (060c128)
- Introduce reproducible branch-based coverage (#1375) - (4a51e75)
- Introduce the NativeLink Cloud flake module (#1365) - (26df13b)
- Fix broken ca-certificates version in integration tests (#1367) - (ca84219)
⚙️ Miscellaneous
- Make stores and schedulers lists of named specs (#1496) - (c99dca6)
- Ensure that EvictingMap is threadsafe (#1564) - (4b5fe2e)
- Minor fix to BEP key encoding (#1539) - (c742302)
- Move some tools to an externally usable overlay (#1544) - (55a49f3)
- Support native StoreKey in FilesystemStore (#1489) - (679f068)
- [Experimental] Move identity & origin event middleware config (#1534) - (45520d9)
- Make global lock ConfigMap removable (#1530) - (8782c0b)
- Move lre-cc into the lre overlay (#1529) - (2c1643d)
- Remove empty top-level GLOSSARY.md (#1525) - (23d5774)
- Rename example configs to json5 (#1508) - (c84f793)
- Discoverable generic blogposts (#1520) - (ad3a501)
- adding a semiconductor blog. (#1518) - (d55611a)
- Migrate rust-overlay patch to an overlay (#1514) - (301e51b)
- Migrate pulumi patches to an overlay (#1513) - (b25fbd1)
- Slightly clean up flake (#1515) - (2b18b90)
- Merge scheduler and cas for K8s (#1506) - (1b7d059)
- Use an empty instance_name in docker compose example (#1486) - (458527f)
- Cleanup some template type definitions (#1492) - (3d04430)
- Bikeshed {Store, Scheduler}Config -> {Store, Scheduler}Spec (#1483) - (7df592f)
- Make shellexpand fields more robust (#1471) - (b6cf659)
- Directly Inject LDFR Script (#1474) - (798e4fe)
- Stop Redirect Errors (#1469) - (7e766d1)
- Remove case study lacking special approval process (#1464) - (028c91c)
- Move custom tekton resources to flux (#1446) - (f877ab0)
- Move remaining static content to s3 (#1444) - (8a3869c)
- Really fix LRE/Remote workflow after b44383f (#1443) - (a0e5cf7)
- In redis scheduler removes items that are queued for too long (#1414) - (b68e319)
- Expose fingerprint hash to metrics in redis store (#1347) - (8a90f09)
- Redirect indexed broken link (#1378) - (4b4f047)
- Enable Nativelink Cloud Cache workflow for macos-14 (#1374) - (6142492)
- Remove duplicated deno deploy env variables (#1362) - (c17cc34)
- Enable Bazel on darwin (#1364) - (9be5902)
- Convert usize to u63 in Store trait APIs (#1344) - (2a55f1e)
- Remove subscription API from store API (#1346) - (506a297)
- [Change] BEP Redis key format (#1345) - (ba5b315)
- ByteStreamServer now responds with no-data-received instead of NotFound (#1341) - (cbb5835)
- DigestInfo now does string conversions on the stack (#1338) - (a68392a)
- Delete ~/Applications and iOS simulators/cache from Mac runners (#1334) - (f533d30)
- Cleanup digest function to use u64 instead of i64 (#1327) - (140b7cb)
- Improve docker image for RBE and re-enable RBE on main (#1326) - (84eab85)
- Improve debugging on some error messages (#1313) - (514da4b)
- Change AwaitedAction's API to always return Result<Stream> (#1312) - (dea9d18)
- AwaitedAction's operation_id and client_operation_id now separated (#1311) - (00fa82d)
- SimpleScheduler version matching uses Aborted to know if failure (#1308) - (753c1e7)
- Prepare scheduler config & move owner of notify task change owner (#1306) - (17acce2)
- Pass deno deploy token (#1321) - (057d91d)
- Move where increment_version() is triggered for scheduler code (#1307) - (7736a6f)
- Move ClientActionStateResult to SimpleSchedulerStateManager (#1305) - (4b45662)
⬆️ Bumps & Version Updates
- Update Rust crate serde_json to v1.0.138 (#1560) - (a67d4bd)
- Bump deps (#1559) - (4772bd4)
- Bump Rust deps (#1536) - (4896b5c)
- Bump Go deps (#1535) - (61f1df7)
- Update company site on web/platform (#1521) - (8671931)
- Update terms on web/platform (#1517) - (5804568)
- Bump rust deps (#1499) - (c458871)
- Bump go deps (#1495) - (afe0f4c)
- Bump nightly rust to 2024-11-23 (#1494) - (decdc7f)
- Bump flake (#1493) - (99b9cbb)
- Update Partytown (#1467) - (3fbc273)
- Update company site on web platform (#1451) - (cb5d0bc)
- Update company site on web platform (#1429) - (e68da64)
- Bump nontrivial Rust dependencies (#1402) - (f541cbb)
- Update rust dependencies (#1381) - (b5a4d92)
- Update web workflow (#1370) - (68753c6)
- Bump toolchains (#1356) - (4d331f7)
- Update web dependencies (#1354) - (f31015d)
- Bump the scorecard action (#1330) - (57c784a)
0.5.3 - 2024-09-04
Compare with the previous release
⛰️ Features
🐛 Bug Fixes
- Fix bug in redis store when zero data stored but data does not exist (#1304) - (59020f1)
- Fix bug where OperationId::String was being used instead of Uuid version (#1301) - (cc611cd)
- Fix rare case where eof was sent on buf_channel when retry happens (#1295) - (47dfc20)
- Fix Tekton depedency order within Pulumi (#1291) - (0fd0a94)
- Revert "Release NativeLink v0.5.2 (#1283)" (#1284) - (1b38a64)
- Fix verify_size w/ verify_hash set to true in VerifyStore (#1273) - (c21d59f)
📚 Documentation
- Re-enable docs auto-deployment on main (#1317) - (ca88d90)
- Migrate docs buildsystem from pnpm to bun (#1268) - (ef3a8a6)
- Fix
docsbuild warning fromnativelink-config(#1270) - (5903a8e) - Fix invalid links in the documentation (#1256) - (ae0c82c)
- Add 90s Explainer to README.md (#1254) - (a3cf01c)
- Explicitly map hostport in README (#1255) - (7777938)
🧪 Testing & CI
- Fix nix2container skopeo patch hash (#1294) - (689d099)
- Fix broken variables in NativeLink Cloud CI jobs and disable RBE test (#1293) - (f4ae4cc)
- Fix typos in code comments (#1190) - (3e1fcbd)
⚙️ Miscellaneous
- S3 store will now retry more aggresively (#1302) - (0ecf5b4)
- Remove nix2container patch hash workaround (#1296) - (d5c55ac)
- Use docker to create a buck2 image (#1275) - (8896b65)
- Support remote build execution on main and read-only remote cache on PRs (#1277) - (2f9fd8b)
- Revert "Make de/serialized structs compliant with Rust naming practices (#1271)" (#1282) - (0933c1a)
- Make de/serialized structs compliant with Rust naming practices (#1271) - (a174fbf)
- Append buck2 toolchain with additional packages (#1264) - (042f4a5)
- Remove ActionScheduler and introduce KnownPlatformPropertyProvider (#1260) - (9c87370)
- add static size and fix meta-typo (#1261) - (bddee33)
- Raise correct error if BEP service fails (#1259) - (6b7401a)
- Crosscompile NativeLink (#1233) - (ab64efd)
⬆️ Bumps & Version Updates
0.5.1 - 2024-08-08
Compare with the previous release
🐛 Bug Fixes
⚙️ Miscellaneous
- Conversion implementations for awaited action db structs (#1243) - (d5f2781)
- Make redis clients available on RedisStore (#1244) - (c3f648e)
0.5.0 - 2024-08-07
Compare with the previous release
❌️ Breaking Changes
⛰️ Features
- Add example clang/rust/go toolchain (#1200) - (11298d8)
- Introduce NL_LOG to control logging format (#1154) - (d9922b3)
- Add Capacitor dashboard to devcluster (#1115) - (93ae95a)
- Add Flux to development cluster (#1096) - (6a40374)
- Allow Tekton pipelines to be triggered by Flux Alerts (#1094) - (5de75cc)
- Allow WebSocket upgrades in devcluster Loadbalancer (#1098) - (dda8c31)
- Implement RedisStateManager (#1023) - (5104778)
- Add optional and experimental pub sub publisher for redis store write. (#1027) - (128ba2a)
- Decouple nativelink from toolchain containers (#1013) - (00e5bb3)
- Add Bazel rules for generating rust-project.json (#1019) - (bb91fa9)
- Add list api to StoreApi and MemoryStore (#1003) - (5a78919)
- Add memory store optimized subscription API (#988) - (bf9edc9)
- Add serialize and deserialize to structs (#965) - (79908cb)
- Add subscribe API to Store API (#924) - (3be7255)
- Add a config option to prefix keys in Redis stores (#981) - (b7a7e36)
- Add OrderBy field for OperationFilter (#969) - (a911af4)
- Add initial support for BEP (Build Event Protocol) (#961) - (23cba13)
- Convert RedisError into nativelink Error (#959) - (cabc0c3)
- Add JSON config examples to store.rs (#967) - (da9399b)
- Make quantity field human readable (#891) - (da2c4a7)
- Add drake toolchain configs (#942) - (e65c04a)
- Add Operation State Manager API (#937) - (1d2d838)
🐛 Bug Fixes
- Fix docker-compose (#1238) - (44bc795)
- Fix compile time warnings from rustc version upgrade (#1231) - (7f9f2da)
- Fix S3 store missing not having sleep function (#1220) - (827a000)
- Fix case when scheduler drops action on client reconnect (#1198) - (0b40639)
- Fix bad practice bazelrc naming scheme (#1183) - (8d843e8)
- Fix bug in S3 where it ignores EOF (#1178) - (f3e58a2)
- Fix clippy::manual_string_new (#1106) - (3992aef)
- Fix script bugs (#1147) - (2e85c90)
- Fix chromium demo (#1144) - (00a7134)
- Fix filesystem_cas.json (#1111) - (0cbddba)
- Fix vale issues in MDX files (#1086) - (a3bd7d9)
- Unbreak LRE Remote workflow (#1058) - (2adda24)
- Fix Cargo mismatch on MacOS build (#974) - (591126d)
- Explicitly set deleted timestamp in trivy (#1006) - (43f1aeb)
- Register metrics on PropertyModifierScheduler (#954) - (b1d6c40)
- Unbreak docker-compose workflow (#940) - (fce476f)
📚 Documentation
- Update README.md (#1232) - (7b5231f)
- Add CI focused content to api key docs (#1196) - (5798761)
- Add read only key instructions to api key docs (#1187) - (d37bd90)
- Add new API key prod docs (#1185) - (f59f8ba)
- Fix typos in the documentation and comments (#1174) - (9948737)
- Polish cloud docs for Bazel and Pants (#1152) - (c54fe00)
- Fix an accessibility issue in the README (#1149) - (53215a9)
- Overhaul NativeLink Documentation (#1138) - (71dee56)
- Disable some workflows on PRs that only change docs (#1148) - (506c144)
- Fix overflowing mermaid diagrams in docs (#1133) - (5810489)
- Update README.md (#1134) - (ff90c34)
- Fix README after 612b86e (#1132) - (e93b869)
- Move installation instructions to new docs (#1127) - (612b86e)
- fixed the docs and removed errant TODO. (#1085) - (f777126)
- Improve README branding and links (#1083) - (eb8fc9f)
- Revert "Improve README branding and links (#1074)" (#1080) - (2bdd9bd)
- Improve README branding and links (#1074) - (1f107e4)
- Reorder
README(#1077) - (aedf2ef) - Reimplement documentation infrastructure (#1056) - (67e3164)
- Move Terraform examples to graveyard (#1016) - (af4c1de)
- Introduce basic rustdoc infrastructure (#980) - (af87ec1)
- Expand configuration documentation (#970) - (c0c09ed)
- Update images for docs (#930) - (b7b58a7)
- Update old tag version in
README.md(#923) - (ec257fe)
🧪 Testing & CI
- Remove some needless CI tests (#1240) - (3e259fd)
- Fix Cargo.toml files when using cargo test on specific packages (#1236) - (ba7abf3)
- Remove nativelink-proto as build dependency (#1209) - (19f4483)
- Significantly reduce Bazel test time (#1210) - (4f49d53)
- [Refactor] Overhaul of scheduler component (#1169) - (3b8c3a5)
- Add BEP to CI (#1124) - (fa7b099)
- Fix bystream_server_tests (#1087) - (846b25b)
- Reduce references to self.state_manager.inner (#1060) - (2eefa75)
- Fixes cyclical dependency between util and store (#1017) - (200f976)
- [bug] Ensure OperationId is used at external protocol points (#1001) - (5ffaf89)
- Remove installation test from devShell (#1014) - (9c40d57)
- Increase timeout of pre-commit-checks CI pipeline (#1009) - (2d64361)
- Add CI test to run on nativelink.com (#1007) - (3bc14bd)
- Create scheduler state module (#968) - (264edb7)
- Remove extraneous mod statements from tests (#975) - (f59a1d7)
- Add dev build profile and remove lto from CI (#976) - (cec25fb)
- Fix pulumi ratelimiting build error (#953) - (03841cc)
- Add kind-loadbalancer (#929) - (c42fd0d)
⚙️ Miscellaneous
- Migrate much of the ActionScheduler API to ClientStateManager API (#1241) - (2b8f1ee)
- Move ActionSchedulerListener to ActionStateResult (#1237) - (d57ee8d)
- modified the lre file path (#1239) - (33f09cb)
- Remove ClientOperationId and move all to OperationId (#1214) - (81db90e)
- Remove unnecessary sync trait bounds. (#1227) - (e26e1b5)
- Migrate from
redis-rstofred.rs(#1188) - (44a4a91) - Convert AwaitedAction to and from raw bytes (#1206) - (f004351)
- Make Cargo.toml feature pins compatible with project/main (#1212) - (d8c407a)
- Remove unused features in dependencies (#1211) - (a501971)
- ExistenceCacheStore now only evicts based on insert (#1203) - (250037f)
- Remove unused dependencies (#1207) - (df5f9e2)
- Migrate to hyper 1.x, axum 0.7.x, tonic 0.12.x (#1155) - (532d1b1)
- S3 store can ignore
.has()requests based on LastModified (#1205) - (e874baa) - [Refactor] Complete metrics overhaul (#1192) - (a6ff968)
- Migrate to callPackage syntax (#1193) - (534a102)
- Implement Serialize/Deserialize for ActionStage (#1186) - (3574149)
- update store_trait.rs (#1184) - (97f64b2)
- Double protect output stream of verify store (#1180) - (e6542e6)
- Make TaskExecutor a wrapper around TokioExecutor (#1159) - (b7ef3b6)
- Increase chromium deployment example jobs size (#1146) - (0e265dc)
- Refresh readme (#1078) - (414289a)
- Change remote cache URLs from secrets to vars (#1143) - (6e37f47)
- converted single defaults from plural (#1099) - (0a05082)
- Write Tekton image tag outputs to a ConfigMap (#1100) - (1b8e23b)
- Temporarily disable rustdoc autogen (#1101) - (3aa4f94)
- Cancel running GHA workflows on pushes to the same branch (#1090) - (545f752)
- Make bystream limits configurable (#1076) - (54a9345)
- [Refactor] Workers::find_worker_for_action should take PlatformProperties (#1068) - (f5e7276)
- Include ActionState to MatchingEngineActionStateResult (#1064) - (35e9cd7)
- revert bazel version bump. (#1061) - (194ab78)
- Remove
#[async_trait]where possible (#620) (#1055) - (ba168a3) - Rename cas CompressionAlgorithm to HttpCompressionAlgorithm (#1052) - (9ba4323)
- Implement MatchingEngineStateManager (#1041) - (684dbc1)
- Move
update_action_with_internal_errorintoStateManager(#1053) - (0f33a8a) - Implement WorkerStateManager for simple scheduler (#993) - (1359513)
- Remove execution permissions from non-executable files (#1048) - (fbc39f5)
- Sync serde version in Cargo.toml to lockfile (#966) - (59df55d)
- Support cluster mode when using Redis as a store (#998) - (c85b6df)
- Implement
ClientStateManagerforSimpleScheduler(#985) - (49efde2) - Reduce native-cli executable size (#1010) - (d1a8d9d)
- Sync Cargo MSRV to Bazel (#1011) - (c0b284d)
- [Refactor] Stores now return Arc for construction (#989) - (5bdc9eb)
- Enable the dotcom workflow on main (#1008) - (28314e4)
- EvictingMap now supports B-tree lookups (#996) - (fd4c89c)
- [refactor] Migrate
worker::WorkerIdforaction_messages::WorkerId(#992) - (50401c3) - [Refactor] Simple scheduler method signatures to async (#971) - (3c50dd5)
- Refactor Store API to use StoreKey (#964) - (e524bbc)
- Refactor Store Api into client side and driver side (#935) - (04beafd)
- Create New Glossary (#957) - (77b2c33)
- Use single quotes for char (#955) - (e90c4bc)
- Include UUID in ActionState (#927) - (b07ca1d)
- Refactor EvictingMap so it does not use DigestInfo (#932) - (9c45e86)
⬆️ Bumps & Version Updates
- Bump Go deps (#1219) - (a953f19)
- Upgrade toolchains (#1191) - (97135e9)
- Bump some Bazel deps (#1176) - (f9ef39c)
- Update copyright headers (#1172) - (02465d3)
- Update Go dependencies (#1095) - (98d645f)
- Update Rust crate uuid to v1.9.0 (#1050) - (62f5a90)
- Update Rust crate mimalloc to v0.1.43 (#1047) - (b6d2035)
- Update Rust crate syn to v2.0.68 (#1046) - (97abbcd)
- Update Rust crate proc-macro2 to v1.0.86 (#1045) - (f830294)
- Update aws-sdk-rust monorepo (#1042) - (5f8a4f2)
- Update dependency rules_java to v7.6.5 (#1040) - (cc53957)
- Update dependency rules_rust to v0.46.0 (#1037) - (47a25b8)
- Update dependency rules_python to v0.33.2 (#1036) - (6049d35)
- Update dependency rules_java to v7.6.4 (#1035) - (7c52e89)
- Update dependency bazel to v7.2.0 (#1033) - (a675de6)
- Update dependency protobuf to v27.1.bcr.1 (#1034) - (1bc0f1a)
- Update Rust crate console-subscriber to 0.3.0 (#1032) - (b49bc26)
- Update Rust crate async-lock to v3.4.0 (#1031) - (c247057)
- Update Rust crate proc-macro2 to v1.0.85 (#1029) - (90da4c9)
- Update Rust crate hyper to v0.14.29 (#1028) - (0a64bb1)
- Update aws-sdk-rust monorepo (#1030) - (fc656de)
- Update Rust crate clap to v4.5.7 (#1026) - (9c0c68a)
- Update git & remove unused deps in ubuntu runners (#1024) - (b71952b)
- Bump yarn deps (#1015) - (b2678ff)
- Update
ValeCI action to handle large diffs (#978) - (f4ce898) - Increase pre-commit timeout in CI (#956) - (9bebba8)
- Bump trivially bumpable deps (#950) - (5ecc739)
- Bump flake and Bazel modules (#947) - (0eed759)
- Update Rust crate syn to v2.0.66 (#946) - (80af57f)
- Update Rust crate redis to v0.25.4 (#944) - (5fbd751)
- Update Rust crate quote to v1.0.36 (#938) - (0300a12)
- Update dependency protobuf to v26.0.bcr.1 (#887) - (724693f)
- Update Rust crate parking_lot to v0.12.3 (#936) - (fd643e6)
- Update Rust crate mimalloc to v0.1.42 (#933) - (08e2f2e)
- Update Rust crate proc-macro2 to v1.0.84 (#916) - (409af67)
0.4.0 - 2024-05-16
Compare with the previous release
❌️ Breaking Changes
⛰️ Features
- Implement get_tree() feature (#905) - (ae44878)
- Introduce the LRE flake module (#909) - (60f712b)
- Add OriginContext to track data across modules (#875) - (829904e)
- Add backend store metrics to VerifyStore (#897) - (7effcc4)
- Add metrics to CompletenessCheckingStore (#882) - (520b762)
- Add hit metrics to FastSlowStore (#884) - (6c9071f)
- Add metrics output to SizePartitioningStore (#880) - (17ecf8a)
- Allow K8s demos to use prebuilt images (#872) - (24e30fa)
- Add Redis Store (#393) - (f79b59b)
- Introduce the
nativeCLI (#851) - (fbe0583) - Refactor buf_channel (#849) - (f5e0035)
🐛 Bug Fixes
- Fix possible deadlock if max_open_files set too low (#908) - (e0a7bb9)
- Fix LLVM 18 toolchains after fb0edae (#883) - (8ee7ab3)
- Migrate K8s HTTPRoutes to GRPCRoutes (#868) - (7e379ff)
- Fix bug in buf_channel::consume() where exact size doesn't receive eof (#858) - (5583a5d)
📚 Documentation
- Update README.md (small edits) (#903) - (727fd19)
- Update Chromium Readme (#896) - (185eab3)
- Update README.md to pin version (#873) - (73c9929)
- Rewrite contribution documentation (#827) - (5e4c32c)
- Warn people about Nix in Chrome README.md (#865) - (d381162)
- Update Kubernetes Readme (#846) - (4082759)
- Document release process (#847) - (d854874)
🧪 Testing & CI
- Test building with Nix (#920) - (3391fdf)
- Harden CI against too long running jobs (#917) - (ba7ed50)
- Fix operations scripts evaluating to quickly (#906) - (66a72ab)
- Add nativelink_test macro for tests (#888) - (c0d7eaa)
⚙️ Miscellaneous
- Reduce keep alive log message level (#894) - (f9e67aa)
- Migrate to Bazelisk (#912) - (ab46197)
- Enable hermetic Bazel sandboxing (#902) - (acec6d3)
- All tokio::spawn and related functions must use nativelink's version (#890) - (c1d0402)
- Remove zig-cc (#876) - (402f335)
- Migrate all logging to the tracing library (#871) - (523ee33)
- Refactor S3 store & support upload retry (#854) - (9db29ef)
- fix a typo in the script comments. (#856) - (6d45a00)
- Rename buf_channel::take() to buf_channel::consume() (#848) - (aadb2b9)
- Connection Manager Rewrite (#806) - (a842f3a)
⬆️ Bumps & Version Updates
- Bump trivially bumpable deps (#914) - (0ff1f45)
- Update all development dependencies (#910) - (8a63295)
- Bump cilium in devcluster to 1.16.0-pre.2 (#904) - (64ed20a)
- Update dependency platforms to v0.0.10 (#886) - (7f799d7)
- Update Nix installers in CI (#879) - (5a549ba)
- Update Rust crate parking_lot to 0.12.2 (#885) - (f6e02a6)
- Update dependency clsx to v2.1.1 (#878) - (7227649)
- Bump trivially bumpable deps (#877) - (fb0edae)
- Update Rust version to 1.77.2 (#857) - (b2b83df)
- Update Rust crate rustls-pemfile to 2.1.2 (#852) - (44bc15f)
- Update Rust crate async-trait to 0.1.80 (#850) - (8df4345)
0.3.0 - 2024-04-10
Compare with the previous release
🐛 Bug Fixes
0.3.2 - 2024-04-09
Compare with the previous release
❌️ Breaking Changes
- [Breaking] Remove completeness checking logic in CacheLookupScheduler - (692e4de)
- [Breaking] Generalize LRE to arbitrary toolchains (#728) - (1a43ef9)
- [Breaking] Change in behavior of /status by introduction of component based health (#636) - (48cadc7)
- [BREAKING] Add concurrency limit to GRPC (#627) - (b47f39b)
- [Breaking] Deny unknown fields durning configuration serialization (#603) - (95afd36)
⛰️ Features
- Add safe request timeout for running actions manager (#743) - (33db963)
- Implement worker api for killing running actions (#840) - (abf12e8)
- Create directory for action (#752) - (414fff3)
- Add nativelink-debug target (#811) - (c60fb55)
- Allow variables in platform property values (#809) - (09fc7f8)
- Use mimalloc as global memory allocator (#749) - (6c647d6)
- Optimize file uploads when source is file (#723) - (7c9a070)
- Add API so stores can get Arc<Store> or &Store (#679) - (5df8a78)
- Add check for slow store to be noop and conditionally replace with fast (#670) - (e402a10)
- Max concurrent GrpcStore streams (#656) - (7548d4b)
- Add metrics to compression and existence cache store (#651) - (722c80b)
- Retry GrpcStore get_part_ref (#646) - (d46180c)
- Allow ByteStream write restart (#635) - (3fabbaa)
- Add warning for TLS (#609) - (63e2ad6)
- Add support for mTLS (#470) - (6a379b3)
- Add S3 http2 toggle flag (#604) - (8c433cd)
- Add blake3 support for verify store (#575) - (3acefc7)
- Build nativelink with musl (#583) - (ee4846c)
- Shard store weight scale distribution (#574) - (928f12f)
- Add console subscriber (#545) - (bb30474)
🐛 Bug Fixes
- Resolve upload deadlock (#816) - (b61142d)
- Fix nightly clippy warnings (#817) - (6d87cca)
- Fix
.gitignoreafter 1a43ef9 (#797) - (53e5a99) - Fix image publishing workflow after 1a43ef9 (#777) - (54b21b8)
- Completeness checking store should not check if directory digests exist (#748) - (e979e31)
- Check owner and group executable bits (#727) - (cea2336)
- Fix case where resource_name not set in stream error (#746) - (a651f2c)
- Set
rust-version(#734) - (d2dd46d) - Account for block size in filesystem store for eviction purposes (#661) - (0639a59)
- Fix cargo install tag and start command (#654) - (89313ff)
- Don't retry permanent failures (#634) - (81b64f7)
- Reenable caching for nix workflows (#631) - (6de799d)
- Fix AMI NativeLink Tarballing (#645) - (c8473ac)
- Evict on touch failure (#613) - (3037a66)
- Disable flaky caching for LRE-Remote workflow (#619) - (2899f31)
- Unbreak manual rustfmt invocations via Bazel (#617) - (f39e275)
- Fix case where filesystem store future dropping causes issues (#496) - (249322d)
- Minor refactor of functionally same code (#607) - (51715bd)
- Fix a potential bug in DropCloserReadHalf::take() (#606) - (70e8525)
- Fix dark mode accessibility contrast and made theme dynamic based on user machine (#597) - (d5443c8)
📚 Documentation
- Update README.md to include License and Slack (#841) - (6c4fb7e)
- Example of chromium using deployment scripts (#786) - (0aa7f65)
- Update README for more clarity (#803) - (31a1bf1)
- Fix incorrect bazel version 6.4.0+ in documenation (#801) - (b1b3bcb)
- Update js dependencies in docs (#766) - (4b8eeaf)
- Add search functionality to docs (#740) - (3dc1b8e)
- Add configuration breakdown page (#725) - (35daf43)
- Starts a Breakdown of Configuration (#680) - (433829c)
- Draw a General Purpose Diagram (#705) - (2c102c3)
- Basic config updated. (#669) - (f4d9db3)
- Introduce Vale to lint documentation (#585) - (745b0d6)
- Re-Add Rustup to the README (#648) - (0cba4fa)
- Improve the LRE README (#637) - (63826f2)
- Update README.md for AWS Terraform Deployment (#608) - (8a43fe4)
- Add artifact warning to documentation and swap out cargo emoji (#599) - (89eafed)
- Add Kubernetes Example to docs (#596) - (e1246fb)
- Fix the bazel run command documentation (#590) - (7f4a007)
- Add deployment examples to docs (#584) - (546484b)
- Update README.md (#580) - (0269835)
- Add OSFamily property in basic_cas.json (#577) - (3578d50)
- Rearrange docs and aligned content with README (#571) - (beb87cf)
🧪 Testing & CI
- Globally inline format args (#798) - (b940f65)
- Publish nativelink-worker image for C++ (#794) - (646253d)
- Forbid binary files in commits (#792) - (d9fc4ad)
- Unbreak CI (#769) - (682c4fe)
- Migrate Bazelisk actions to new variant (#760) - (3da42f2)
- Add hadolint to pre-commit hooks (#422) - (d8afd33)
- Reduce CI space requirements (#685) - (b9029bb)
- Separate K8s setup steps in CI (#614) - (82d9ee6)
⚙️ Miscellaneous
- Generalize Kubernetes worker setup (#812) - (4146a34)
- Unify RunningAction and AwaitedAction (#782) - (7997f03)
- Don't update rustup in native Cargo workflow (#775) - (9d49514)
- Ignore .direnv for bazel builds (#756) - (a15bdb6)
- Set max line length to Rust's defaults (#750) - (a876cce)
- Refactor fs.rs to use call_with_permit scheme (#741) - (011318a)
- Improve the error message in resource info parsing failure (#742) - (3e6f154)
- Cleanup hash functions to be more idomatic (#691) - (8dd786a)
- Rename missing
turbo-cachetonativelink(#663) - (f8044e6) - Autogenerate version from Cargo.toml (#660) - (59d3d28)
- Adjust all instances of Native Link in comments and metadata to NativeLink (#658) - (4e7d68b)
- Remove Alpha notice (#657) - (a9526b1)
- GrpcStore Write Retry (#638) - (9f7f45d)
- Create workflow for syncing Notion and Issues (#642) - (5470857)
- Ignore fast store (#633) - (f9f7908)
- Migrate to Bzlmod (#626) - (2a89ce6)
- Don't cache sanitizer workflows (#630) - (ae92fb3)
- GrpcStore retry first (#616) - (30887a9)
- Helpful Error Output for Integration Test (#625) - (39c6678)
- Enable blake3 for Bazel builds (#565) - (5744813)
- Migrate Mintlify to Docusaurus (#586) - (7247385)
⬆️ Bumps & Version Updates
- Bump Rust toolchains (#837) - (d501cd0)
- Update Rust crate prost to 0.12.4 (#836) - (8bf14b6)
- Update h2 to 0.3.26 (#835) - (e3913e7)
- Update Rust crate aws-smithy-runtime to 1.2.1 (#832) - (77fe4a8)
- Bump express (#833) - (2ae7cab)
- Update docusaurus monorepo to v3.2.1 (#821) - (d640321)
- Update docker workflows (#829) - (9a3b330)
- Update nix environment (#830) - (6b9e68e)
- Update Configuration.mdx (#822) - (15b455c)
- Update Rust crate lz4_flex to 0.11.3 (#820) - (5a3a37d)
- Update Rust crate pin-project-lite to 0.2.14 (#818) - (75f98e8)
- Update Rust crate tokio to 1.37.0 (#813) - (9e00ebb)
- Update Rust crate aws-sdk-s3 to 1.21.0 (#802) - (1dd302d)
- Update node dependencies (#805) - (b6d4427)
- Update Rust crate clap to 4.5.4 (#799) - (00ff4a0)
- Update Rust crate aws-config to 1.1.9 (#796) - (f601cd0)
- Update Rust crate async-trait to 0.1.79 (#790) - (09defc6)
- Update Rust crate bytes to 1.6.0 (#787) - (08539ec)
- Update dependency platforms to v0.0.9 (#784) - (a6976e0)
- Update dependency rules_java to v7.5.0 (#780) - (a6d0f64)
- Update Rust crate uuid to 1.8.0 (#776) - (4095e97)
- Update Rust crate aws-sdk-s3 to 1.20.0 (#774) - (d3ee9b6)
- Update Rust crate async-trait to 0.1.78 (#771) - (2960469)
- Update Rust crate aws-sdk-s3 to 1.19.1 (#767) - (10d5599)
- Update flake (#765) - (63a01c5)
- Update Rust crate clap to 4.5.3 (#763) - (3783abc)
- Update Rust crate aws-sdk-s3 to 1.19.0 (#762) - (aa599c3)
- Update Rust crate tokio-stream to 0.1.15 (#761) - (d8b514c)
- Update aws-sdk-rust monorepo (#759) - (4dc541e)
- Update Rust crate blake3 to 1.5.1 (#758) - (d6e6863)
- Update TypeScript dependencies (#753) - (4163da1)
- Update Rust crate clap to 4.5.2 (#754) - (d3fa8b2)
- Update Rust crate http to 1.1.0 (#549) - (14a4493)
- Optimize hashing files (#720) - (0fa9a40)
- Bump mio to v0.8.11 (#719) - (7169fc9)
- Update step-security/harden-runner action to v2.7.0 (#718) - (44cb709)
- Update dependency rules_java to v7.4.0 (#715) - (6058d6a)
- Update Rust crate uuid to 1.7.0 (#711) - (fdf232c)
- Update Rust crate tokio to 1.36.0 (#710) - (058828f)
- Update Rust crate tempfile to 3.10.1 (#709) - (aa79732)
- Update Rust crate shlex to 1.3.0 (#707) - (bd8d31a)
- Update Rust crate serde to 1.0.197 (#706) - (fb761b7)
- Update Rust crate rustls-pemfile to 2.1.1 (#704) - (59c2dd0)
- Update Rust crate relative-path to 1.9.2 (#703) - (e6ae832)
- Update Rust crate lz4_flex to 0.11.2 (#701) - (1840ca8)
- Update Rust crate mock_instant to 0.3.2 (#702) - (ae0ba19)
- Update Rust crate clap to 4.5.1 (#698) - (5427781)
- Update Rust crate lru to 0.12.3 (#700) - (37184e8)
- Update Rust crate log to 0.4.21 (#699) - (6364ddf)
- Update Rust crate async-trait to 0.1.77 (#695) - (34af738)
- Update Rust crate futures to 0.3.30 (#697) - (ab21dc5)
- Update AWS SDK to 1.x (#684) - (cd78ed2)
- Update Bazel-tracked toolchains (#690) - (c5851f9)
- Update GHA workflows (#696) - (b0fcac8)
- Update Rust crate async-lock to 3.3.0 (#693) - (65f89aa)
- Bump development environment (#686) - (0fd8b51)
- Update Rust crate hyper to 0.14.28 (#531) - (6491fc7)
- [Security] Bump trivially bumpable deps (#629) - (20887ac)
- EvictingMap should evict keys on all public access. (#601) - (56a0972)
- Update rules_rust to 0.36.2 (#588) - (4cfadb3)
0.2.0 - 2023-12-21
Compare with the previous release
❌️ Breaking Changes
📚 Documentation
🧪 Testing & CI
- Add Nix formatters and linters to pre-commit hooks (#561) - (d823964)
- Fix kill_all_waits_for_all_tasks_to_finish test stuck on windows (#525) - (143a5a1)
- Fix missing timeouts in tests (#553) - (c54c51c)
- Remove many of the large-* images in CI (#552) - (de0ae1e)
⚙️ Miscellaneous
- Publish SemVer-tagged images on tag pushes to main (#569) - (758c5d7)
- S3 Store credential provider (#494) - (1039ea0)
- fix a typo (#560) - (ff6d097)
⬆️ Bumps & Version Updates
- Update Rust crate async-lock to v3 (#548) - (6c555bb)
- Update OSSF domain (#558) - (82603d2)
- Update LLVM and rust toolchains (#557) - (1726a1a)
- Update actions/checkout action to v4 (#556) - (0d18d36)
- Update Rust crate tokio to 1.35.1 (#535) - (c6f8b8a)
- Update Rust crate tokio-rustls to 0.25.0 & rustls-pemfile to 2.0.0 (#540) - (cb76d18)
- Update actions/checkout action to v3.6.0 (#541) - (5dce4ce)
- Update dependency rules_python to v0.27.1 (#546) - (6ef8b6c)
- Update dependency rules_rust to v0.34.1 (#547) - (637f283)
- Update dependency @google-cloud/compute to v4.1.0 (#544) - (dbac23a)
[0.1.0] - 2023-12-20
❌️ Breaking Changes
- [Breaking] Mark S3 store experimental - (05a6dd7)
- [Breaking] listen_address renamed/remapped in config (#476) - (9db28d6)
- [Breaking] Rename entrypoint_cmd->entrypoint and precondition_script (#475) - (dbe61d2)
- [Breaking] Mark prometheus config as experimental (#473) - (931e721)
- [Breaking] Standardize configurations so they are all lower case (#461) - (3329d7c)
- [Breaking Change] Message field can now be populated (#361) - (cf2f3e4)
- [Breaking Change] Add store type to GrpcStore. - (e1f3716)
- [BreakingChange] Scheduler config now supports multiple impls - (384f14e)
⛰️ Features
- Add renovate.json (#487) - (933963f)
- Add OSFamily and container-image platform props (#512) - (b6b8252)
- Add fancy badges (#521) - (e122042)
- Add Git-Cliff Changelog (#515) - (8197bb9)
- Integrate google analytics (#503) - (ef74f9c)
- Add OpenSSF scorecard action (#486) - (4d9d897)
- Add Completeness Checking Store (#404) - (d264624)
- Publish container images (#443) - (697cddf)
- Add function to Store API to get the inner store when possible (#410) - (a0788fa)
- Add GCP to terraform deployment examples (#433) - (4661a36)
- Add Blake3 digest support (#403) - (2c8f0f0)
- Add Noop store (#408) - (aea3768)
- Add DigestHasher as interface to hashing functions (#400) - (9e31ca4)
- Add rustc explicitly to flake (#398) - (db724c0)
- Add existence cache (#383) - (e8e6701)
- Add ability for external scripts (ie: entrypoint_cmd) to manage timeout (#368) - (3ae120a)
- Add Http2 flags for advanced configurations (#365) - (cb04ed4)
- Add summary of platform properties to prometheus (#367) - (d9af3b9)
- Add more err_tip for easier debugging (#363) - (b5ff95d)
- Add security policy (#343) - (9173c2f)
- Add retry to GrpcScheduler (#324) - (21519ce)
- Add ability to ignore EOF check for writers (#341) - (979f941)
- Introduce Nix development flake (#330) - (a0792fd)
- Introduce Bazel build for Windows (#317) - (659d571)
- Added tracking for all client connections since server started and time server started - (0375a8f)
- Introduced shard store - (a7e3936)
- Add Contributing file - (4900f06)
- Add ADDITIONAL_SETUP_WORKER_CMD to Dockerfile - (3c30387)
- Add windows support - (2875f0b)
- Add support to build with Cargo - (bff3be3)
- Add metrics to SimpleScheduler and Worker - (63f7393)
- Add ability for metris to be disabled - (875b3ca)
- Add property modifying scheduler. - (656e7f7)
- Add metrics to LocalWorker and RunningActionsManager - (f0a526b)
- Add prometheus stats to MemoryStore - (f274dcf)
- Add retry to GrpcStore. - (259224b)
- Add prometheus stats for VerifyStore - (5f5b2c4)
- Add prometheus publishing and hook up FilesystemStore - (04a7772)
- Add support for backpressure from workers. - (fc97fcb)
- Add ability to create low watermark to avoid thrashing against eviction cap. - (e16b45c)
- Add is_empty to LenEntry - (e643090)
- Add timestamps to executor jobs. - (fa97b28)
- Add support for environmental variable lookup in S3Store config - (cb0de9e)
- Add ability to use env variables in config files - (d54b38e)
- Add Send trait to as_any() store calls - (c4be423)
- Add fs module which limits outstanding file handles - (f7b565f)
- Add functionality for worker to download and create working dir - (5e7f9ef)
- Adds .as_any() to stores - (e5de86d)
- Adds initial implementation for LocalWorker and supporting classes - (90cff23)
- Various minor updates - (cf6dd3d)
- Add shlex package in third_party - (d935d7f)
- Add worker config definitions and rename Metadata to Priority - (98c4e08)
- Add WorkerApiServer to services being served - (af0ccc3)
- Add support for keep alive for workers - (be6f2ee)
- [RE] Add WorkerApiService and connection functionality - (e8a349c)
- [RE] Various changes to worker_api.proto - (86220b7)
- Add uuid package and update other packages - (5115bc6)
- Add SizePartitioningStore - (d0112be)
- Add RefStore and restructure StoreManager - (6795bb0)
- Can now pass json config through CLI & add more sample configs - (ea4d76d)
- Add nix package and upgrade third_party packages - (a451628)
- Add basic scaffolding for scheduler + remote execution - (c91f61e)
- Adds readme to configuration - (54e8fe7)
- Add filesystem store - (d183cad)
- Adds simple query_write_status support - (844014a)
- Add buf_channel that will be used to help transport bytes around - (7e111c1)
- Add byteorder to third_party cargo - (a76a35f)
- Adds more eviction templates and functions in prep for filesystem store - (f2896a7)
- Adds FastSlow store that will try the fast store before slow store - (8c71137)
- Add dedup store - (2dba31c)
- Add retry support to get_part in s3_store - (ea2fc4c)
- Add CompressionStore and implement LZ4 compression - (d6cd4f9)
- Add s3 configuration - (be87381)
- Add retry utility in prep for s3_store - (86e63ee)
- Add async_read_taker in prep for s3_store - (90222f9)
- Add trust_size to DigestInfo - (d8f218f)
- Add ability for VerifyStore to check the sha256 hash of the digest - (40ba2fb)
- Add sha2 to Cargo.toml in prep for sha256 checking - (0eb2dab)
- Add mock_instant library to Cargo.toml - (34b9312)
- Add maplit to third_party dependencies - (b09153b)
- Add json package dependencies and updates packages - (69cf723)
- Add read stream support - (5c2db23)
- Add drop_guard to Cargo.toml - (3c147cd)
- Add ability to read partial store - (0b304cc)
- Add multi-threading and fix some minor performance issues - (0ed309c)
- Add DigestInfo utility - (25bef4a)
- Add much better way to do error logging with .err_tip() - (9ae49b6)
- Add futures package to Cargo.toml - (92912e6)
- Add Capabilities and Execution api endpoints - (24dec02)
- Add ./rust_fmt.sh - (5c65005)
- Add dependent proto files for bazel cas - (d845d40)
🐛 Bug Fixes
- Remove Fixed-Buffer Dependency (#509) - (5a6b182)
- Fix rustfmt after 6d07a86 (#520) - (cfdf7e8)
- Fixes error forwarding to client for failed command executions (#432) - (0c225da)
- Fix unwrap function in the Prometheus server code (#446) - (406eab7)
- Refactor filesystem store for timeout function passing (#439) - (5123ffc)
- Handle SIGINT (#434) - (f9e537c)
- Fixup configs to have defaults & digest function uses lower case (#438) - (d56f008)
- Fix AWS terraform deployment (#423) - (4cc53bc)
- Fix empty bytes error in s3 store and support AWS_ENDPOINT_URL (#421) - (cf531dc)
- Migrate S3 store to official AWS SDK (#369) - (6ce11ab)
- Fix double negative when computing remaining memory % in terraform deployment (#407) - (9e981a5)
- Fix the typo of WorkerProperty (#391) - (8a1cb6b)
- Retry GrpcStore write (#326) - (6006e23)
- Revert "Fix never looping loops (#372)" (#373) - (8e234c5)
- Fix never looping loops (#372) - (755c10e)
- Close on complete in GrpcScheduler (#328) - (6c937da)
- Fix potential race condition if worker disconnects - (b871a90)
- Don't download zero size blobs - (c8e2ee8)
- Fix prometheus metrics to not publish multiple times - (f42f150)
- Fix readme TLDR - (b6a4046)
- Fix default config regression in master - (bca2f3d)
- Fix fence post bugs in dedup store - (d7c847c)
- Fix the AWS deployment examples - (17bfbf6)
- Fix inefficient upload of stderr/stdout in workers - (8ac4824)
- Don't remove Error context. - (e9ab61e)
- Fix clippy warnings for scheduler directory - (1491d0a)
- Fix potential bug where scheduer could drop action - (f118ccd)
- Fix "unused function" warnings in utf8_range - (f048352)
- Fix digest clones and a few other minor clippy warnings - (a523115)
- Fix clippy messages in cas/store - (7fef931)
- Fix clippy erros for most other non-scheduler files - (264849b)
- Fix clippy cas/grpc_service folder - (e85faed)
- Fix most clippy warnings in worker files - (be228d0)
- Fixes the
entrypoint_cmdconfiguration - (096d7ea) - Fix a couple of nits with the timestamp additions. - (b320de5)
- Fix bug if no instance_name/resource_name is given upload does not work - (b010b4b)
- Fix scheduler so platform properties are properly restored - (059b0ef)
- Fix bug on output_files' folders were not being created - (bb010f2)
- Fix bug where worker was not creating working directory properly - (4e51b6d)
- Fix wrong
type_urlin google-proto's Any type - (9cda96a) - Fix bug during .has() call in dedup store - (5cc9a09)
- Fixed various bugs in filesystem store - (7ba407d)
- Fix bug in evicting_map with unref improperly called and readability - (ea393a5)
- Fix minor issue in FastSlowStore - (81fb378)
- Fix case where s3 uploads in wrong order - (4798fe9)
- Fix bug in s3_store where 5mb is calculated wrong & improve debugability - (0451781)
- Fix s3_store - (efcb653)
- Fixed AsyncFixedBuffer - (519fa9f)
- Minor changes to AsyncFixedBuffer - (a506363)
- Fix lifetime of StoreTrait::update() - (9ec43a2)
- Fix --config debug config to properly add debug symbols - (90b43c6)
- Fix small bug in gen_rs_proto - (627c0f8)
- Fix small needless cast to i64 - (59c609e)
- Fix bug with verify_store when receiving multiple chunks - (a78caec)
- Fixed typo in debug message when instance_name is not properly set - (d231ea1)
- Fixed EOF bits and few other items in order to get bazel working - (8558ee9)
- Fix async_fixed_buffers to add get_closer() - (9225b1f)
- Fix memory leak - (c27685c)
- Fix Store import in cas_server.rs - (a7e7859)
📚 Documentation
- Include command example for Powershell in documentation files (#501) - (0536d8e)
- Add CodeQL scanning for Python and JS/TS (#484) - (34f0aa0)
- Add documentation and machine type variables for gcp. (#457) - (cb6540c)
- Rename docs directory (#468) - (43b4ea8)
- Add docs to monorepo (#453) - (378b806)
- Handle SIGTERM (#462) - (e49049c)
- Make Native Link installable via nix (#442) - (b8f3ef1)
- Adds README to docker-compose deployment-example (#427) - (3ec203b)
- Fix the incorrect config path in the documentation (#416) - (7f40696)
- Rewrite the build infrastructure (#394) - (3147265)
- update the README for discoverability. (#349) - (5e2e81a)
- Minor optimizations and documentation to CacheLookupScheduler - (66c403d)
- Simplify Dockerfile and prepare for Goma example - (65b8f0e)
- Update README.md - (7563df7)
- Document that users should use
-c optfor release builds - (9351f26) - Fix bazel version change that broke proto building and documentation - (1994dde)
- Add terraform deployment example and documentation - (c7dff9f)
- Filesystem store now delays before deleting temp file - (33d88c5)
- Support deprecated symlink fields & fix bug for workers use CWD - (00431f9)
- FastSlowStore now properly documented and used in LocalWorkerConfig - (728cb90)
🧪 Testing & CI
- Fix ensure_full_copy_of_bytes_is_made_test flaky test (#528) - (14fdf4f)
- Add small sleep in some tests to reduce flakes in CI (#526) - (fd4e6a3)
- Mark nix-cargo and bazel tests as large ci instances (#524) - (a18d2d2)
- Scale back a few CI runs (#516) - (245d9bb)
- Add Kubernetes example (#479) - (e1c495f)
- Avoid writer EOF until fast store complete (#480) - (2de8867)
- Fix pre-commit hooks after 378b806 (#482) - (f2bd770)
- Introduce Local Remote Execution (#471) - (449376b)
- Separate CI runs by build system (#451) - (75a98f2)
- Add remaining MacOS targets for further testing (#450) - (8f9da8f)
- Fix MacOS tests (#449) - (befd1b6)
- Give flaky memory store test more wiggle room (#448) - (ab0f1ac)
- Add aarch64-apple-darwin to crates repository supported platforms (#440) - (ff6d5cf)
- Fix pre-commit hooks after 3ec203b (#435) - (4aa2bc4)
- Add pre-commit hooks for Starlark (#414) - (06654e6)
- Add default pre-commit hooks (#405) - (228bdc4)
- Add pre-commit infrastructure (#401) - (8de3014)
- Added server readiness string listening to integration tests to reduce flakiness (#378) - (22abf90)
- Refactor sanitizer CI (#344) - (ce64cc2)
- Refactor Bazel unit test CI (#342) - (ef794c2)
- Integration tests should work for Mac OS. (#334) - (1339e9d)
- Make update_protos test compatible with Windows - (c2e2793)
- Remove redundant formatting script - (93572d1)
- Attempt to fix the flake Text file busy (os error 26) error in CI - (b730a90)
- Attempt to fix flaky tests regarding Text file busy error - (637c8a9)
- Fix flakey tests due to sync_all() not being called - (6c931fa)
- Fix bug in BytestreamServer where it would ignore finish_write - (f645d69)
- Files will now close if held open too long - (67b90e2)
- Improve caching in CI and fix flakey prometheus test - (ea33b6c)
- Fix incorrect type check. - (a22e437)
- Add TSAN suppression and harness - (76326db)
- Fix ASAN error and enable ASAN in CI - (e0cc0f9)
- Add optional sanitizer build configurations - (a428e23)
- Remove need for spawn in BytestreamServer - (44a4593)
- Enable clippy by default for tests - (f211ef2)
- Removes needless overoptimization of strings for DigestInfo - (4062d1d)
- Move CI tests to run under docker - (5322c33)
- Add convenience config to test clippy - (1185876)
- Add a test for filestore loading from disk. - (5f3e9f5)
- Remove the callbacks from the filesystem_store - (e2e62d2)
- Adds GrpcStore and first integration tests - (117e173)
- Fix bug in scheduler of not removing actions after execution - (f2b825b)
- Fixes flakey filesystem_store_test - (717d87a)
- First draft to get remote execution working - (f207dfa)
- Restructure LocalWorker for easier testing - (d7d71a1)
- Fix bug in memory store when receiving a zero byte object - (52445a1)
- Fix github CI badge - (2758d22)
- Adds automated CI tests on pull requests and master - (e647de0)
- Add more basic scheduler support - (2edf514)
- Dedup store will now bypass deduplication when size is small - (997be53)
- Fix buf in bytestream_server when NotFound was returned - (a4634eb)
- Upgrade rustc, use new nightly, rules_python, and rustfmt - (d0c31fb)
- Fix format of util/tests/async_read_taker_test.rs - (cd12d1d)
- dummy_test.sh will now print some equal signs when done - (1227d39)
- Added single_item_wrong_digest_size test back to stable - (b517db1)
- Add //:dummy_test that is useful for testing caching - (e5a1e9a)
- Add dummy test that is used for easy caching - (efd449a)
- Add test for bytestream::write() - (5dc8ac0)
- Add bytestream server scaffolding - (7aff76f)
- Add test for single item update action cache - (c3d89e1)
- get_action_result done with tests - (fcc8a31)
- Add first test for ac_server - (221ed5f)
- Add test and fix bug when querying and using bad hash on .has() - (9adbe81)
- Add test for batch_read_blobs - (4b1ae1a)
- Add tests for invalid memory store requests - (4f8e5a7)
- Add impl and tests for get store data - (7922f84)
- Basic HashMap for memory store and enable store_one_item_existence test - (5206e74)
- Add test for store_one_item_existence - (a6f1a70)
- Add store and first test - (ed4bde4)
- Add ability to resolve GetCapabilities and bazel connect testing - (1aba20c)
⚙️ Miscellaneous
- MacOS use non darwin iconv (#534) - (2e4a131)
- MacOS enable flake nix builds (#529) - (e1d35d6)
- Mark GCP & AWS terraform experimental (#522) - (910ad03)
- Decouple toolchain generation and execution hashes (#523) - (0be8a3a)
- Support empty digests in stores (#507) - (41a85fb)
- Increase the Max Blocking Threads (#510) - (6d07a86)
- Remove beta toolchain from native Cargo builds (#514) - (334e738)
- Migrate L2 announcements and LB-IPAM to cilium (#505) - (df6f5b9)
- Move custom crates to nativelink dirs (#483) - (1aadd42)
- Temporarily disable caching in image action (#466) - (a22150d)
- Renames the project to nativelink (#463) - (2259251)
- Remove caching from native cargo action (#458) - (4eab282)
- Migrate logs to tracing (#387) - (c5c440a)
- Implement API to drain a specific worker (#413) - (fbf1e44)
- Use lowercase image names (#447) - (8b49bac)
- Rename ExistanceStore to ExistanceCacheStore (#437) - (95f470c)
- Remove the unnecessary scheduler.rs file (#431) - (dd17524)
- Switch json5 to serde_json5 (#420) - (9279ba1)
- Move action_messages & part of platform_properties to utils crate (#417) - (6bc991c)
- Refactor ExistanceStore (#418) - (08b2954)
- Remove OpenSSL from build requirements (#412) - (55a1292)
- Remove openssl from flake (#411) - (05ec3f2)
- Use Blake3 hasher for computing the action message (#395) - (9543964)
- Rename Turbo Cache to Native Link (#402) - (7d9deaf)
- Reduce allocations needed to hash uploads (#396) - (6e0d271)
- Rename proto organization to trace_machina (#389) - (cf5f45b)
- Migrate from lazy_static to once_cell (#377) - (c4b296c)
- Move AWS terraform to it's own directory (#376) - (dd99eb0)
- RBE consistency. (#364) - (7966d2d)
- TLS Integration (#316) - (6c753d6)
- Inline format args in cas_main (#337) - (62a2c1e)
- Remove futures from scheduler_factory (#336) - (f15146d)
- Globally enable windows symlinks (#327) - (9d08195)
- propose a PR template to help newcomers get started more easily. - (b24b214)
- Always make a copy in MemoryStore to reduce long-lasting allocs - (699dff9)
- Refactor resource_info to support v2.3 resource names - (d3d0b64)
- :get_part's writer is now a mutable reference. - (082a85c)
- Future proof code from accidentially creating zombies - (4bd986c)
- Remove spawn in dedup store - (59bbfd8)
- Change Copyright to Trace Machina, Inc. - (d8685ed)
- Support injecting property values into worker command. - (06c03de)
- Populate the fast store on partial read - (e0e0a88)
- Worker services now start after listeners to prevent error confiusion - (16f2ca5)
- Output paths are relative to the work directory. - (f835e6d)
- improve clarity for getting started. - (b677d78)
- Create CODE_OF_CONDUCT.md - (a9709b4)
- Implement fast slow metrics. - (10d2618)
- Make stats in EvictingMap more useful - (03c1a07)
- Removed properties should be known to the property manager. - (7d0999b)
- Rename prometheus_utils to metrics_utils - (298bfb9)
- Move Cargo.toml to Workspace and config to single library - (61d89cd)
- Prometheus now publishes connected clients - (29fa44a)
- Streams may now be resumed on disconnect - (b0b66a1)
- Jobs now honor timeout in action - (fdc6d9b)
- Replace Sha256 with Blake3 in DedupStore - (b30dfce)
- Improve prometheus utils api - (87bd0e6)
- Change StoreTrait::has to take &[DigestInfo]. - (732ae83)
- Use Axum's router which supports multiple service types - (4856d35)
- Create WaitExecution for ExecutionServer. - (857bf40)
- Removes name from action state and make Operation::name schema - (0fac1ee)
- Implementation of a cache lookup scheduler. - (fcdf192)
- Move to UnorderedFutures in cas_store. - (5dc31e2)
- Implement a GrpcScheduler to forward. - (bf0b933)
- Promote chosen worker to distribute jobs. - (2fd1702)
- Remove dependency on
satackey/action-docker-layer-caching- (0801e26) - Implement Into traits indirectly via From - (86d8c60)
- Scheduler is now an interface/trait - (13159ae)
- Rename
SchedulertoSimpleScheduler- (d9aeefc) - Goma places the platform properties in the command, so populate from there. - (69a9f5f)
- Save action results in the action cache when they are completed on a worker. - (7bad256)
- Move scheduler to use blocking mutexes - (74b2f04)
- Change the version of C++ used for protoc to the earliest supported. - (b62338b)
- Use recent Ubuntu with Clang as build environment - (5ac2c55)
- Rename update_worker_with_internal_error - (58b5021)
- Rename backends.rs to stores.rs - (451f68f)
- Move trivial data access Mutex's to sync Mutex. - (812b94d)
- Perform parallel reading of content directory to speed up startup. - (b354b25)
- Remove obsolete raze configuration from Cargo.toml - (42b9ce0)
- Kill currently running actions on scheduler disconnect. - (d5468dc)
- Workers may be running multiple actions, so track them individually. - (99ee5b7)
- Gzip compression is now disabled by default and configurable - (f4fcff2)
- Scheduled jobs should be in a queue, not a stack. - (497446b)
- Migrate from cargo_raze to crate_universe - (61309c1)
- Simplify proto generation - (eebd6be)
- Overhaul filesystem store to no longer use renameat2 - (a3cddf9)
- Move from fast-async-mutex to async-lock crate as it's maintained. - (e172756)
- Change license to Apache 2 license - (1147525)
- Remove dependency on rust-nightly - (41028a9)
- Enable Gzip compression support to GRPC - (438afbf)
- Make JSON environmental variable lookup much better - (16a1a18)
- Support more platforms for compilation - (7e09945)
- Scheduler will retry on internal errors - (2be02e2)
- LocalWorker will now purge the work directory on construction - (7325ffb)
- Upgrade dependencies - (0765b63)
- Upgrade LRU package and other deps - (1c02c09)
is_executableflag on files now overrides unix_mode exec flag - (420e7ee)- Remove the requirement of using reference for action_messages - (5daa4ff)
- Services in main() now run in their own spawn - (09c52d9)
- Implement execution_response() in WorkerApiServer - (e26549a)
- Implement going_away() support to WorkerAPIServer - (0b68053)
- Rename project turbo-cache - (76a7131)
- Remove small item optimization in dedup_store and .has() calls - (f9e090d)
- S3 now has a limit on number of active requests at a time - (025305c)
- Cleanup un-needed lifetime annotations in store traits - (e341583)
- Refactor code to use streams instead of AsyncRead/AsyncWrite - (697a11c)
- Move evicting_map to use bytes instead of Vec for future efficencies - (9abc64c)
- Minor change to make fastcdc return Bytes intead of BytesMut - (d5f1918)
- EvictingMap is now a template - (791dc67)
.has()now returns size on success instead of boolean - (6a88752)- Slightly improve the performance of fastcdc by ~30% - (3063d2c)
- Stores now support non-exact upload sizes & S3 store optimizations - (d093fdd)
- Upgrade deps packages (tonic, tokio, tonic) - (692070a)
- Various changes to improve debugging - (3a4d743)
- Remove DigestInfo.trust_size & add expected_size to update() function - (e8a83eb)
- Use fast-async-mutex for all mutex needs - (c5d450c)
- Minor changes to ac_server to reduce chance of allocations - (41f989f)
- Upgrade cargo packages and rust version - (7956a02)
- Remove Sync requirement for ResultFuture - (59720c9)
- Upgrade tonic, tokio and prost - (14eebc6)
- MemoryStore now properly honors HASH and size constraints - (52b9ddb)
- Move EvictingMapt to use DigestInfo - (1148952)
- MemoryStore now can be configured to evict entries - (5830d0b)
- ByteStream service now properly honors instance_name - (e9c8915)
- Action Cache service now properly honors instance_name - (7af7cc6)
- Remove need to pass CAS store to action cache service - (cc37b08)
- CAS service now supports instance name partitioning - (faba6c9)
- Moved hard coded settings to config - (0f7b2d0)
- Configuration is now loaded from json - (99d170c)
- Move store to use Pin and DigestInfo is no longer ref - (cf8cb79)
- Now rust_fmt.sh will compile dependencies if needed - (c93b852)
- Now use opt by default and add --config debug flag for dbg in bazel - (2abea44)
- Better logging - (e61482a)
- Improve logging - (7068b4b)
- Store now has flag of when to verify the size of the digest - (6c70370)
- Implement bufferstream's write() - (e09db45)
- Move AC to inner functions - (5452f4b)
- Upgrade tokio library - (3e8c210)
- Implement get_action_result for action cache - (04d6a6d)
- Remove need for exposing store in CasServer - (b4682cb)
- Makes storage an Arc in prep for action cache good-ness - (365151a)
- Cas batch_read_blobs now works - (42d4c8d)
- Move some code to common util library - (2048d24)
- Move macros to //util folder - (2fe5d30)
- Cleanup capabilities a little - (4f5aad9)
- CAS server moved to cas directory - (fcca6df)
- Ignore target directory and ./rust_fmt.sh uses parallel now - (7a070b9)
- Bazel remote execution server mock - (862a923)
- Initial commit - (4bf7887)
⬆️ Bumps & Version Updates
- Update dependency mintlify to v4.0.80 (#536) - (7564e5e)
- Update Rust crate http to ^0.2.11 (#530) - (ca146ac)
- Update native-cargo.yaml Runner Group (#511) - (e1843f1)
- Update protobuf dependencies (#493) - (3dacdad)
- Bump trivially bumpable deps (#488) - (96302cb)
- Update protos after 1aadd42 (#489) - (9c6efe0)
- Make max_bytes_per_stream optional in config (#474) - (a01a552)
- Bump Rust version to 1.74 (#459) - (5412d7c)
- Update nightly Rust toolchain for Bazel (#456) - (5acfa25)
- Update Bazel to 6.4.0 (#381) - (2fb59b6)
- Update Rust version to 1.73.0 (#371) - (56eda36)
- Reduce flakiness of memory_store_test (#318) - (ee1f343)
- Make memory_store_test compatible with Windows (#315) - (2c7e22b)
- Update rules_rust to 0.29.0 - (d925e26)
- Update Bazel to 6.3.2 - (c577db5)
- Introduce get_part_ref() and migrate primary use to .get_part() - (fb6e1fd)
- Update remote_execution.proto to v2.3 - (4c71336)
- Update all dependencies to their latest versions - (6a72841)
- Update Bazel to 6.2.1 - (d30571e)
- Update dependencies. - (85bf34d)
- Update rules_rust to 0.20.0 - (7a543c2)
- Add minimum bazel version to .bazelversion - (a2be6f5)
- Updates cargo packages - (a610e69)
- Various minor changes - (2546a77)
- Upgrade prost & tonic - (baad561)
- Adds ability in proto for worker to return internal errors - (576aff4)
- Restructure config format in prep for WorkerApiServer - (e8ce3a8)
- Update Readme - (ecb4dc5)
- Update third_party/Cargo in prep for s3_store - (f00b58f)
- Update cargo packages - (786552f)
- Move to 120 character line limit - (feb392d)
- Update fully works for CAS w/ tests - (d2ed91e)