This document describes how to prepare and publish a new release of Sentry Bundle.
Run the full release check (style, static analysis, tests, demos):
make release-checkThis runs:
ensure-up– Docker PHP service up and dependencies installedcomposer-sync– validatecomposer.jsonand aligncomposer.lock(--no-install)cs-fixandcs-check– code stylerector-dry– Rector in dry-runphpstan– static analysis (phpstan.neon.dist)coverage-check– fulltest-coverageflow (console coverage +coverage-php.txt+ global Lines % script) and Clover threshold check (95%)release-check-demos– runsmake -C demo release-check(demoupdate-bundle-all→test-coverage-all→release-verifyper demo)
Fix any failure before tagging.
We follow Semantic Versioning:
- MAJOR – incompatible API changes
- MINOR – new backward-compatible functionality
- PATCH – backward-compatible bug fixes
- Update
docs/CHANGELOG.md: add a new## [X.Y.Z] - YYYY-MM-DDsection with the changes and move them from[Unreleased](see Keep a Changelog). - Update
docs/UPGRADING.mdif the new version has upgrade notes (release date, breaking changes, new config). - Commit:
git add docs/CHANGELOG.md docs/UPGRADING.md && git commit -m "Prepare release X.Y.Z". - Create an annotated tag:
git tag -a vX.Y.Z -m "Release vX.Y.Z" git push origin vX.Y.Z - GitHub Actions will create the GitHub Release from the tag and attach the changelog entry for that version.
- Verify the release on Packagist and that the Flex recipe (if used) applies correctly.
- Optionally announce in your usual channels.
After CHANGELOG and UPGRADING are updated and committed:
# 1. Run pre-release checks
make release-check
# 2. Commit release docs (if not already committed)
git add docs/CHANGELOG.md docs/UPGRADING.md docs/RELEASE.md
git commit -m "docs: prepare release 1.9.1"
# 3. Create and push tag (triggers GitHub Release via Actions)
git tag -a v1.9.1 -m "Release v1.9.1"
git push origin main
git push origin v1.9.1(Adjust main if your default branch is master.)
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.