Skip to content

Remove repo-local _* Rust tool wrappers and call soldr directly #181

@zackees

Description

@zackees

Problem

#53 replaced the old Rust toolchain resolution logic with soldr, but the repo still exposes repo-local _cargo, _rustc, and _rustfmt scripts. Those wrappers now mostly add another indirection layer around soldr:

./_cargo   -> uv run soldr cargo "$@"
./_rustc   -> uv run soldr rustc "$@"
./_rustfmt -> uv run soldr rustfmt "$@"

That means developers and agents still have to remember fbuild-specific _ commands even though soldr already solves the underlying problem: selecting the correct rustup-managed toolchain from rust-toolchain.toml via rustup which.

The desired steady state is simpler: fbuild should not require or recommend _cargo, _rustc, _rustfmt, or other repo-specific Rust build tool shims. Use soldr ... directly, with uv run soldr ... where the dev-tool virtualenv is needed.

Proposed fix

  1. Update docs and agent guidance to prefer direct soldr commands:

    • uv run soldr cargo ...
    • uv run soldr rustc ...
    • uv run soldr rustfmt ...
    • uv run soldr clippy-driver ...
  2. Remove _cargo, _rustc, and _rustfmt if no CI/job/script still depends on them.

  3. Update any scripts, docs, hooks, or examples that mention _cargo, _rustc, or _rustfmt.

  4. Keep soldr responsible for maintaining the correct Rust tool version by resolving through rustup and the checked-in rust-toolchain.toml.

Acceptance criteria

  • rg "_cargo|_rustc|_rustfmt" has no remaining user-facing recommendations, except historical references if explicitly needed.
  • _cargo, _rustc, and _rustfmt are removed, or any remaining wrapper has a documented compatibility reason and is no longer recommended.
  • CI and local docs use uv run soldr ... / soldr ... directly.
  • ci/hooks/tool_guard.py continues to allow soldr ... and does not require repo-local _ tools.
  • uv run soldr cargo check --workspace --all-targets works as the canonical Rust check command.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions