Versioning, deprecation and support policy
This extension follows a predictable release and deprecation process so that depending extensions know what to expect across releases.
Semantic versioning
Releases follow semantic versioning (MAJOR.MINOR.PATCH)
applied to the public API:
- PATCH releases contain backward-compatible bug fixes only.
- MINOR releases add backward-compatible functionality and may add new deprecations, but never remove or change existing public API.
- MAJOR releases may contain breaking changes to the public API, including the removal of previously deprecated functionality.
Only the public API is covered by this promise. Internal implementation details (see Public API and stability) may change in any release.
Deprecations and breaking changes
Functionality that is going to be removed is deprecated first whenever a backward-compatible path can be provided:
- Deprecations are announced in a dedicated changelog entry under
Documentation/, describing what is deprecated and how to migrate.Changelog/<version>/ Deprecation-*. rst - Where a runtime path exists, deprecated code triggers an
E_USER_DEPRECATEDnotice. - Deprecated functionality is removed no earlier than the next MAJOR
release. Breaking changes are documented in a
Breaking-*.rstchangelog entry and the commit is prefixed with[!!!].
Not every change can go through a deprecation phase. TYPO3 core-version specific
state, such as the Typo accessors, lives on the
TYPO3 core-version specific Core12/Core13 ExtendedStateInterface and
not on the version-agnostic State. As the
Typo is deprecated in TYPO3 v13 and removed in
TYPO3 v14, a future TYPO3 v14 extended interface will simply omit those
accessors; the version-agnostic public contract stays untouched.
TYPO3 core version support
Each release states the supported TYPO3 core versions in its
composer. and ext_. Support for a TYPO3 core
version is dropped only in a MAJOR release of this extension, accompanied by
a breaking changelog entry. New TYPO3 core versions are added in MINOR
releases through dedicated, version-specific Core<major>/ implementations.