Release
Context
!git branch --show-current
!git status --porcelain
!grep "LATEST_VERSION = " src/php/Shared/VersionFinder.php
Instructions
Phase 1: Pre-flight Checks
Abort if not on
mainor if there are uncommitted changes (see context above).Check CHANGELOG.md has Unreleased content:
git diff $(git describe --tags --abbrev=0)..HEAD -- CHANGELOG.mdWarn if
## Unreleasedsection is empty.Determine next version:
- If
$ARGUMENTSprovides a version, validate format (X.Y.Z) - Otherwise, auto-increment minor:
0.29.0→0.30.0
- If
Phase 2: Release
If
--dry-run, show what would happen and stop:./tools/release.sh --dry-run <version>Run the release script:
./tools/release.sh <version>The script handles: version bump, changelog update, commit, PHAR build, git tag, push, GitHub release with PHAR attachment.
Phase 3: Verify
Confirm release was created:
gh release view v<version>Report the release URL to the user.
Reference
- Full guide:
.github/RELEASE.md - Release script:
tools/release.sh - Version file:
src/php/Shared/VersionFinder.php