Repository navigation
trim rust features - #1
Merged
Merged
Conversation
layus
commented
Sep 27, 2026
Owner
- Gate S3/GCS/Redis/Mongo store backends behind cargo features
- Remove the unused nativelink-worker crate
- flake: drop upstream NativeLink infrastructure
- Remove the Bazel build
- Remove leftover upstream scripts and configs
- Remove service modules and store factory nixception never serves
- proto: drop remote-asset and Bazel BEP protos
- config: drop the JSON server-config format
- util: drop unused OriginEventPublisher and WriteCounter; prune deps
- store: drop an unfulfilled single_use_lifetimes expectation
- config: keep serde_json5 as a dev-dependency for deserialization_test
- changelog: describe the upstream-code removal
nixception only builds Nix/Noop/ExistenceCache stores through the topology! macro, so the remote backends are now opt-in (`all-backends`), fred becomes optional in nativelink-error, and the generic CasConfig-driven factory code is dropped from src/lib.rs.
Nothing depends on it anymore: nixception executes actions through the NixScheduler instead of remote workers.
Take the Rust toolchain straight from rust-overlay (same 1.96.1 toolchain the LRE overlay produced) and remove everything only upstream NativeLink used: local-remote-execution, flake modules, container/worker images, templates, native-cli, kubernetes/deploy examples, Pulumi, and the cloud/web tooling in the dev shell. Also drops the git-hooks and nix2container inputs.
Cargo (via crane in flake.nix) is the only build nixception uses. Drop every BUILD.bazel/MODULE.bazel, .bazelrc & co, the Bazel toolchain examples and rules_rust patches, and the Bazel-only helper tools. Proto codegen previously ran through Bazel genrules; it is now nativelink-proto/update_protos.sh, which runs gen_protos_tool as a cargo example (no more clap dependency) and reproduces genproto/ byte for byte. The Bazel integration *checks* in checks/bazel are unaffected.
The JSON-config integration scripts and nix-proxy-config.json target the config-driven server that nixception replaced with topology!; Vale, docker and the cargo-features-manager table served upstream tooling only. Trim .gitignore/typos.toml of paths that no longer exist.
topology! only wires Cas/Ac/Execution/Capabilities/ByteStream, so the BEP, Fetch/Push (remote asset), WorkerApi and Health servers were reachable only from their own tests. The config-driven store_factory had no caller left either (the lone S3 test now builds its store directly). Prune the dependencies this frees.
With the Fetch/Push and BEP servers gone, nothing produces those messages. Remove their OriginEvent variants (field numbers reserved) and the BepEvent message, then the remote_asset, google.devtools.build.v1 and Bazel build_event_stream proto trees and their generated code.
nixception builds its topology in code, so CasConfig (servers, listeners, TLS, workers, global/origin-event settings), the json5 loader, the backcompat shim, the example configs and their test are all unused. Keep only the per-service structs topology! consumes, and drop serde_json/serde_json5 from config and error.
The origin-event publisher was only wired from the removed JSON config, and WriteCounter had no users. Also drop dependencies cargo-machete reports unused in nativelink-config and nativelink-store.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.