fix: validate renovate dependency rule coverage#263
Merged
zeitlinger merged 16 commits intomainfrom May 5, 2026
Merged
Conversation
This was referenced May 4, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR extends the renovate-deps check so Flint records dependency metadata in tracked snapshots and validates that Renovate package rules cover aliases of the same upstream package consistently. It also updates the repo’s Renovate config, docs, and fixtures to use canonical dep names so grouped updates stay aligned across mise.toml, README regex managers, and snapshot validation.
Changes:
- Add metadata-aware snapshot parsing/writing and rule-coverage validation for
renovate-deps. - Refactor/expand
renovate_depsimplementation and test coverage, including a new inconsistent-rule-coverage fixture. - Update Renovate preset/config/docs/snapshots to use
matchDepNamesand canonical README dep names.
Reviewed changes
Copilot reviewed 28 out of 28 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
tests/cases/renovate-deps/up-to-date/files/.github/renovate-tracked-deps.json |
Updates fixture snapshot to new {meta, files} shape. |
tests/cases/renovate-deps/up-to-date-renovaterc-json/files/renovate-tracked-deps.json |
Updates root-config fixture snapshot format. |
tests/cases/renovate-deps/out-of-date/test.toml |
Adjusts out-of-date expectations for new snapshot/diff output. |
tests/cases/renovate-deps/out-of-date/files/.github/renovate-tracked-deps.json |
Updates stale snapshot fixture to wrapped format. |
tests/cases/renovate-deps/inconsistent-rule-coverage/test.toml |
Adds end-to-end fixture for split dep-name rule mismatch. |
tests/cases/renovate-deps/inconsistent-rule-coverage/files/mise.toml |
Provides fixture tool file for mismatch case. |
tests/cases/renovate-deps/inconsistent-rule-coverage/files/README.md |
Provides fixture README for mismatch case. |
tests/cases/renovate-deps/inconsistent-rule-coverage/files/.github/renovate.json5 |
Adds fixture Renovate rule using matchDepNames. |
tests/cases/renovate-deps/inconsistent-rule-coverage/files/.github/renovate-tracked-deps.json |
Adds fixture snapshot metadata for alias comparison. |
tests/cases/renovate-deps/fix-update/test.toml |
Updates fix-mode snapshot expectation to new format. |
tests/cases/renovate-deps/fix-update/files/.github/renovate-tracked-deps.json |
Updates stale fix fixture snapshot wrapper. |
tests/cases/renovate-deps/fix-create/test.toml |
Updates create-mode expected snapshot output. |
tests/cases/renovate-deps/fast-only-relevant/files/.github/renovate-tracked-deps.json |
Updates adaptive fast-only relevant fixture snapshot. |
tests/cases/renovate-deps/fast-only-irrelevant/files/.github/renovate-tracked-deps.json |
Updates adaptive fast-only irrelevant fixture snapshot/meta. |
tests/cases/general/fast-only-explicit-override/files/.github/renovate-tracked-deps.json |
Updates general fast-only override fixture snapshot. |
src/registry/tests.rs |
Updates Renovate preset/docs generation assertions for dep-name matching. |
src/registry/checks.rs |
Expands renovate-deps registry docs to cover rule-coverage validation and canonical dep names. |
src/linters/renovate_deps/tests.rs |
Adds focused tests for snapshot parsing, relevance, and rule-coverage behavior. |
src/linters/renovate_deps/snapshot.rs |
Adds snapshot/meta parsing, legacy compatibility, writing, and diff helpers. |
src/linters/renovate_deps/rules.rs |
Adds comparable rule parsing, alias grouping, and rule-coverage validation logic. |
src/linters/renovate_deps/mod.rs |
Adds modularized renovate-deps implementation with metadata refresh support. |
src/linters/renovate_deps.rs |
Updates existing monolithic implementation with the same snapshot/rule-coverage changes. |
src/config.rs |
Adds refresh_meta config for renovate-deps. |
docs/linters/renovate-deps.md |
Adds dedicated guide for snapshot metadata and rule-coverage failures. |
docs/linters.md |
Regenerates renovate-deps docs with new guidance. |
default.json |
Switches weekly linter grouping rule to matchDepNames. |
.github/renovate.json5 |
Aligns repo Renovate config and README regex managers with canonical dep names. |
.github/renovate-tracked-deps.json |
Refreshes committed repo snapshot to include metadata and canonical README deps. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
63a300a to
7fd64d6
Compare
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
66677de to
3e0e68b
Compare
martincostello
approved these changes
May 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
renovate-depssnapshots to record extracted dependency metadata alongside file-to-dependency mappingsmatchDepNames, and make the README quickstart regex managers use canonical dep names#260-style mismatch wheremise.tomlandREADME.mdextract different dep names for the same packageWhy
#260showed that the README quickstart regex manager could updateactionlintindependently frommise.toml. The root cause was that Renovate extractedrhysd/actionlintfromREADME.mdwhile the linter group matchedactionlintby dep name, so grouped updates could silently diverge until the separate README drift test failed.This change makes
renovate-depscatch that configuration mistake directly by comparing rule matching against the extracted dependency identities that Renovate actually emits in extract mode.Validation
cargo testmise run lint:fixmise run lint