Harden the Whitaker CI install step and bump the suite to 0.2.5#141
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughUpdate CI to install Whitaker 0.2.6 with conditional tooling, and extend the Makefile lint target to run spelling checks alongside Clippy and Whitaker Dylint. ChangesCI Whitaker installer
Lint workflow
Possibly related PRs
Poem
Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error, 1 warning)
✅ Passed checks (18 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
The repository already wires the Whitaker Dylint suite into the Makefile lint target and CI, but the install step predated the estate-wide hardening pattern established in leynos/netsuke#410. Bump WHITAKER_INSTALLER_VERSION from 0.2.1 to 0.2.5 and harden the install step: - Reference the version via a plain shell variable inside the run block rather than inlining a GitHub expression, which zizmor flags as template injection. - Pass --locked to cargo binstall so the published lockfile is honoured. - Fall back to `cargo install --locked` when cargo-binstall is unavailable; several repositories pin setup-rust revisions that do not ship binstall, and this fallback has already rescued four broken CI runs across the estate. Update the lint target's help text to mention the Whitaker suite, which it has run since adoption. The suite exits cleanly over --all-targets --all-features at v0.2.5, so no source changes or dylint.toml exclusions are required.
Installer 0.2.5 provisions cargo-dylint 4.1.0, whose dylint driver cannot build on the suite's new nightly-2026-05-28 pin; 0.2.6 provisions cargo-dylint 6.0.1.
Summary
This change aligns corbusier's existing Whitaker Dylint integration with the
estate-wide rollout pattern established in leynos/netsuke#410. The repository
already runs the suite in its
make linttarget and CI, but the install steppredated the hardened pattern and pinned an older suite.
WHITAKER_INSTALLER_VERSIONfrom0.2.1to0.2.5.runblockinstead of inlining a GitHub Actions expression, which zizmor flags as
template injection.
--lockedtocargo binstallso the published lockfile is honoured.cargo install --lockedfallback for runners wherecargo-binstallis unavailable; several repositories in the estate pin
setup-rustrevisions that do not provide it.
linttarget's help text to mention the Whitaker suite.The suite exits cleanly at v0.2.5 over
--all-targets --all-features, so nosource changes or
dylint.tomlexclusions were required.Review walkthrough
.github/workflows/ci.yml— version bump and hardened install step with the binstall-or-build
fallback.
Makefile—
linthelp text now mentions the Whitaker Dylint suite; the recipeitself is unchanged.
Validation
All gates were run sequentially from the repository root with the stray
WHITAKERenvironment variable unset (env -u WHITAKER):make check-fmt— pass.make lint— pass;cargo doc, Clippy with-D warnings, andwhitaker --all -- --all-targets --all-featuresall clean.make test— pass; 902 tests run via nextest, 901 passed, 1 skipped.make markdownlint— pass (59 files).make nixie— pass.make frontend-install,frontend-lint,frontend-typecheck,frontend-test,frontend-test-a11y,frontend-localizability,frontend-semantic,frontend-e2e— all pass.