[TASK] Make EXT:install an optional dependency#4676
Open
wazum wants to merge 1 commit into
Open
Conversation
dkd-kaehm
approved these changes
Jun 3, 2026
dkd-kaehm
left a comment
Collaborator
There was a problem hiding this comment.
Thanks for resolving and remove hard dependency.
The list_type to CType upgrade wizard (SolrSearchCTypeMigration) extends AbstractListTypeToCTypeUpdate from EXT:install, which forced typo3/cms-install into the runtime requirements. This prevented hardened setups that remove EXT:install in production from using EXT:solr. Move typo3/cms-install to require-dev/suggest and register the upgrade wizard conditionally in Services.php only when the base class is available, so the DI container still builds when EXT:install is absent.
dkd-kaehm
force-pushed
the
task/make-cms-install-optional
branch
from
June 17, 2026 03:50
d5337c4 to
d06f8d0
Compare
dkd-kaehm
force-pushed
the
main
branch
4 times, most recently
from
June 17, 2026 07:09
0c90549 to
365cf5c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
typo3/cms-installbecame a hard runtime requirement in v14. It was added together with thelist_type→CTypeupgrade wizardSolrSearchCTypeMigration, whichextends AbstractListTypeToCTypeUpdatefrom EXT:install. Because the wizard is autowired viaConfiguration/Services.yaml(../Classes/Updates/*), the DI container reflects on the class during compilation and fails with a class not found fatal when EXT:install is absent.This forces EXT:install into every installation, which breaks hardened production setups that deliberately remove EXT:install.
Change
typo3/cms-installout ofrequireintorequire-dev(so CI/tests keep it) and add asuggestentry.../Classes/Updates/*from the autowiring glob inServices.yaml.Configuration/Services.phpthat registers the upgrade wizard only whenAbstractListTypeToCTypeUpdateexists. Core loads bothServices.phpandServices.yaml(seeContainerBuilder), so the regular service definitions are unaffected.The upgrade wizard remains fully functional wherever EXT:install is present (which is required to run wizards anyway). When EXT:install is absent, the container builds cleanly and the wizard is simply skipped.
Testing
CI quality stages run locally, all green:
composer validate— schema validDI container build verified with EXT:install present (
typo3 upgrade:listcompiles the container without errors).No test added: the regression that matters (container builds when EXT:install is absent) is not reproducible in the test harness, since
typo3/cms-installis always present in vendor viarequire-dev, and the repo has no existing upgrade-wizard/DI-registration tests to follow.