| name | release |
| description | Review release readiness by checking ChangeLogs and version definitions and then create a git tag for the requested version. Use when asked to release or tag a version (e.g., "Please release 0.2.0", "Please tag 0.2.0") or to verify ChangeLog/version consistency before tagging. |
Release
Overview
Review all ChangeLogs and version metadata for consistency with the target release version, then create a git tag that matches the version string (no "v" prefix).
Workflow
Read changelog-* skills first
- Read
changelog-root,changelog-app, andchangelog-pkgbefore opening any ChangeLog files.
- Read
Confirm the target version
- Parse the version from the user request (example:
0.2.0). - If the version is ambiguous or missing, ask for it before proceeding.
- Parse the version from the user request (example:
Review ChangeLogs for release readiness (UNRELEASED entries only, across all ChangeLogs)
- Root ChangeLog:
ChangeLog - App ChangeLogs:
apps/*/ChangeLog - pkgsrc ChangeLogs:
config/pkgsrc/files/*/*/ChangeLog - Use the changelog-* skills when interpreting ChangeLog structure and versioning rules.
- Confirm the top entries include the target version in the root ChangeLog and note whether they are
UNRELEASEDor dated. - Compare the previous git release tag to the target version and verify the root ChangeLog covers the core changes between those versions.
- Verify each ChangeLog’s
* VERSION:lines are correct for that component; do not force app/pkg ChangeLogs to match the repo release version. - For root ChangeLog, verify
* SUBSYSTEM VERSIONS:againstapps/*/src/*.app.srcand* PACKAGE VERSIONS:againstconfig/pkgsrc/files/meta-pkgs/*/Makefile. - Review
UNRELEASEDentries in every ChangeLog. - If any ChangeLog is missing the target version, lacks core details for the release range, or shows a lower
UNRELEASEDversion, abort the release process and enter fixing mode. - In fixing mode: update the ChangeLog/version content as needed, then ask for human review. Do not continue the release process after making fixes.
- Root ChangeLog:
Review version definitions
rebar.configrelease version defines the repo release version.- App versions:
apps/*/src/*.app.srcvsnvalues. - pkgsrc versions:
config/pkgsrc/files/*/*/MakefileDISTNAMEversions. - App/pkg versions may differ from the repo release version; they must match their own ChangeLog entries and the root ChangeLog’s subsystem/package lists.
- If any mismatch is found, abort the release process and enter fixing mode.
- In fixing mode: update the version files as needed, then ask for human review. Do not continue the release process after making fixes.
Confirm git status and existing tags
- Check
git statusand note any uncommitted changes. - Check
git tag --listfor an existing tag matching the version. - If the tag already exists, ask before proceeding.
- Review
git logfrom the previous tag through HEAD to confirm the ChangeLog captures the core changes.
- Check
Finalize release entries and commit
- If everything is OK, replace all
UNRELEASEDheaders with today’s date. - Use
apply_patchfor these edits; do not run Python or other scripts to modify files. - Use the version from
rebar.configas the release version, even if subsystem/package versions differ. - Include all ChangeLog updates in a single commit with the message
Bump version to X.Y.Z. - If any fixes were made in fixing mode, stop after asking for human review and do not continue to commit/tag.
- If everything is OK, replace all
Create the release tag
- Tag the bump commit with a lightweight tag that matches the version string exactly (example:
git tag 0.2.0). - Do not add a "v" prefix unless explicitly requested.
- Do not push the tag unless the user asks.
- Tag the bump commit with a lightweight tag that matches the version string exactly (example:
Notes
- Only change version files when instructed; otherwise report mismatches and wait for confirmation.