fix: prevent 0.x minor bumps from triggering major in dependents#447
fix: prevent 0.x minor bumps from triggering major in dependents#447
Conversation
Changesets treats a minor bump in 0.x as breaking (per semver), which caused plugins with emdash as a peer dep to jump to 1.0.0 in the release PR. Fix by: - Adding updateInternalDependents: out-of-range so workspace:* deps are never considered out of range - Adding onlyUpdatePeerDependentsWhenOutOfRange for the same reason - Moving emdash from dependencies to peerDependencies in atproto, audit-log, and webhook-notifier to match the other plugins
|
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-playground | caf2ab5 | Apr 11 2026, 11:23 AM |
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/blocks
@emdash-cms/cloudflare
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
There was a problem hiding this comment.
Pull request overview
Adjusts Changesets and plugin dependency declarations to prevent 0.x minor bumps in emdash from triggering major (1.0.0) bumps in dependent plugins during automated releases.
Changes:
- Adds Changesets experimental settings to only bump dependents when their peer/internal ranges are out-of-range.
- Moves
emdashfromdependenciestopeerDependenciesfor selected plugins so they don’t bundle the host runtime.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.changeset/config.json |
Adds experimental Changesets options to avoid unnecessary dependent bumps when ranges still satisfy. |
packages/plugins/atproto/package.json |
Switches emdash from dependency to peer dependency to match plugin runtime expectations. |
packages/plugins/audit-log/package.json |
Switches emdash from dependency to peer dependency. |
packages/plugins/webhook-notifier/package.json |
Switches emdash from dependency to peer dependency. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": { | ||
| "onlyUpdatePeerDependentsWhenOutOfRange": true, | ||
| "updateInternalDependents": "out-of-range" | ||
| }, |
There was a problem hiding this comment.
The config schema URL is pinned to @changesets/config@3.0.2, but the repo is using @changesets/config@3.1.2 (via @changesets/cli in pnpm-lock.yaml). With the newly added experimental options, the older schema may not validate/auto-complete these keys correctly in editors or schema-based linters. Consider updating the $schema URL to match the installed @changesets/config version (or otherwise aligning these versions) to avoid false schema errors and reduce confusion.
What does this PR do?
Fixes the release PR (#396) incorrectly bumping
plugin-ai-moderation,plugin-color,plugin-embeds, andplugin-formsto 1.0.0 whenemdashgets a minor bump.The root cause: changesets treats a minor in 0.x as a breaking change (per semver spec). Plugins with
emdashas a peer dep got a major bump, jumping them to 1.0.0.Two fixes:
onlyUpdatePeerDependentsWhenOutOfRangeandupdateInternalDependents: "out-of-range"soworkspace:*ranges (which match everything) never trigger automatic major bumps in dependents.emdashfromdependenciestopeerDependenciesinatproto,audit-log, andwebhook-notifierto match the other plugins. Plugins shouldn't bundle emdash — they run inside it.Type of change
Checklist
pnpm typecheckpassespnpm --silent lint:json | jq '.diagnostics | length'returns 0pnpm testpasses (or targeted tests for my change)pnpm formathas been runAI-generated code disclosure
Screenshots / test output
N/A — config-only change. Verified by inspecting the release PR behavior.