Skip to content

build: migrate release tooling from standard-version to Changesets#129

Merged
QuentinRoy merged 1 commit into
masterfrom
claude/changesets-migration-cd860f
Jul 26, 2026
Merged

build: migrate release tooling from standard-version to Changesets#129
QuentinRoy merged 1 commit into
masterfrom
claude/changesets-migration-cd860f

Conversation

@QuentinRoy

Copy link
Copy Markdown
Owner

Summary

Replaces standard-version (conventional-commits-driven) with Changesets for changelog generation and version bumping.

  • CI-driven releases: .github/workflows/release.yml uses changesets/action to open/update a "Version Packages" PR on push to master, and auto-publishes to npm on merge.
  • Auth: npm trusted publishing (OIDC) — no NPM_TOKEN secret, just permissions: id-token: write. Publishing also gets provenance attestation for free.
  • GitHub Releases: enabled via createGithubReleases: true.
  • Changelog format: kept GitHub-linked entries (PR/commit links) via @changesets/changelog-github, matching the current CHANGELOG.md style.
  • Changeset enforcement: intentionally none — no CI gate requiring a changeset per PR, per upstream's own recommendation (docs/intro-to-using-changesets.md: "we recommend not adding a blocking element to contributions in the absence of a changeset"). Relying on the changesets bot (installed separately, see below) for a non-blocking nudge instead.
  • Renovate: dependency-bump PRs get no automatic changeset (matches current behavior, where chore(deps) commits don't trigger a release); dropped the now-unused :semanticCommits preset.
  • Removed: .github/workflows/lint-pr-title.yml (conventional-commit PR title lint) — no longer functionally needed since changeset files, not commit/PR title format, now drive versioning.
  • Backfill: added a changeset for the already-merged breaking change in feat!: adopt object-based menu and helper APIs #126 (object-based menu API). Filed as minor rather than major — Changesets calls semver.inc() with no 0.x awareness, so a major changeset would jump 0.10.1 straight to 1.0.0; minor keeps the release at 0.11.0, consistent with staying in the 0.x range for now.

Follow-ups (not in this PR, need manual action)

  • Install the changesets bot GitHub App on this repo.
  • Configure npm trusted publishing for marking-menu on npmjs.com: org QuentinRoy, repo Marking-Menu, workflow filename release.yml.

Test plan

  • yarn lint — clean (pre-existing warnings only, unrelated to this change)
  • yarn format:check — clean
  • yarn coverage — 111 tests passing
  • yarn build-demo — builds successfully
  • yarn changeset status --verbose — confirms next release proposes marking-menu@0.11.0
  • End-to-end verification of the release workflow itself (opening the Version Packages PR, OIDC publish) can only happen after merge + the two follow-ups above are done

🤖 Generated with Claude Code

Replaces the conventional-commits-driven standard-version flow with
Changesets for changelog/version management:

- CI-driven release via changesets/action: opens/updates a Version
  Packages PR on push to master and publishes on merge, using npm
  trusted publishing (OIDC) instead of a long-lived NPM_TOKEN, with
  GitHub Releases enabled.
- Keep GitHub-linked changelog entries via @changesets/changelog-github.
- Drop the PR-title conventional-commit lint and Renovate's
  :semanticCommits preset, since nothing consumes that format anymore.
- Renovate dependency PRs get no automatic changeset, matching prior
  behavior where deps bumps didn't trigger a release on their own.
- Backfill a changeset for the unreleased breaking change in #126
  (object-based menu API), filed as minor rather than major to stay
  in the 0.x range per this project's convention.

Two manual follow-ups outside this PR: install the changesets bot
GitHub App, and configure npm trusted publishing for this package
(workflow filename: release.yml).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: efe8289

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

This PR includes changesets to release 1 package
Name Type
marking-menu 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

@QuentinRoy
QuentinRoy merged commit 25c0a37 into master Jul 26, 2026
2 checks passed
@QuentinRoy
QuentinRoy deleted the claude/changesets-migration-cd860f branch July 26, 2026 20:20
This was referenced Jul 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant