Discussion Topic
Some years ago it was reported that TYPO3 CMS 6.2 can’t deal with real composer dependencies, i.e. composer packages that are not a TYPO3 extension (from here on I’ll call them “external composer packages”). Recently the provided bugfix was rejected because of the “risk breaking existing installations”. (Forge: https://forge.typo3.org/issues/54491)
As of right now efficient composer usage is only possible from TYPO3 CMS 7.6. I’m currently working on a implementation of the Codeception functionality from TYPO3 CMS 8 into 6.2 and 7.6, where I also use external composer packages. This has made me realize that TYPO3 CMS 6.2 also needs to get a bugfix on this issue, as extensions that could help upgrading or migrating from TYPO3 CMS 6.2 to later TYPO3 versions are likely to use external composer packages.
Possible Solution
- Composer saves the installed packages in Packages/Libraries/composer/installed.js. Non-TYPO3 related packages would have to be removed from the extension key array in DependencyResolver
- suggestion implemented here: https://github.com/TYPO3/TYPO3.CMS/compare/TYPO3_6-2...saitho:TYPO3_6-2
Impact
- Changes to the dependency graph in the DependencyResolver
Pro
- Tackling the problem were it occurs
- an environment variable (or other constant type) could be used to explicitly enable the feature/bugfix. It should not break previous installations if it’s disabled by default. (not yet considered in my suggestion above)
- solving this issue might make it easier to upgrade from TYPO3 CMS 6.2 LTS to later versions (e.g. 7.6 LTS, 8, …), as described above
Con
- (It’s a change in TYPO3 Core functionality)
Remarks and notes
…
Organizational
Topic Initiator: Mario Lubenka
Topic Mentor: Helmut Hummel