Important: #106947 - Allow extensions to ship upgrade wizards without requiring EXT:install
See forge#106947
Description
EXT: is no longer installed per default in composer based
minimal installations.
However, this advantage could often not be utilised sensibly, since
extensions still needed to require EXT: as a dependency in order to
ship upgrade wizards, because the implemented interfaces needed to be available.
The basic required interfaces and the PHP attribute are now moved to the EXT:
namespace. The old counterparts are deprecated with
Deprecation: #106947 - Move upgrade wizard related interfaces and attribute to EXT:core but are still provided by EXT: for
the time being.
The following changes are required (when requiring TYPO3 14.0+) to make EXT:
optional:
- Let custom upgrade wizards implement
\TYPO3\.CMS\ Core\ Upgrades\ Upgrade Wizard Interface - Implement custom list-type to CType migrations extending
\TYPO3\.CMS\ Core\ Upgrades\ Abstract List Type To CType Update - Use the attribute
\TYPO3\to register custom upgrade wizards.CMS\ Core\ Attribute\ Upgrade Wizard
Note
The wording has been streamlined to use Upgrade instead of Update to
better align with their intention and with the naming in the TYPO3 command
line interface.
Extension authors supporting two major TYPO3 versions with one extension version can follow these strategies:
- TYPO3 v13 and v14: Use deprecated
EXT:interfaces and PHP Attribute and requireinstall EXT:as mandatory dependency, or add it as a suggestion to allow the decision to be made on project-level.install - TYPO3 v14: Switch to
EXT:interfaces and the new PHP Attribute.core
Note
The related upgrade wizard CLI command and services will also be moved to
EXT:, making EXT: fully optional while being able to
execute TYPO3 and extension upgrade wizards on deployments via CLI
commands.
See Deprecation: #106947 - Move upgrade wizard related interfaces and attribute to EXT:core for details about moved interfaces, PHP attribute and a migration example.