Skip to content

feat: Changesets release automation with version-pinned workflow refs#3

Merged
b00ste merged 2 commits into
mainfrom
feat/release-automation
May 1, 2026
Merged

feat: Changesets release automation with version-pinned workflow refs#3
b00ste merged 2 commits into
mainfrom
feat/release-automation

Conversation

@b00ste
Copy link
Copy Markdown
Contributor

@b00ste b00ste commented May 1, 2026

Summary

  • Adds Changesets-driven release flow (.github/workflows/release.yml) adapted from feat: automate releases with changesets + floating major tag chillwhales/.github#24. On push to main, opens/updates a Version Packages PR; merging the PR cuts a vX.Y.Z tag and force-moves floating vX / vX.Y aliases.
  • Adds scripts/sync-workflow-refs.mjs, wired into pnpm run version so the Version Packages PR rewrites every internal uses: kethalia/workflows/...@<ref> in .github/** to the new @vX.Y.Z. The released tag therefore self-references at the same version — no @main drift inside a release.
  • package.json declares @kethalia/workflows as private; pnpm-lock.yaml pins @changesets/cli.
  • README.md gains a Versioning section explaining the flow and pinning recommendations (@vX.Y.Z, @vX.Y, @vX, @main).
  • .changeset/initial-major-release.md queues the v1.0.0 cut.

Test plan

  • CI green on this PR (actionlint, changeset-check, etc.)
  • After merge to main, confirm release.yml opens a chore(release): version packages PR
  • On that PR, confirm package.json bumped to 1.0.0 and .github/**/*.{yml,yaml} cross-refs rewritten to @v1.0.0
  • After merging the Version Packages PR, confirm v1.0.0, v1.0, and v1 tags all point at the same SHA

🤖 Generated with Claude Code

…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>
Copilot AI review requested due to automatic review settings May 1, 2026 14:46
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.yml to open/update Changesets “Version Packages” PRs and, on publish, move floating major/minor tags.
  • Added scripts/sync-workflow-refs.mjs and wired it into pnpm run version to rewrite internal uses: kethalia/workflows/...@... refs to the current package.json version tag.
  • Bootstrapped Changesets + pnpm metadata (package.json, .changeset/*, pnpm-lock.yaml) and documented the versioning/pinning strategy in README.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.

Comment thread .github/workflows/release.yml
Comment thread scripts/sync-workflow-refs.mjs
Comment thread README.md Outdated
- 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
@b00ste b00ste merged commit ff18bbe into main May 1, 2026
@b00ste b00ste deleted the feat/release-automation branch May 1, 2026 14:57
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.

2 participants