Recommend this page to a friend! |
Classes of Eric Sizemore | Utility | backward-compatibility.md | Download |
|
DownloadBackward Compatibility (BC) PromiseI try to develop my libraries to be as backward compatible (BC) as possible. This file describes my backward compatibility promise, along with:
Further restrictions (and/or allowances) might be added in the future. | Document Information | | |:-------------------------|:-----------| | Effective Date | 04/22/2024 | | Last Updated | 04/22/2024 | | Version | 1.0.0 | Semantic VersioningThis project follows Semantic Versioning (
Major Version ChangesAny backward-incompatible changes will only occur in a new major version. Users should expect to update their code to accommodate these changes. Minor Version ChangesMinor versions may include new features and improvements but will maintain backward compatibility with previous minor versions within the same major release. Patch Version ChangesPatch versions will only include backward-compatible bug fixes. Users can safely update without fear of breaking changes. Public API Stability:
ExceptionsThere are some exceptions which are not covered by the backward compatibility promise. Security fixes and Critical bug fixesBackward compatibility can be ignored in security bug fixes or critical bugs. In this case, all the incompatible changes are described in the CHANGELOG. Internal Code
They are meant for internal use only and should not be accessed by your own code. They are subject to change or removal even in minor or patch versions. Unreleased
See Branches for more information. Named ArgumentsNamed arguments are not covered by the backward compatibility (BC) promise. I may choose to rename method/function parameter names when necessary in order to improve the codebase. Deprecations
Composer Dependencies:
Changelogs
Version ControlTagsTags in this project's Git repository are immutable. I do not change published tags to point to a different revision, for example. In very rare cases I may delete a tag in order to remove a broken release. The new release that fixes what was broken will always have a different tag than the one that was removed. BranchesBranches in this project's Git repository are private implementation details. For example, I delete branches for versions of PHPUnit Coverage Check that are no longer supported. In general:
For example, let's say the latest released version of this project is 3.0.0, the last major version is 2, and the next major version is 4.
UpdatesI will keep the backward compatibility promise updated as this project evolves and new use cases emerge. The last updated date and version of this document under AcknowledgementsThis backward compatibility promise was highly inspired by, and borrows from, the BC promises of: |