Group Dependabot updates and guard against missing changesets#272
Merged
Conversation
Two low-risk improvements instead of an auto-changeset writer — that writer would be dormant here, since the published packages have no runtime dependencies and Dependabot only touches root dev tooling + composer. - dependabot.yml: group the npm lint toolchain (@wordpress/*, eslint*, stylelint*, prettier, typescript) into one weekly PR, and batch all github-actions bumps. Composer stays ungrouped on purpose — the PHP stack is exact-pinned and each bump is a deliberate review against the PHP_CodeSniffer 3 ceiling. - ci.yml: add a "Changeset guard" job that fails a PR when a published package's package.json changes without a changeset — the peer/dependency class we handled by hand during the v7 alphas (#264/#266/#267). Skips pushes and the changesets "Version Packages" PR.
There was a problem hiding this comment.
Pull request overview
This PR reduces automated dependency-update noise by grouping Dependabot PRs, and adds a CI “changeset guard” to enforce that consumer-facing package manifest changes in packages/*/package.json are accompanied by a Changesets entry.
Changes:
- Add a new CI job that fails PRs when
packages/*/package.jsonchanges without a corresponding changeset. - Group related npm lint-toolchain updates into a single weekly Dependabot PR.
- Group all GitHub Actions updates into a single weekly Dependabot PR.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Adds the changeset-guard job to enforce manifest-change → changeset coupling on PRs. |
.github/dependabot.yml |
Introduces Dependabot grouping for npm lint tooling and GitHub Actions updates to reduce PR volume. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Address Copilot review on #272: `changeset_added` came from `git diff --name-only`, so a merely *modified* (or moved) existing changeset would satisfy the guard despite the name/message meaning a new one. Editing an existing changeset does not version a new change (and in pre mode does not trigger a release), so switch to `git diff --name-status` and require an added (`A`) file.
Member
Author
|
Thanks @copilot — both addressed in bc47ede:
|
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.
Follow-up to the Dependabot/changeset discussion. Instead of the auto-changeset writer (which would be dormant in this repo — the published packages have no runtime
dependencies, so Dependabot only bumps root dev tooling + composer, and the real changesets we needed were human judgment calls), this adds the two things that actually help.(a) Dependabot grouping — less PR noise
@wordpress/*,eslint*,stylelint*,prettier,typescript) into one weekly PR instead of one per package (the Update wp-coding-standards/wpcs requirement from 3.3.0 to 3.4.0 #263–Bump @wordpress/stylelint-config from 23.42.0 to 24.0.0 #266 wave would have been ~1 PR).(b) Changeset guard — catch the real cases
A new
changeset-guardCI job fails a PR when a published package'spackage.jsonchanges but no newly added changeset is present — exactly the peer/dependency class we fixed by hand in the v7 alphas (globals removal #267,@wordpress/stylelint-config ^24#266). It forces the right changeset rather than guessing one.packages/*/package.json→ stays quiet for root dev-tooling bumps, composer, and docs.A).changeset/*.md— an edited existing changeset doesn't count, since editing one doesn't version a new change (and in pre mode doesn't trigger a release).pushevents and the changesetsVersion PackagesPR (which intentionally removes changesets).Verified locally against these diff scenarios (the
package.jsonbelow is always a publishedpackages/*/package.json):.changeset/README.mdpackages/*/package.json)