feat: Changesets release automation with version-pinned workflow refs#3
Merged
Conversation
…refs - release.yml opens/updates a Version Packages PR via Changesets on push to main - scripts/sync-workflow-refs.mjs rewrites internal uses: kethalia/workflows/...@<ref> to the new @vX.Y.Z during version bump - tag-major job force-moves floating vX and vX.Y tags after release - README documents the Versioning workflow and consumer pinning options Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a Changesets-based release process for this reusable-workflows repository, aiming to produce immutable vX.Y.Z tags while keeping major/minor floating aliases (vX, vX.Y) updated and ensuring internal workflow/action references are version-pinned.
Changes:
- Added
.github/workflows/release.ymlto open/update Changesets “Version Packages” PRs and, on publish, move floating major/minor tags. - Added
scripts/sync-workflow-refs.mjsand wired it intopnpm run versionto rewrite internaluses: kethalia/workflows/...@...refs to the currentpackage.jsonversion tag. - Bootstrapped Changesets + pnpm metadata (
package.json,.changeset/*,pnpm-lock.yaml) and documented the versioning/pinning strategy inREADME.md.
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/release.yml |
Implements the main-branch Changesets release automation plus floating-tag updates. |
scripts/sync-workflow-refs.mjs |
Adds the ref-rewriter used during versioning to pin internal uses: references to vX.Y.Z. |
package.json |
Introduces package metadata, pnpm/Changesets scripts, and packageManager pin. |
pnpm-lock.yaml |
Locks Changesets CLI and transitive deps for reproducible installs. |
README.md |
Documents the Changesets release flow and consumer pinning recommendations. |
.changeset/initial-major-release.md |
Queues the initial major (1.0.0) release notes. |
.changeset/config.json |
Adds Changesets configuration for tagging/versioning private packages. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Pin pnpm to 9.15.0 in release.yml to match packageManager - Use path.relative() in sync-workflow-refs.mjs for portable log output - Clarify @main caveat in README — internal refs lag previous release
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
.github/workflows/release.yml) adapted from feat: automate releases with changesets + floating major tag chillwhales/.github#24. On push tomain, opens/updates a Version Packages PR; merging the PR cuts avX.Y.Ztag and force-moves floatingvX/vX.Yaliases.scripts/sync-workflow-refs.mjs, wired intopnpm run versionso the Version Packages PR rewrites every internaluses: kethalia/workflows/...@<ref>in.github/**to the new@vX.Y.Z. The released tag therefore self-references at the same version — no@maindrift inside a release.package.jsondeclares@kethalia/workflowsas private;pnpm-lock.yamlpins@changesets/cli.README.mdgains a Versioning section explaining the flow and pinning recommendations (@vX.Y.Z,@vX.Y,@vX,@main)..changeset/initial-major-release.mdqueues the v1.0.0 cut.Test plan
main, confirmrelease.ymlopens achore(release): version packagesPRpackage.jsonbumped to1.0.0and.github/**/*.{yml,yaml}cross-refs rewritten to@v1.0.0v1.0.0,v1.0, andv1tags all point at the same SHA🤖 Generated with Claude Code