Skip to content

ci: cut betas by hand and require a Release-As pin on promotions - #181

Merged
finalerock44 merged 2 commits into
devfrom
chore/manual-beta-releases
Sep 18, 2026
Merged

finalerock44 merged 2 commits into
devfrom
chore/manual-beta-releases

Conversation

@finalerock44

Copy link
Copy Markdown
Contributor

Betas move from a second release-please track on dev to a dispatched Release beta workflow that derives the version from the npm registry, so a beta can no longer sort below @latest the way 5.0.0, 5.2.0 and 5.5.0 did. The beta config, manifest and npm-publish beta path go with it; CHANGELOG-beta is frozen at 5.6.0-beta.2.

Stable is unchanged apart from a new back-merge PR after each release, and a promotion-pin CI check: a promotion is a merge, so every beta tag is reachable from production and release-please picks one as its base unless the stable version is pinned. That is what left production on 5.6.0-beta.1.

Publishing now happens before the tag and GitHub release are created, so a failed publish no longer strands a release with no package on npm.

What & why

Type of change

  • fix — bug fix
  • feat — new feature
  • perf — performance improvement
  • refactor — code change that's neither a fix nor a feature
  • docs — documentation only
  • chore / ci / build / test — tooling, no user-facing change
  • Breaking change (title has ! or PR notes a BREAKING CHANGE:)

Checklist

  • PR title follows the Conventional Commits format (see comment above)
  • pnpm lint passes
  • pnpm typecheck passes
  • pnpm build passes
  • I have not bumped the version or edited CHANGELOG.md (release-please handles this)
  • I have signed the CLA (the bot will prompt on first contribution)
  • Docs / README.md / STYLE_GUIDE.md updated if behaviour or output changed

How to test

Betas move from a second release-please track on `dev` to a dispatched
`Release beta` workflow that derives the version from the npm registry, so a
beta can no longer sort below `@latest` the way 5.0.0, 5.2.0 and 5.5.0 did.
The beta config, manifest and npm-publish beta path go with it; CHANGELOG-beta
is frozen at 5.6.0-beta.2.

Stable is unchanged apart from a new back-merge PR after each release, and a
`promotion-pin` CI check: a promotion is a merge, so every beta tag is
reachable from production and release-please picks one as its base unless the
stable version is pinned. That is what left production on 5.6.0-beta.1.

Publishing now happens before the tag and GitHub release are created, so a
failed publish no longer strands a release with no package on npm.
@finalerock44 finalerock44 self-assigned this Sep 18, 2026
…ases

# Conflicts:
#	.release-please-manifest-beta.json
#	CHANGELOG-beta.md
@finalerock44
finalerock44 merged commit 33158c5 into dev Sep 18, 2026
9 checks passed
@finalerock44
finalerock44 deleted the chore/manual-beta-releases branch September 18, 2026 16:56
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