chore: replace custom versioning scripts with release-it#1783
Merged
Conversation
- Add release-it + @release-it/conventional-changelog for interactive release preparation (npm run release creates branch, bumps version, updates CHANGELOG, commits) - Add prepare-release.yaml workflow_dispatch for CI-triggered releases - Replace pr-title-check.yaml custom JS with commitlint via stdin - Remove build/versioning/ custom scripts (conventionalCommits.js, updateChangelog.js) now superseded by release-it and commitlint - Update CONTRIBUTING.md and release skill to reflect new workflow Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Breaking changes bump MINOR (not MAJOR) while we're pre-1.0. Remove preMajor from .release-it.json when intentionally shipping 1.0.0. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
With squash merges, a tag on the PR branch commit is unreachable from main history after merge, breaking future `git log <tag>..HEAD` ranges. Create the version tag in the publish action instead, where it correctly lands on the main branch commit. Also created v0.44.1 tag retroactively so release-it has a starting point. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
After release-it commits the mechanical draft, Claude should rewrite the new CHANGELOG section to match the existing human-readable style: blank lines, - bullets, no hash links, consumer-focused descriptions, and collapsed dep bumps. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When --dry-run is passed, run release-it in dry-run mode, extract the proposed version and changelog from the output, and present a curated preview without making any file changes or git operations. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Contributor
Author
|
#1785 is generated against this branch as a sample. Once this PR is merged, I will close that one and run the release command against main |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Closed
Fresh Eyes ReviewFound 1 issue in this PR. PR Description Issues
Download findings.json — drag the file into Claude or use Generated by Fresh Eyes Reviewer | Share feedback in #ai-code-reviews |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jeffredodd
approved these changes
May 12, 2026
Contributor
jeffredodd
left a comment
There was a problem hiding this comment.
I've never used release-it but i'm excite dto try new things! Thanks for helping make our release process better! 🎉
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
Update the release process to use the
release-itlibrary so that we have deterministic behavior. The/releasecommand should still work from claude and cursor, but calls a script instead of running through the process itself.Changes
/releaseskillnpm run releaseto choose the next version and generate a changelog entrya. The command will checkout a new branch
chore/release-VERSIONand commit the changes topackage.jsonandCHANGELOG.mdAlso accepts
/release --dry-runto see what will happen and preview the changelog.publish.yamlactionPublishes a git tag for the version to GitHub, which is used by
npm run releaseto calculate the next list of commits in a changelog.auto-version.yamlactionRenamed to
prepare-release.yamland usesrelease-itas well to prepare a PR for review.pr-title-check.yamlactionNow uses
commitlintto validate the PR title instead of using a separate custom script.Demo
Sample output for using the
releaseskill: