Skip to content

trim rust features - #1

Merged
layus merged 12 commits into
mainfrom
trim-rust-features
Sep 27, 2026
Merged

layus merged 12 commits into
mainfrom
trim-rust-features

Conversation

@layus

@layus layus commented Sep 27, 2026

Copy link
Copy Markdown
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.
@layus
layus merged commit 0d3fa7b into main Sep 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant