Adopt the Whitaker Dylint suite in the lint gate and CI - #22
Conversation
Standardize catnap on the released Whitaker suite as part of the estate-wide rollout (see leynos/netsuke#410). The repository already ran Whitaker from a pinned git revision of the installer; this change moves CI to the published whitaker-installer 0.2.5 from crates.io, installed via cargo binstall with a source-build fallback for runners without binstall. The cache now keys on the installer version and stores only the installer binary and the binstall cache, matching the pattern used across the estate. The Makefile lint target already ran the suite; its help text now mentions Whitaker so `make help` reflects the gate's full scope. The suite reports no findings on this codebase, so no code changes were required.
|
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:
WalkthroughThe CI workflow replaces git-revision-based Whitaker installer setup with a fixed version variable, narrows caching to the installer binary and Cargo-binstall cache, and changes install logic to try ChangesWhitaker installer CI update
Sequence Diagram(s)sequenceDiagram
participant CIWorkflow
participant Cache
participant CargoBinstall
participant CargoInstall
CIWorkflow->>Cache: Check cached whitaker-installer binary
alt PATH missing whitaker-installer
CIWorkflow->>CargoBinstall: Attempt install (locked, versioned)
alt binstall unavailable
CIWorkflow->>CargoInstall: Install from crates.io (locked, versioned)
end
end
CIWorkflow->>CIWorkflow: Run whitaker-installer --cranelift
Possibly related PRs
Suggested labels: Poem
Caution Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional.
❌ Failed checks (1 error, 2 warnings)
✅ Passed checks (17 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
This project builds with the Cranelift debug backend, so the Dylint driver's pinned nightly needs `rustc-codegen-cranelift` installed. Restore the installer's `--cranelift` flag, which the standardized install step had dropped.
Replace inline `${{ env.WHITAKER_INSTALLER_VERSION }}` interpolation in the
run block with the plain shell variable `"${WHITAKER_INSTALLER_VERSION}"`;
the job-level `env:` already exports it, and zizmor flags run-block template
interpolation as a template-injection hazard. Add `--locked` to the
cargo-binstall invocation so that binstall's compile fallback resolves
dependencies from the published lockfile, keeping fallback builds
reproducible.
Summary
This change standardizes catnap on the released Whitaker Dylint suite as
part of the estate-wide rollout (see leynos/netsuke#410). The repository
already ran Whitaker in its
make lintgate from a pinned git revision ofthe installer; continuous integration now installs the published
whitaker-installer0.2.5 from crates.io viacargo binstall, with asource-build fallback for runners without binstall. The cache keys on the
installer version and stores only the installer binary and the binstall
cache, matching the pattern used across the estate. The
linttarget'shelp text now mentions Whitaker so
make helpreflects the gate's fullscope.
The suite reports no findings on this codebase, so no code changes were
required and no
dylint.tomlexclusions were added.Review walkthrough
.github/workflows/ci.ymlreplaces the git-revision installer pin with
WHITAKER_INSTALLER_VERSION: '0.2.5', narrows the cache to the installerbinary and the binstall cache keyed on that version, and installs via
cargo binstallwith acargo install --lockedfallback.Makefileupdates the
linttarget's help text to mention the Whitaker suite,which the recipe already runs after Clippy.
Validation
make check-fmt— passed.make lint—cargo doc, Clippy, and the Whitaker suite(
whitaker --all -- --all-targets --all-featureswithRUSTFLAGS="-D warnings") all passed with no findings.make typecheck— passed.make test— 25 tests run, 25 passed.make markdownlint— 13 files linted, 0 errors.make nixie— all Mermaid diagrams validated.mbake validate Makefile— valid syntax.