The first stable release for this repository is:
v1.0.0
This project follows semantic versioning.
Use a patch release when changes are non-breaking, such as:
- documentation improvements
- Composer metadata cleanup
- changelog updates
- release workflow fixes
- non-breaking compatibility bug fixes
- safer internal implementation corrections that do not change public loading expectations
Example:
1.0.0to1.0.1
Use a minor release when adding new non-breaking functionality, such as:
- new migration helpers
- additional non-breaking polyfills
- expanded compatibility coverage
- new diagnostics that do not alter default runtime behavior
Example:
1.0.0to1.1.0
Use a major release when changes can break existing consumers, such as:
- changing file names
- changing load order expectations
- removing helpers or polyfills
- changing compatibility policy in a way that can alter runtime behavior
- redesigning how universal or strict mode is selected
Example:
1.0.0to2.0.0
For each stable version:
- update
CHANGELOG.md - commit the release changes
- create a Git tag such as
v1.0.0 - publish a GitHub Release using the matching tag
- use release notes that summarize added compatibility coverage, fixes, and release impact
Packagist works best when:
- the repository has stable tags
composer.jsonpoints to the correct repository- the README documents installation and manual include behavior clearly
- release history is visible in
CHANGELOG.md
This package intentionally does not use autoload.files for the two main compatibility files.
Why:
php-legacy-compat-universal.phpandphp-legacy-compat-strict.phpare mutually exclusive- auto-loading both would be incorrect and could create conflicting compatibility policy in one process
- manual inclusion is the cleanest and most explicit installation model
Recommended usage after Composer installation:
require_once __DIR__ . '/vendor/infinitumform/php-legacy-compat/php-legacy-compat-universal.php';Or:
require_once __DIR__ . '/vendor/infinitumform/php-legacy-compat/php-legacy-compat-strict.php';