Release Rstack
Input
- Target version without a leading
v, for example1.2.0.
If the version is missing, ask for it before making changes.
Version rules
- Read both package versions before editing. Require the rstack target to be a valid, increasing SemVer version.
- Keep the package version lines independent. Apply the rstack bump type to the current
create-rstackversion:- Patch: increment the patch version.
- Minor: increment the minor version and reset patch to
0. - Prerelease: use the rstack target's identifier. From a stable version, increment patch and append
-<identifier>.0; otherwise increment the final prerelease number. - Prerelease to stable with the same core version: remove the
create-rstackprerelease suffix.
- Stop and ask the user for major or ambiguous changes.
Steps
Check the worktree with
git status --short. If there are uncommitted changes or untracked files, stop and ask the user how to proceed. Do not stash, discard, or include them.Confirm the current branch is the repository's default branch. Set the release branch to
release/v<version>and check both local and remote branches. If it already exists, stop and ask the user how to proceed.Create and switch to
release/v<version>from the clean default-branch HEAD.Update the
versionfield inpackages/rstack/package.jsonto<version>and theversionfield inpackages/create-rstack/package.jsonto the derivedcreate-rstackversion.In every
packages/create-rstack/template-*/package.json, set therstackdependency to^<version>. Update only that dependency entry and verify every template package manifest uses the same target version.Run
pnpm --filter rstack build:nativeto regeneratepackages/rstack/binding.cjsandpackages/rstack/binding.d.ctsfor the new version. Do not edit generated binding files manually.Review the diff and confirm it contains only both package version changes, the template
rstackdependency updates, and the regenerated binding files above. Verify the two package version changes use the intended matching bump type and no template retains an older rstack version.Create a commit with this exact message:
release: v<version>.Push the branch to
origin. Recheck that the branch being pushed isrelease/v<version>and never push the default branch directly.Create a pull request against the default branch. In Codex, use the GitHub connector/plugin; use another available GitHub workflow only when the connector is unavailable. Use
release: v<version>as the PR title.
Return the pull request URL.