Skip to content

whitaker-installer installs an unpinned lint suite (rolling/default branch) #271

Description

@leynos

Summary

Estate CI pins whitaker-installer (e.g. cargo binstall whitaker-installer@0.2.5), but the installer itself then fetches the lint suite from a mutable source: the prebuilt path downloads from the rolling release tag, and the source fallback clones/pulls the default branch of leynos/whitaker without a tag or revision. The lint gate is therefore not reproducible — when rolling or main moves, unrelated PRs across consuming repositories can start failing (new lints, changed thresholds) or silently passing where they previously failed.

Raised repeatedly by review tooling on the tier 1–2 adoption PRs (for example leynos/dbar#17, leynos/prosidy-darn#44, leynos/agentland#26).

Proposal

Give the installer a deterministic default and an explicit override:

  • By default, install the suite at the tag matching the installer's own version (v0.2.5 for installer 0.2.5), both for the prebuilt download and the git fallback.
  • Add a --suite-ref <tag|rev> (name illustrative) flag for explicit pinning, so CI can express whitaker-installer --suite-ref v0.2.5.
  • Keep rolling available behind an explicit opt-in flag for consumers who want the bleeding edge.

Impact

With ~20 repositories now gating make lint on the suite (see the estate rollout tracked from leynos/netsuke#410), an unpinned suite means a single push to rolling can turn the whole estate red at once. Version-matched defaults would make suite updates flow through the ordinary installer-version bumps that Dependabot already manages.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions