Adopt the Whitaker Dylint suite in the lint gate and CI - #12
Conversation
Extend `make lint` to run the Whitaker Dylint suite (`whitaker --all -- --all-targets --all-features`) after Clippy, with warnings denied. CI installs `whitaker-installer` 0.2.5 via a cached `cargo binstall` before the lint step, following the pattern established in leynos/wireframe and leynos/netsuke. The suite reports no findings on this codebase.
|
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:
WalkthroughCI now defines a ChangesWhitaker Dylint integration
Sequence Diagram(s)sequenceDiagram
participant CIJob
participant Cache
participant CargoBinstall
participant WhitakerInstaller
CIJob->>Cache: restore whitaker-installer cache (keyed by version/OS/arch)
Cache-->>CIJob: cache hit or miss
alt whitaker-installer already present
CIJob->>WhitakerInstaller: run whitaker-installer
else not present
CIJob->>CargoBinstall: install whitaker-installer at WHITAKER_INSTALLER_VERSION
CargoBinstall-->>CIJob: installation complete
CIJob->>WhitakerInstaller: run whitaker-installer
end
Possibly related PRs
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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/ci.yml:
- Around line 37-44: The Install Whitaker step is using inline GitHub Actions
expression expansion for WHITAKER_INSTALLER_VERSION inside the shell script,
which triggers the template-injection warning. Update the workflow step to pass
WHITAKER_INSTALLER_VERSION via a step-level env mapping, then reference that
shell variable in the cargo binstall command within the Install Whitaker block.
Keep the change localized to the Install Whitaker step in ci.yml and preserve
the existing whitaker-installer guard logic.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 5e2987e1-4818-41d4-9549-fcff80ea2321
📒 Files selected for processing (2)
.github/workflows/ci.ymlMakefile
The pinned shared `setup-rust` action in this repository predates binstall provisioning, so the Whitaker install step failed with "no such command: `binstall`". Try binstall first and build the installer from crates.io otherwise; the cached binary makes the fallback a one-off cost.
Pass WHITAKER_INSTALLER_VERSION to the run block through the shell
environment rather than inline `${{ env }}` template expansion, which
zizmor flags as a template-injection risk; the job-level `env:` block
already exports the variable. Add `--locked` to the cargo binstall
invocation so that its compile-from-source fallback resolves
dependencies from the published lockfile, keeping fallback builds
reproducible.
Summary
This branch adopts the Whitaker Dylint suite as part of the estate-wide lint rollout (see leynos/netsuke#410 for the pattern).
make lintnow runs Clippy followed bywhitaker --all -- --all-targets --all-featureswith warnings denied, and CI installs the pinned installer via a cachedcargo binstallbefore the lint step. The suite reports no findings on this codebase, so no code changes were needed.Review walkthrough
linttarget: Clippy runs first, then the Whitaker suite underRUSTFLAGS="-D warnings", withWHITAKER ?= whitakeroverridable for environments without the wrapper.WHITAKER_INSTALLER_VERSIONis pinned to 0.2.5, the installer binary and binstall cache are keyed on that version, andwhitaker-installerstages the lint libraries beforemake lintruns.Validation
make check-fmt lint typecheck test markdownlint: all pass locally, with the Whitaker suite reporting zero findings over--all-targets --all-features.