원클릭으로
nativelink-dependency-update
// Use when updating NativeLink Cargo dependencies, Bazel module dependencies, rules_rust pins, lock files, toolchains, or generated dependency metadata.
// Use when updating NativeLink Cargo dependencies, Bazel module dependencies, rules_rust pins, lock files, toolchains, or generated dependency metadata.
| name | nativelink-dependency-update |
| description | Use when updating NativeLink Cargo dependencies, Bazel module dependencies, rules_rust pins, lock files, toolchains, or generated dependency metadata. |
Use this skill for dependency bumps, Rust toolchain changes, Bazel module changes, lock file updates, and dependency cleanup.
NativeLink keeps Cargo and Bazel dependency state connected. Check the relevant set before editing:
Cargo.tomlCargo.toml filesCargo.lockMODULE.bazelMODULE.bazel.lock.bazelrcflake.nix and flake.lock when tooling comes from NixMODULE.bazel uses crate.from_cargo with workspace crate manifests. Cargo changes can affect Bazel resolution.
cargo update -p <crate> for targeted Cargo bumps when appropriate..bazelrc must be regenerated. The file notes that lint config is kept in sync with the top-level Cargo config through tools/generate-bazel-rc.Use a dependency-specific verification ladder:
cargo check --all
bazel build //:nativelink
For Rust dependency bumps:
cargo test --all --profile=smol
bazel test //...
For Bazel, rules, or toolchain changes:
bazel build //...
bazel test //...
When tool versions mismatch locally, enter the Nix development shell:
nix --extra-experimental-features nix-command --extra-experimental-features flakes develop
Include:
Migrate a Bazel project from WORKSPACE to Bzlmod (MODULE.bazel). Use when a project has a WORKSPACE / WORKSPACE.bazel file but no MODULE.bazel, when the user asks to "migrate to bzlmod", "adopt MODULE.bazel", "drop WORKSPACE", "move to Bazel modules", or upgrade to Bazel 8/9 compatibility. Covers the hybrid WORKSPACE.bzlmod gradual migration, dependency translation (http_archive→bazel_dep, repo rules→use_repo_rule / module extensions, bind→alias), toolchain registration, override directives, the toolchainization pattern for rule-set authors, dual WORKSPACE/Bzlmod API design for library modules, minimum-version strategy with single_version_override, fixing Label(@computed_repo_name) patterns, and writing parameterized backwards-compatibility smoke tests.
Use when verifying NativeLink changes with Bazel, selecting focused test targets, debugging rustfmt/clippy aspect failures, or preparing a confidence report for Rust/Bazel changes.
Use when changing NativeLink JSON5 configuration, deployment examples, protobuf/service protocol surfaces, or compatibility-sensitive config behavior.
Use when debugging NativeLink local remote execution, remote cache/executor self-tests, BEP event ingestion, worker scheduling, CAS misses, or Bazel remote execution behavior.
Use when implementing or reviewing Rust changes in NativeLink crates, especially storage, scheduler, worker, service, config, and shared utility behavior.