- name
- release
- description
- Use when releasing a new version of Reactive Resume — bumping the version, writing the changelog entry, creating the GitHub release, or when asked to "cut a release" / "release vX.Y.Z".
Release Reactive Resume
One pipeline: version bump → changelog entry → PR → squash-merge → tag → GitHub release. The changelog entry and the GitHub release body are the same text.
Steps
-
Scope the release. Previous tag:
git tag --sort=-creatordate | head -1. Changes:git log vPREV..HEAD --format='%h %s'. Confirm the new version with the user if not given (patch unless there's a headline feature). -
If this cycle added user-facing strings, run fill-translations first so catalogs ship complete.
-
Bump the version in the root
package.json: it is the release version for the web app, server and GitHub release. The native app's store version,versioninapps/mobile/app.config.ts, is separate: change it only when this release also ships a new store build (see.agents/docs/runbooks/mobile-releases.md). -
Write the changelog entry at the TOP of
docs/changelog/index.mdx(right after the frontmatter), in house style — use changelog-generator for the prose, then fit it to this exact shape:<Update label="vX.Y.Z" description="7th July 2026"> ## Highlights - **Bold feature lead.** One or two sentences of user-facing benefit — what it does for the user, not how it's implemented. [abc123def](https://github.com/reactive-resume/reactive-resume/commit/abc123def) ## Thematic Section (e.g. Resume Builder, Import & Export, Self-Hosting & Maintenance) - Past-tense entry ("Added…", "Fixed…", "Improved…") with commit links. [abc123def](...) **Full Changelog**: [vPREV...vX.Y.Z](https://github.com/reactive-resume/reactive-resume/compare/vPREV...vX.Y.Z) </Update>Conventions: date is ordinal ("7th July 2026"); every bullet links its commit(s) as
[shortsha](commit url); group by theme, Highlights first; write for users of the app and self-hosters, not for contributors. Thank external contributors by handle where relevant. -
Run checks:
pnpm check,pnpm typecheck,pnpm test. -
PR: non-draft, against
main. Before merging, tagging, publishing the release or pushing the Cloudron change, show the user exactly what will run (version, commit SHA, release notes) and wait for an explicit yes. Short summary + bullets of changes in the body. No mention of Claude/Codex/AI anywhere in title, body, or commits. Squash-merge once CI is green, then wait for the post-merge checks onmainto pass (gh pr checks --watch, then watch the main run). -
Tag and release from updated
main:git checkout main && git pull git tag vX.Y.Z && git push origin vX.Y.Z gh release create vX.Y.Z --title vX.Y.Z --notes-file release-notes.md