Skip to content

[Sets] Drop Symfony per-version set providers from the collector - #8292

Merged
TomasVotruba merged 1 commit into
mainfrom
remove-symfony-per-version-set-providers
Aug 5, 2026
Merged

[Sets] Drop Symfony per-version set providers from the collector#8292
TomasVotruba merged 1 commit into
mainfrom
remove-symfony-per-version-set-providers

Conversation

@TomasVotruba

@TomasVotruba TomasVotruba commented Aug 5, 2026

Copy link
Copy Markdown
Member

Companion to rectorphp/rector-symfony#1010.

Symfony3SetProviderSymfony8SetProvider registered 208 per-version ComposerTriggeredSets. Every rule in them is already in config/sets/symfony/composer-based.php, where it carries its own package version constraint — verified rule by rule in that PR, 0 rules missing. rector-symfony removes those providers, so the collector stops asking them for sets.

SymfonySetProvider goes with them, in the same rector-symfony PR: the composer-based set is reachable through SymfonySetList::COMPOSER_BASED, which is exactly what withComposerBased(symfony: true) adds, and the remaining Symfony sets through their own SymfonySetList constants.

 use Rector\Set\SetProvider\PHPSetProvider;
-use Rector\Symfony\Set\SetProvider\Symfony3SetProvider;
-use Rector\Symfony\Set\SetProvider\Symfony4SetProvider;
-use Rector\Symfony\Set\SetProvider\Symfony5SetProvider;
-use Rector\Symfony\Set\SetProvider\Symfony6SetProvider;
-use Rector\Symfony\Set\SetProvider\Symfony7SetProvider;
-use Rector\Symfony\Set\SetProvider\Symfony8SetProvider;
-use Rector\Symfony\Set\SetProvider\SymfonySetProvider;
 use Rector\Symfony\Set\SetProvider\TwigSetProvider;

         $setProviders = [
             new PHPSetProvider(),
             new CoreSetProvider(),
             new PHPUnitSetProvider(),
-            new SymfonySetProvider(),
-            new Symfony3SetProvider(),
-            new Symfony4SetProvider(),
-            new Symfony5SetProvider(),
-            new Symfony6SetProvider(),
-            new Symfony7SetProvider(),
-            new Symfony8SetProvider(),
             new DoctrineSetProvider(),
             new TwigSetProvider(),
         ];

TwigSetProvider stays — SetGroup::TWIG is wired into withComposerBased(), so its composer-based trigger is still resolved through SetManager.

Follow-up, not in this PR

rector-symfony#1010 also trims TwigSetProvider to its single composer-based trigger. Once that is released and pulled in here, SetManagerTest needs updating — testMatchComposerTriggered() asserts 8 Twig triggered sets, and provideInstalledTwigData() expects the per-version Twig sets alongside the composer-based one.

Symfony3SetProvider to Symfony8SetProvider only registered composer-triggered sets that the Symfony composer-based set already covers, rule for rule. rector-symfony empties them in rectorphp/rector-symfony#1010, so the collector can stop asking them for sets.

SymfonySetProvider and TwigSetProvider stay, as they carry the composer-based sets.
@TomasVotruba
TomasVotruba force-pushed the remove-symfony-per-version-set-providers branch from fb065b8 to 43e2aac Compare August 5, 2026 09:25
@TomasVotruba
TomasVotruba merged commit 006fdc1 into main Aug 5, 2026
60 of 64 checks passed
@TomasVotruba
TomasVotruba deleted the remove-symfony-per-version-set-providers branch August 5, 2026 09:35
@TomasVotruba

Copy link
Copy Markdown
Member Author

CI unrelated to sets, caused by PHPStan type change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant