Skip to content

contributor's cargo tools fail when cargo is not on the default PATH #59

Description

@catinspace-au

alint and typos install via cargo in the contributor role, but their tasks carry no cargo environment -- they assume cargo is already on the connecting shell's PATH. That holds on a warm box converged in role order, and fails two real ways, both hit on desktop-derek 2026-08-26: a first converge (contributor runs via soe's dependency chain before developer-rust bootstraps rustup) and any tag-scoped run that skips developer-rust. The failure is a warn, so the box quietly loses its alint and typos passes in hyperi-ci.

Fix shape: give the contributor cargo tasks the same resolved environment developer-rust's cargo tasks use (~/.cargo/bin on PATH, plus /opt/homebrew/opt/rustup/bin on macOS), or hoist that env to one shared place -- which is the same hoist the five homebrew_env copies and 78 rescue bodies are waiting on.

Done when a converge of --tags contributor on a host with rustup installed but a bare login PATH installs both tools.

Activity

  1. catinspace-au commented on Aug 30, 2026

    @catinspace-au
    ContributorAuthor

    The premise here is out of date -- both tasks named in the body already carry a cargo PATH, and have since before this was filed (typos.yml:23-24, hyperi_ci.yml:118-119, blame 2026-07-17 and 2026-07-23).

    typos is fine either way: macOS takes the brew branch, so the cargo path is Linux-only there.

    One residual was real. alint installs through cargo install with NO distribution gate, so it runs on macOS too, and its PATH lacked /opt/homebrew/opt/rustup/bin. rust.yml:267 already states the constraint plainly -- brew's rustup never links its shims into /opt/homebrew/bin, so without that directory no cargo resolves on a rustup Mac. Added it.

    NOT verified: this is macOS-only and we have no Mac in reach, so it is reasoned from the existing comment and the cargo_env that developer-rust already builds for macOS, not observed. Worth a look on real hardware.

    The deeper cure the body gestures at -- hoisting cargo_env/homebrew_env/pnpm_env out of role-scoped set_facts into group_vars -- is a bigger change touching ~20 files and wants its own issue. Note that pnpm_env has now moved to the always-tagged init for exactly this reason (see #61), so there is a precedent to follow.

    Fix in #70.

  2. catinspace-au commented on Aug 30, 2026

    @catinspace-au
    ContributorAuthor

    Landed in 06035f1 (#70). Only alint's macOS PATH was actually short; it now leads with /opt/homebrew/opt/rustup/bin. Flagging again that this half is UNVERIFIED -- no Mac was in reach, so it wants a look on real hardware.

  3. github-actions commented on Oct 7, 2026

    @github-actions
    Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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