diff --git a/src/Configuration/Option.php b/src/Configuration/Option.php index e5fd0c98457..fd5937e847b 100644 --- a/src/Configuration/Option.php +++ b/src/Configuration/Option.php @@ -276,12 +276,6 @@ final class Option */ public const string TREAT_CLASSES_AS_FINAL = 'treat_classes_as_final'; - /** - * @internal To report composer based loaded sets - * @see \Rector\Configuration\RectorConfigBuilder::withComposerBased() - */ - public const string COMPOSER_BASED_SETS = 'composer_based_sets'; - /** * @internal To report rule configuration bound to an installed package version * @see \Rector\Config\RectorConfig::ruleWithConfigurationComposerVersionBound() diff --git a/src/Configuration/RectorConfigBuilder.php b/src/Configuration/RectorConfigBuilder.php index def00575e03..9dfb8edaa59 100644 --- a/src/Configuration/RectorConfigBuilder.php +++ b/src/Configuration/RectorConfigBuilder.php @@ -6,10 +6,8 @@ use Deprecated; use PhpParser\NodeVisitor; -use Rector\Bridge\SetProviderCollector; use Rector\Bridge\SetRectorsResolver; use Rector\Caching\Contract\ValueObject\Storage\CacheStorageInterface; -use Rector\Composer\InstalledPackageResolver; use Rector\Config\Level\CodeQualityLevel; use Rector\Config\Level\CodingStyleLevel; use Rector\Config\Level\DeadCodeLevel; @@ -26,9 +24,7 @@ use Rector\Exception\Configuration\InvalidConfigurationException; use Rector\Php\PhpVersionResolver\ComposerJsonPhpVersionResolver; use Rector\PHPUnit\Set\PHPUnitSetList; -use Rector\Set\Contract\SetProviderInterface; use Rector\Set\Enum\SetGroup; -use Rector\Set\SetManager; use Rector\Set\ValueObject\DowngradeLevelSetList; use Rector\Set\ValueObject\SetList; use Rector\Symfony\Set\SymfonyInternalSetList; @@ -175,20 +171,10 @@ final class RectorConfigBuilder */ private array $registerServices = []; - /** - * @var array - */ - private array $setGroups = []; - private ?bool $reportingRealPath = null; private ?bool $reportUnusedSkips = null; - /** - * @var string[] - */ - private array $groupLoadedSets = []; - private ?string $editorUrl = null; private ?bool $isWithPhpSetsUsed = null; @@ -197,11 +183,6 @@ final class RectorConfigBuilder private ?int $pickedPhpSetsVersion = null; - /** - * @var array,bool> - */ - private array $setProviders = []; - /** * @var LevelOverflow[] */ @@ -209,19 +190,6 @@ final class RectorConfigBuilder public function __invoke(RectorConfig $rectorConfig): void { - if ($this->setGroups !== [] || $this->setProviders !== []) { - $setProviderCollector = new SetProviderCollector(array_map( - $rectorConfig->make(...), - \array_keys($this->setProviders) - )); - - $setManager = new SetManager($setProviderCollector, new InstalledPackageResolver(getcwd())); - - $this->groupLoadedSets = $setManager->matchBySetGroups($this->setGroups); - - SimpleParameterProvider::addParameter(Option::COMPOSER_BASED_SETS, $this->groupLoadedSets); - } - // not to miss it by accident if ($this->isWithPhpSetsUsed === true) { $this->sets[] = SetList::PHP_POLYFILLS; @@ -234,9 +202,6 @@ public function __invoke(RectorConfig $rectorConfig): void ); } - // merge sets together - $this->sets = array_merge($this->sets, $this->groupLoadedSets); - $uniqueSets = array_unique($this->sets); if ($this->isWithPhpLevelUsed && $this->isWithPhpSetsUsed) { @@ -745,12 +710,7 @@ public function withComposerBased( // single set, as every rule inside is bound to the installed package version on its own $this->sets[] = $setFilePath; - continue; } - - // @deprecated fallback for extensions that still describe their sets as objects, - // instead of bonding the rules themselves - $this->setGroups[] = $setGroup; } if ($phpunit) { @@ -1188,26 +1148,14 @@ public function withEditorUrl(string $editorUrl): self } /** - * @param class-string ...$setProviders + * @deprecated Set providers are now loaded internally. Use withComposerBased() instead. */ - public function withSetProviders(string ...$setProviders): self + public function withSetProviders(): self { - foreach ($setProviders as $setProvider) { - if (\array_key_exists($setProvider, $this->setProviders)) { - continue; - } - - if (! is_a($setProvider, SetProviderInterface::class, true)) { - throw new InvalidConfigurationException(sprintf( - 'Set provider "%s" must implement "%s"', - $setProvider, - SetProviderInterface::class - )); - } - - $this->setProviders[$setProvider] = true; - } - + trigger_error( + 'The withSetProviders() method is deprecated and no longer applied. Set providers are now loaded internally - use "withComposerBased()" instead.', + E_USER_DEPRECATED + ); return $this; } diff --git a/src/Console/Command/ProcessCommand.php b/src/Console/Command/ProcessCommand.php index 0a210a2b908..9aa71ad434f 100644 --- a/src/Console/Command/ProcessCommand.php +++ b/src/Console/Command/ProcessCommand.php @@ -12,7 +12,6 @@ use Rector\Configuration\ConfigurationFactory; use Rector\Configuration\ConfigurationRuleFilter; use Rector\Configuration\Option; -use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\Console\ExitCode; use Rector\Console\Output\OutputFormatterCollector; use Rector\Console\ProcessConfigureDecorator; @@ -163,11 +162,6 @@ protected function execute(InputInterface $input, OutputInterface $output): int $this->additionalAutoloader->autoloadPaths(); } - // show debug info - if ($configuration->isDebug()) { - $this->reportLoadedComposerBasedSets(); - } - // MAIN PHASE // 2. run Rector $processResult = $this->applicationFileProcessor->run($configuration, $input); @@ -247,21 +241,6 @@ private function resolveReturnCode(ProcessResult $processResult, Configuration $ return ExitCode::SUCCESS; } - private function reportLoadedComposerBasedSets(): void - { - if (! SimpleParameterProvider::hasParameter(Option::COMPOSER_BASED_SETS)) { - return; - } - - $composerBasedSets = SimpleParameterProvider::provideArrayParameter(Option::COMPOSER_BASED_SETS); - if ($composerBasedSets === []) { - return; - } - - $this->symfonyStyle->writeln('[info] Sets loaded based on installed packages:'); - $this->symfonyStyle->listing($composerBasedSets); - } - private function reportLevelOverflow(LevelOverflow $levelOverflow): void { $suggestedSetMethod = PHP_VERSION_ID >= 80000 ? sprintf( diff --git a/src/Set/SetManager.php b/src/Set/SetManager.php deleted file mode 100644 index f8cdb37f936..00000000000 --- a/src/Set/SetManager.php +++ /dev/null @@ -1,66 +0,0 @@ -installedPackageResolver->resolve(); - $groupLoadedSets = []; - - foreach ($setGroups as $setGroup) { - $composerTriggeredSets = $this->matchComposerTriggered($setGroup); - - foreach ($composerTriggeredSets as $composerTriggeredSet) { - if ($composerTriggeredSet->matchInstalledPackages($installedComposerPackages)) { - // it matched composer package + version requirements → load set - $groupLoadedSets[] = realpath($composerTriggeredSet->getSetFilePath()); - } - } - } - - return $groupLoadedSets; - } - - /** - * @return ComposerTriggeredSet[] - */ - private function matchComposerTriggered(string $groupName): array - { - $matchedSets = []; - - foreach ($this->setProviderCollector->provideComposerTriggeredSets() as $composerTriggeredSet) { - if ($composerTriggeredSet->getGroupName() === $groupName) { - $matchedSets[] = $composerTriggeredSet; - } - } - - return $matchedSets; - } -} diff --git a/tests/Configuration/ExtensionComposerBasedSetTest.php b/tests/Configuration/ExtensionComposerBasedSetTest.php index 8975e47187e..b7434a6cb52 100644 --- a/tests/Configuration/ExtensionComposerBasedSetTest.php +++ b/tests/Configuration/ExtensionComposerBasedSetTest.php @@ -28,10 +28,10 @@ public function testEverySetGroupToggleHasASetListMapped(): void } /** - * The extension packages are not required by rector-src, so their constant is undefined here and the - * deprecated set group has to keep working. + * The extension packages are not required by rector-src, so their constant is undefined here and + * nothing is loaded for the toggle. */ - public function testFallsBackToTheSetGroupWhenTheExtensionIsNotInstalled(): void + public function testLoadsNothingWhenTheExtensionIsNotInstalled(): void { foreach ($this->provideExtensionComposerBasedSetLists() as $setListConstant) { $this->assertFalse(defined($setListConstant), $setListConstant); @@ -40,7 +40,6 @@ public function testFallsBackToTheSetGroupWhenTheExtensionIsNotInstalled(): void $rectorConfigBuilder = new RectorConfigBuilder() ->withComposerBased(laravel: true, drupal: true); - $this->assertSame([SetGroup::LARAVEL, SetGroup::DRUPAL], $this->readPrivateArray($rectorConfigBuilder, 'setGroups')); $this->assertSame([], $this->readPrivateArray($rectorConfigBuilder, 'sets')); }