Skip to content

revert: undo accidental major and prevent recurrence#796

Merged
ascorbic merged 3 commits intomainfrom
fix/revert-accidental-1.0
Apr 27, 2026
Merged

revert: undo accidental major and prevent recurrence#796
ascorbic merged 3 commits intomainfrom
fix/revert-accidental-1.0

Conversation

@ascorbic
Copy link
Copy Markdown
Collaborator

What does this PR do?

Reverts 46f3acb (ci: release #759), which bumped all 8 publishable packages to 1.0.0 from minor changesets, and prevents the same failure mode from recurring.

Root cause: peer-dep cycle between emdash and @emdash-cms/auth-atproto, both declaring each other with workspace:*. Changesets resolves workspace:* to the exact current version for semver checks, so a minor bump on either side falls outside the range and escalates the cycle's other side to major. Every other plugin uses workspace:>=X.Y.Z and doesn't trip this — switching both ends of the cycle to the same form fixes the escalation.

The existing workflow guard greps pnpm changeset status for "bumped at major", which only runs on the initial workflow trigger. Once the version PR is merged, no changesets are pending and the grep returns nothing — so publish proceeded with already-bumped 1.0.0 versions. Replaced with a package.json scan that fails on any non-private 1.x version, wired into both release.yml (publish-time) and ci.yml (every PR, including the auto-generated Version Packages PR).

Verified locally: pnpm changeset status now reports NO packages to be bumped at major — next release lands at 0.8.0.

Closes #

Type of change

  • Bug fix
  • Feature (requires maintainer-approved Discussion)
  • Refactor (no behavior change)
  • Translation
  • Documentation
  • Performance improvement
  • Tests
  • Chore (dependencies, CI, tooling)

Checklist

  • I have read CONTRIBUTING.md
  • pnpm typecheck passes
  • pnpm lint passes
  • pnpm test passes (or targeted tests for my change)
  • pnpm format has been run
  • I have added/updated tests for my changes (if applicable)
  • User-visible strings in the admin UI are wrapped for translation (if applicable). Do not include messages.po changes except in translation PRs — a workflow extracts catalogs on merge to main.
  • I have added a changeset (if this PR changes a published package)
  • New features link to an approved Discussion: https://github.com/emdash-cms/emdash/discussions/...

AI-generated code disclosure

  • This PR includes AI-generated code

Screenshots / test output

`pnpm changeset status` after this PR's changes:

```
🦋 info Packages to be bumped at patch:
🦋 - @emdash-cms/plugin-atproto
🦋 - @emdash-cms/plugin-embeds
🦋 - @emdash-cms/fixture-perf-site
🦋 - @emdash-cms/perf-demo-site
🦋 - @emdash-cms/cache-demo-site
🦋 ---
🦋 info Packages to be bumped at minor:
🦋 - @emdash-cms/admin
🦋 - @emdash-cms/blocks
🦋 - emdash
🦋 - create-emdash
🦋 - @emdash-cms/auth
🦋 - @emdash-cms/auth-atproto
🦋 - @emdash-cms/cloudflare
🦋 - @emdash-cms/gutenberg-to-portable-text
🦋 - @emdash-cms/x402
🦋 ---
🦋 info NO packages to be bumped at major
```

Reverts 46f3acb (ci: release #759), which bumped all 8 publishable
packages to 1.0.0. Restores 0.7.x versions and pending changesets so
the next release lands at 0.8.0.

Root cause: peer-dep cycle between `emdash` and `@emdash-cms/auth-atproto`,
both using `workspace:*`. Changesets resolves `workspace:*` to the exact
current version for semver checks, so a minor bump on either side falls
outside the range and escalates the cycle's other side to major. Other
plugins use `workspace:>=X.Y.Z` and don't trip this — switching both
ends of the cycle to the same form fixes the escalation.

The existing workflow guard greps `pnpm changeset status` for "bumped
at major", which only runs at PR-creation time. Once the version PR is
merged, no changesets are pending and the grep returns nothing — so
the publish step proceeded with already-bumped 1.0.0 versions.

Replaces it with a package.json scan that fails on any non-private 1.x
version. Wired into both `release.yml` (publish-time) and `ci.yml`
(every PR, including the auto-generated Version Packages PR).

Also adds .claude/* to .gitignore (mirroring the .opencode pattern)
so local agent state doesn't accidentally land in commits.
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 27, 2026

🦋 Changeset detected

Latest commit: 1a4f8cc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 14 packages
Name Type
@emdash-cms/admin Minor
@emdash-cms/blocks Minor
emdash Minor
@emdash-cms/plugin-atproto Patch
create-emdash Minor
@emdash-cms/auth Minor
@emdash-cms/auth-atproto Minor
@emdash-cms/plugin-embeds Patch
@emdash-cms/cloudflare Minor
@emdash-cms/fixture-perf-site Patch
@emdash-cms/perf-demo-site Patch
@emdash-cms/cache-demo-site Patch
@emdash-cms/gutenberg-to-portable-text Minor
@emdash-cms/x402 Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

Scope check

This PR changes 508 lines across 69 files. Large PRs are harder to review and more likely to be closed without review.
This PR spans 6 different areas (area/core, area/admin, area/plugins, area/ci, area/auth, area/cloudflare). Consider breaking it into smaller, focused PRs.

If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs.

See CONTRIBUTING.md for contribution guidelines.

@ascorbic ascorbic changed the title revert: undo accidental 1.0.0 release; prevent recurrence revert: undo accidental major and prevent recurrence Apr 27, 2026
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 27, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-perf-coordinator 1a4f8cc Apr 27 2026, 07:50 PM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 27, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
🔵 In progress
View logs
emdash-i18n 1a4f8cc Apr 27 2026, 07:50 PM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 27, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
docs 1a4f8cc Apr 27 2026, 07:51 PM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 27, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-demo-cache 1a4f8cc Apr 27 2026, 07:51 PM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 27, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-playground 1a4f8cc Apr 27 2026, 07:52 PM

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Apr 27, 2026

Open in StackBlitz

@emdash-cms/admin

npm i https://pkg.pr.new/@emdash-cms/admin@796

@emdash-cms/auth

npm i https://pkg.pr.new/@emdash-cms/auth@796

@emdash-cms/blocks

npm i https://pkg.pr.new/@emdash-cms/blocks@796

@emdash-cms/cloudflare

npm i https://pkg.pr.new/@emdash-cms/cloudflare@796

emdash

npm i https://pkg.pr.new/emdash@796

create-emdash

npm i https://pkg.pr.new/create-emdash@796

@emdash-cms/gutenberg-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/gutenberg-to-portable-text@796

@emdash-cms/x402

npm i https://pkg.pr.new/@emdash-cms/x402@796

@emdash-cms/plugin-ai-moderation

npm i https://pkg.pr.new/@emdash-cms/plugin-ai-moderation@796

@emdash-cms/plugin-atproto

npm i https://pkg.pr.new/@emdash-cms/plugin-atproto@796

@emdash-cms/plugin-audit-log

npm i https://pkg.pr.new/@emdash-cms/plugin-audit-log@796

@emdash-cms/plugin-color

npm i https://pkg.pr.new/@emdash-cms/plugin-color@796

@emdash-cms/plugin-embeds

npm i https://pkg.pr.new/@emdash-cms/plugin-embeds@796

@emdash-cms/plugin-forms

npm i https://pkg.pr.new/@emdash-cms/plugin-forms@796

@emdash-cms/plugin-webhook-notifier

npm i https://pkg.pr.new/@emdash-cms/plugin-webhook-notifier@796

commit: 1a4f8cc

@ascorbic ascorbic merged commit ba12ca5 into main Apr 27, 2026
33 checks passed
@ascorbic ascorbic deleted the fix/revert-accidental-1.0 branch April 27, 2026 20:01
@emdashbot emdashbot Bot mentioned this pull request Apr 27, 2026
0aveRyan pushed a commit to 0aveRyan/emdash that referenced this pull request Apr 27, 2026
* revert: undo accidental 1.0.0 release; prevent recurrence

Reverts 46f3acb (ci: release emdash-cms#759), which bumped all 8 publishable
packages to 1.0.0. Restores 0.7.x versions and pending changesets so
the next release lands at 0.8.0.

Root cause: peer-dep cycle between `emdash` and `@emdash-cms/auth-atproto`,
both using `workspace:*`. Changesets resolves `workspace:*` to the exact
current version for semver checks, so a minor bump on either side falls
outside the range and escalates the cycle's other side to major. Other
plugins use `workspace:>=X.Y.Z` and don't trip this — switching both
ends of the cycle to the same form fixes the escalation.

The existing workflow guard greps `pnpm changeset status` for "bumped
at major", which only runs at PR-creation time. Once the version PR is
merged, no changesets are pending and the grep returns nothing — so
the publish step proceeded with already-bumped 1.0.0 versions.

Replaces it with a package.json scan that fails on any non-private 1.x
version. Wired into both `release.yml` (publish-time) and `ci.yml`
(every PR, including the auto-generated Version Packages PR).

Also adds .claude/* to .gitignore (mirroring the .opencode pattern)
so local agent state doesn't accidentally land in commits.

* style: format

* chore: update lockfile for workspace range changes

---------

Co-authored-by: emdashbot[bot] <emdashbot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant