| name | punit-release-maintainer |
| description | Manage PUnit releases — version bumping, changelog formatting, tagging, and GitHub release workflow. Use when preparing a release, bumping versions, updating CHANGELOG.md, or creating release tags. |
| license | MIT |
| compatibility | Requires Pike 8.0.1116 or later |
| metadata | {"author":"TheSmuks","version":"1.0"} |
PUnit Release Maintainer
Version bumping (3-file sync)
Version is defined in three places. ALL THREE must be updated together:
PUnit.pmod/Version.pmod — constant version = "x.y.z";
.version — vx.y.z (with v prefix)
pike.json — "version": "x.y.z"
Semver rules
| Increment | When |
|---|
| PATCH | Bug fixes, no new API surface, no behavioral changes. Existing tests pass unmodified. |
| MINOR | New assertions, new features, new optional parameters. Backwards-compatible. |
| MAJOR | Breaking API changes: removed functions, changed signatures, changed default behavior. |
CHANGELOG.md formatting
Format: Keep a Changelog. Structure:
## [Unreleased]
### Added
- Description of new feature
### Changed
- Description of change
### Fixed
- Description of fix
## [x.y.z] - YYYY-MM-DD
### Added
- ...
On release: move items from [Unreleased] to a new version section with today's date.
Tag and release workflow
- Bump version in all 3 files
- Update CHANGELOG.md — move
[Unreleased] items to versioned section
- Commit with message:
chore(release): Bump version to x.y.z
- Verify:
pike -M . run_tests.pike tests/ (must pass)
- Push to
main
- Create annotated tag:
git tag -a vx.y.z -m "vx.y.z: brief summary"
- Push tag:
git push origin vx.y.z
- CI (
release.yml) automatically creates GitHub Release via softprops/action-gh-release@v2
GitHub release body format
## What's New
- **Feature** — description
## Fixes
- **Fix** — description
## Breaking Changes
- None. (Or describe them.)
## Baseline
- **130 passed, 4 skipped, 0 failures**
Pre-release checklist
From RELEASE.md:
- Version bumped in all 3 files
- CHANGELOG.md updated (versioned section with date)
- All tests pass (
pike -M . run_tests.pike tests/)
- AGENTS.md baseline matches actual test count
- ARCHITECTURE.md reflects any structural changes
- SKILL.md files updated if API surface changed
Pre-release versions
Suffixes: -alpha.N, -beta.N, -rc.N (e.g., 1.2.0-beta.1). Mark GitHub release as pre-release.