[BUGFIX] Ignore non-typo3 packages in PackageState #519
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The testing-framework creates test instances per
functional test-case based on properties defining
the system extensions, extension and fixture test
extension to symlink and load in the non-composer
test instances.
Therefore, the
PackageStates.php
file is createdon the first test run per test-case manually based
on the provided properties in the defined order.
With [1] a
PackageCollection
class has been addedto ensure proper extension sorting in the packages
state file based on dependency informations. That
is essentially for the loading and processing order.
Since TYPO3 v12 extensions in composer mode no longer
requires the presence of a
ext_emconf.php
versusnon-composer mode. The
ext_emconf.php
is still addedif a extension is published to TER. Therefore, some
extension authors removed a manual
ext_emconf.php
from their extensions.
Extension composer.json may contain non-extension
packages as dependencies (
require
), which is nothandled by the PackageCollection due to the fact
that it assumes that all required packages are valid
extensions.
This change modifies the dependency validation method
PackageCollection->isComposerDependency()
using theComposerPackageManager
class information to determineif a package is a extension or not.
For example platform requires like
"php"
or packageslike
"composer/installers"
are no longer used fordependency ordering and therefore throwing a exception.
[1] b2b158f
Resolves: #510
Releases: main