Skip to content

Latest commit

 

History

History
94 lines (60 loc) · 2.31 KB

File metadata and controls

94 lines (60 loc) · 2.31 KB

Versioning and Releases

First Stable Release

The first stable release for this repository is:

  • v1.0.0

Semantic Versioning Rules

This project follows semantic versioning.

Patch Release

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.0 to 1.0.1

Minor Release

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.0 to 1.1.0

Major Release

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.0 to 2.0.0

GitHub Releases

For each stable version:

  1. update CHANGELOG.md
  2. commit the release changes
  3. create a Git tag such as v1.0.0
  4. publish a GitHub Release using the matching tag
  5. use release notes that summarize added compatibility coverage, fixes, and release impact

Packagist Readiness

Packagist works best when:

  • the repository has stable tags
  • composer.json points to the correct repository
  • the README documents installation and manual include behavior clearly
  • release history is visible in CHANGELOG.md

Composer Loading Policy

This package intentionally does not use autoload.files for the two main compatibility files.

Why:

  • php-legacy-compat-universal.php and php-legacy-compat-strict.php are 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';