Repository navigation
Closed
Description
Context
The Dylint gate on current main still carries the pre-6.0 compatibility stack:
.github/workflows/dylint.ymlinstallscargo-dylintanddylint-link5.0.0.- The lint crates pin
dylint_linting/dylint_testingto trailofbits/dylint revision4bd91ce7729b74c7ee5664bbb588f7baf30b4a09. ci/build_dylint_driver.pyclones that revision and builds a custom driver fornightly-2026-03-26.- The workflow contains an alias-and-retry loop for the old
<name>@<toolchain>library naming behavior.
Dylint 6.0.1 is now released and is already in use in sibling repositories. Keeping the old mixed version/git-revision stack preserves expensive bespoke setup and leaves this gate exposed to already-solved rustc-private API drift.
Proposal
Move the entire repository to one documented Dylint 6.0.1 stack:
- Pin
cargo-dylintanddylint-linkto 6.0.1. - Replace every git-revision
dylint_linting/dylint_testingdependency with the 6.0.1 crates.io release. - Select one nightly compatible with 6.0.1 and update every Dylint
rust-toolchain.toml, workflow reference, and test command together. - Remove
ci/build_dylint_driver.py,DYLINT_DRIVER_PATHplumbing, and the library alias/retry loop when the 6.0.1-provided driver path makes them unnecessary. - Preserve the existing lint implementations, allowlists, stale-allowlist validation, and required status-check behavior.
Acceptance criteria
- Every fbuild Dylint crate uses
dylint_linting = "6.0.1"and, where present,dylint_testing = "6.0.1"; revision4bd91ce...is absent from active configuration. - CI installs
cargo-dylintanddylint-link6.0.1 explicitly. - One compatible nightly is pinned consistently across workflow and lint crates.
- The custom cloned-driver build and alias/retry workaround are removed, or a remaining upstream requirement is demonstrated and narrowly documented.
- All Dylint-library formatting/tests pass.
- A single workspace Dylint invocation checks
--workspace --all-targetsand the required Dylint check is green. - No lint is disabled and no unrelated allowlist entries are added.
Related issues
- ci(dylint): Dylint job is red on main — alias-loop workaround fails, so NO custom lints are enforced #964 repaired an earlier alias-loop failure.
- fix(ci): restore Dylint after build and package splits #1033 repaired Dylint after the crate splits.
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
- StatusShow more project fieldsTriage
Activity
zackees commentedon Jul 25, 2026
Follow-up PR #1193 carries the final workspace path-normalization fixes exposed by the authoritative Dylint 6.0.1 scan after #1192 was merged: #1193
zackees commentedon Jul 25, 2026
Second focused follow-up PR #1194 contains the test-only path/subprocess corrections found after #1193 merged before its authoritative Dylint run completed: #1194