- Update CHANGELOG.md: move entries from
[Unreleased]to a new[X.Y.Z] - YYYY-MM-DDsection. (This project does not store version incomposer.json; Packagist uses the git tag.) - Update UPGRADING.md if the release has upgrade notes.
- Run pre-release checks:
make release-check(includescheck-no-cursor-coauthor,check-open-prs, cs-fix, cs-check, rector-dry, phpstan, test-coverage, and optionally demo healthchecks). - Commit all changes, create an annotated tag (e.g.
v1.0.1), and push branch and tag. The release workflow will create the GitHub Release with the changelog. - Publish the package to Packagist if applicable (usually automatic when the tag is pushed).
After creating the release commit and tag, run make check-no-cursor-coauthor again before git push (REQ-GIT-001). The release commit itself is not covered by an earlier release-check run.
Before tagging a release, confirm dependency audit is clean, no secrets are committed, and docs/SECURITY.md / .github/SECURITY.md remain accurate. Follow the 12.4.1 table in SECURITY.md.
git add -A
git status # review
make release-check
git commit -m "Release 1.1.3: restore 100% coverage for BlogProtection fallbacks."
make check-no-cursor-coauthor
git tag -a v1.1.3 -m "Release 1.1.3"
git push origin main
git push origin v1.1.3