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.
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 therollingrelease tag, and the source fallback clones/pulls the default branch ofleynos/whitakerwithout a tag or revision. The lint gate is therefore not reproducible — whenrollingormainmoves, 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:
v0.2.5for installer 0.2.5), both for the prebuilt download and the git fallback.--suite-ref <tag|rev>(name illustrative) flag for explicit pinning, so CI can expresswhitaker-installer --suite-ref v0.2.5.rollingavailable behind an explicit opt-in flag for consumers who want the bleeding edge.Impact
With ~20 repositories now gating
make linton the suite (see the estate rollout tracked from leynos/netsuke#410), an unpinned suite means a single push torollingcan 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.