PSFS Versioning Policy
Current baseline
- Latest tagged release:
2.2.0(next patch prepared:2.2.1) - Composer package version:
2.2.0 - Branch alias:
dev-master -> 2.2.x-dev
Versioning model
PSFS follows Semantic Versioning:
MAJOR.MINOR.PATCHMAJOR: breaking changes in public contractsMINOR: backward-compatible features/improvementsPATCH: backward-compatible fixes/refactors
Examples:
2.2.1patch release2.3.0minor release3.0.0breaking major release
Rules for bumping
- Patch (
2.2.x)- Bug fixes
- Internal refactors without public contract break
- Security fixes compatible with current APIs
- Minor (
2.x.0)- New features with backward compatibility
- New optional metadata/attributes support
- Major (
x.0.0)- Route/signature/contract changes marked as public
- Removal of legacy fallback behavior
Release workflow (recommended)
All commands should run in Docker:
docker exec core-php-1 php vendor/bin/phpunit
Patch release example (2.2.1)
- Update
composer.json:"version": "2.2.1""extra.branch-alias.dev-master": "2.2.x-dev"(keep on patch lane)
- Validate:
docker exec core-php-1 php vendor/bin/phpunit
- Commit and tag:
git add composer.json
git commit -m "chore(release): 2.2.1"
git tag 2.2.1
git push origin master --tags
Minor release example (2.3.0)
- Update
composer.json:"version": "2.3.0""extra.branch-alias.dev-master": "2.3.x-dev"
- Validate and tag as above.
Notes
- Keep version and tag synchronized.
- Avoid removing legacy compatibility in patch/minor unless explicitly approved.
- Public contract changes require major bump and migration notes.