From 1f1cadb66e794dec89a4a60a5f384eca14ba2e3e Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 30 Sep 2026 14:27:02 +0200 Subject: [PATCH] Replace nette/utils and webmozart/assert with entropy, update entropy to ^0.4.17 --- composer.json | 6 ++---- src/Command/BreakPointCommand.php | 4 ++-- src/Command/OpenVersionsCommand.php | 8 ++++---- src/Command/RaiseToInstalledCommand.php | 6 +++--- src/Composer/ComposerOutdatedResponseProvider.php | 5 +++-- src/Composer/InstalledVersionResolver.php | 6 ++++-- src/Composer/NextVersionResolver.php | 6 +++--- .../RaiseToInstalledComposerProcessor.php | 6 +++--- src/FileSystem/ComposerJsonPackageVersionUpdater.php | 10 +++++----- src/Utils/JsonFileLoader.php | 8 ++++---- .../ChangedPackageVersionsResult.php | 2 +- src/ValueObject/OutdatedComposer.php | 2 +- src/ValueObject/OutdatedPackage.php | 6 +++--- .../OpenVersionsComposerProcessorTest.php | 2 +- .../RaiseToInstalledComposerProcessorTest.php | 2 +- 15 files changed, 40 insertions(+), 39 deletions(-) diff --git a/composer.json b/composer.json index 2678f24..b166f3f 100644 --- a/composer.json +++ b/composer.json @@ -8,10 +8,8 @@ "require": { "php": ">=8.4", "composer/semver": "^3.4", - "entropy/entropy": "^0.4", - "nette/utils": "^4.1", - "symfony/process": "^8.1", - "webmozart/assert": "^2.4" + "entropy/entropy": "^0.4.17", + "symfony/process": "^8.1" }, "require-dev": { "symplify/easy-coding-standard": "^13.2", diff --git a/src/Command/BreakPointCommand.php b/src/Command/BreakPointCommand.php index c295257..5d6c8e8 100644 --- a/src/Command/BreakPointCommand.php +++ b/src/Command/BreakPointCommand.php @@ -8,7 +8,7 @@ use Entropy\Console\Contract\CommandInterface; use Entropy\Console\Enum\ExitCode; use Entropy\Console\Output\OutputPrinter; -use Nette\Utils\Json; +use Entropy\Utils\Json; use Rector\Jack\Composer\ComposerOutdatedResponseProvider; use Rector\Jack\Enum\ComposerKey; use Rector\Jack\OutdatedComposerFactory; @@ -34,7 +34,7 @@ public function run(bool $dev = false, int $limit = 5, int $minDays = 0, array $ $responseJsonContents = $this->composerOutdatedResponseProvider->provide(); - $responseJson = Json::decode($responseJsonContents, true); + $responseJson = Json::decode($responseJsonContents); if (! isset($responseJson[ComposerKey::INSTALLED_KEY])) { $this->outputPrinter->green('All packages are up to date'); diff --git a/src/Command/OpenVersionsCommand.php b/src/Command/OpenVersionsCommand.php index d2f30ae..41d09a2 100644 --- a/src/Command/OpenVersionsCommand.php +++ b/src/Command/OpenVersionsCommand.php @@ -7,8 +7,8 @@ use Entropy\Console\Contract\CommandInterface; use Entropy\Console\Enum\ExitCode; use Entropy\Console\Output\OutputPrinter; -use Nette\Utils\FileSystem; -use Nette\Utils\Json; +use Entropy\Utils\FileSystem; +use Entropy\Utils\Json; use Rector\Jack\Composer\ComposerOutdatedResponseProvider; use Rector\Jack\ComposerProcessor\OpenVersionsComposerProcessor; use Rector\Jack\Enum\ComposerKey; @@ -40,7 +40,7 @@ public function run(int $limit = 5, bool $dryRun = false, bool $dev = false, ?st $responseJsonContents = $this->composerOutdatedResponseProvider->provide(); - $responseJson = Json::decode($responseJsonContents, true); + $responseJson = Json::decode($responseJsonContents); if (! isset($responseJson[ComposerKey::INSTALLED_KEY])) { $this->outputPrinter->greenBackground('All packages are up to date. You are the best!'); @@ -98,7 +98,7 @@ public function run(int $limit = 5, bool $dryRun = false, bool $dev = false, ?st if ($dryRun === false) { // update composer.json file, only if no --dry-run - FileSystem::write($composerJsonFilePath, rtrim($changedComposerJson) . PHP_EOL, null); + FileSystem::write($composerJsonFilePath, rtrim($changedComposerJson) . PHP_EOL); } $this->outputPrinter->greenBackground( diff --git a/src/Command/RaiseToInstalledCommand.php b/src/Command/RaiseToInstalledCommand.php index 6bb752f..149e7c1 100644 --- a/src/Command/RaiseToInstalledCommand.php +++ b/src/Command/RaiseToInstalledCommand.php @@ -7,9 +7,9 @@ use Entropy\Console\Contract\CommandInterface; use Entropy\Console\Enum\ExitCode; use Entropy\Console\Output\OutputPrinter; -use Nette\Utils\FileSystem; +use Entropy\Utils\FileSystem; +use Entropy\Validation\Assert; use Rector\Jack\ComposerProcessor\RaiseToInstalledComposerProcessor; -use Webmozart\Assert\Assert; final readonly class RaiseToInstalledCommand implements CommandInterface { @@ -42,7 +42,7 @@ public function run(bool $dryRun = false): int if ($dryRun === false) { $changedComposerJsonContents = $changedPackageVersionsResult->getComposerJsonContents(); - FileSystem::write($composerJsonFilePath, rtrim($changedComposerJsonContents) . PHP_EOL, null); + FileSystem::write($composerJsonFilePath, rtrim($changedComposerJsonContents) . PHP_EOL); } $this->outputPrinter->greenBackground(sprintf( diff --git a/src/Composer/ComposerOutdatedResponseProvider.php b/src/Composer/ComposerOutdatedResponseProvider.php index 988c6da..26fbd72 100644 --- a/src/Composer/ComposerOutdatedResponseProvider.php +++ b/src/Composer/ComposerOutdatedResponseProvider.php @@ -4,7 +4,7 @@ namespace Rector\Jack\Composer; -use Nette\Utils\FileSystem; +use Entropy\Utils\FileSystem; use Symfony\Component\Process\Process; final class ComposerOutdatedResponseProvider @@ -34,7 +34,8 @@ public function provide(): string $processResult = $composerOutdatedProcess->getOutput(); if (is_string($composerOutdatedFilePath)) { - FileSystem::write($composerOutdatedFilePath, $processResult, null); + FileSystem::ensureDirectoryExists(dirname($composerOutdatedFilePath)); + FileSystem::write($composerOutdatedFilePath, $processResult); } return $processResult; diff --git a/src/Composer/InstalledVersionResolver.php b/src/Composer/InstalledVersionResolver.php index c6a0af0..b07c9e1 100644 --- a/src/Composer/InstalledVersionResolver.php +++ b/src/Composer/InstalledVersionResolver.php @@ -4,8 +4,8 @@ namespace Rector\Jack\Composer; +use Rector\Jack\Exception\ShouldNotHappenException; use Rector\Jack\Utils\JsonFileLoader; -use Webmozart\Assert\Assert; final class InstalledVersionResolver { @@ -17,7 +17,9 @@ public function resolve(): array $installedJsonFilePath = getcwd() . '/vendor/composer/installed.json'; $installedJson = JsonFileLoader::loadFileToJson($installedJsonFilePath); - Assert::keyExists($installedJson, 'packages'); + if (! array_key_exists('packages', $installedJson)) { + throw new ShouldNotHappenException('Missing "packages" key in "installed.json"'); + } $installedPackagesToVersions = []; foreach ($installedJson['packages'] as $installedPackage) { diff --git a/src/Composer/NextVersionResolver.php b/src/Composer/NextVersionResolver.php index 80a0a39..e2c7abf 100644 --- a/src/Composer/NextVersionResolver.php +++ b/src/Composer/NextVersionResolver.php @@ -5,7 +5,7 @@ namespace Rector\Jack\Composer; use Composer\Semver\VersionParser; -use Nette\Utils\Strings; +use Entropy\Utils\Regex; use Rector\Jack\Exception\ShouldNotHappenException; /** @@ -27,12 +27,12 @@ public function resolve(string $packageName, string $composerVersion): string $constraint = $this->versionParser->parseConstraints($composerVersion); $nextBound = $constraint->getUpperBound(); - $matchVersion = Strings::match( + $matchVersion = Regex::match( $nextBound->getVersion(), '#^(?<' . self::MAJOR . '>\d+)\.(?<' . self::MINOR . '>\d+)#' ); - if ($matchVersion === null) { + if ($matchVersion === []) { throw new ShouldNotHappenException( sprintf('Unable to parse major and minor value from composer version "%s"', $composerVersion) ); diff --git a/src/ComposerProcessor/RaiseToInstalledComposerProcessor.php b/src/ComposerProcessor/RaiseToInstalledComposerProcessor.php index 48cd46c..64f3ee1 100644 --- a/src/ComposerProcessor/RaiseToInstalledComposerProcessor.php +++ b/src/ComposerProcessor/RaiseToInstalledComposerProcessor.php @@ -6,8 +6,8 @@ use Composer\Semver\Comparator; use Composer\Semver\VersionParser; -use Entropy\Attributes\RelatedTest; -use Nette\Utils\Json; +use Entropy\Attribute\RelatedTest; +use Entropy\Utils\Json; use Rector\Jack\Composer\InstalledVersionResolver; use Rector\Jack\Composer\VersionComparator; use Rector\Jack\FileSystem\ComposerJsonPackageVersionUpdater; @@ -27,7 +27,7 @@ public function __construct( public function process(string $composerJsonContents): ChangedPackageVersionsResult { $installedPackagesToVersions = $this->installedVersionResolver->resolve(); - $composerJson = Json::decode($composerJsonContents, true); + $composerJson = Json::decode($composerJsonContents); $changedPackageVersions = []; diff --git a/src/FileSystem/ComposerJsonPackageVersionUpdater.php b/src/FileSystem/ComposerJsonPackageVersionUpdater.php index f66dd9b..7c473bd 100644 --- a/src/FileSystem/ComposerJsonPackageVersionUpdater.php +++ b/src/FileSystem/ComposerJsonPackageVersionUpdater.php @@ -4,14 +4,14 @@ namespace Rector\Jack\FileSystem; -use Nette\Utils\Strings; +use Entropy\Utils\Regex; final class ComposerJsonPackageVersionUpdater { public static function update(string $composerJsonContents, string $packageName, string $newVersion): string { // replace using regex, to keep original composer.json format - $allChanges = Strings::replace( + $allChanges = Regex::replace( $composerJsonContents, // find sprintf('#"%s": "(.*?)"#', $packageName), @@ -23,10 +23,10 @@ public static function update(string $composerJsonContents, string $packageName, foreach ($skippedKeys as $skippedKey) { $regexKeyContent = sprintf('#"%s"\s*:\s*{[^}]*}#', $skippedKey); - $skippedContent = Strings::match($composerJsonContents, $regexKeyContent); + $skippedContent = Regex::match($composerJsonContents, $regexKeyContent); - if ($skippedContent !== null) { - $allChanges = Strings::replace($allChanges, $regexKeyContent, $skippedContent[0]); + if (isset($skippedContent[0]) && is_string($skippedContent[0])) { + $allChanges = Regex::replace($allChanges, $regexKeyContent, $skippedContent[0]); } } diff --git a/src/Utils/JsonFileLoader.php b/src/Utils/JsonFileLoader.php index 8863874..b170ac5 100644 --- a/src/Utils/JsonFileLoader.php +++ b/src/Utils/JsonFileLoader.php @@ -4,9 +4,9 @@ namespace Rector\Jack\Utils; -use Nette\Utils\FileSystem; -use Nette\Utils\Json; -use Webmozart\Assert\Assert; +use Entropy\Utils\FileSystem; +use Entropy\Utils\Json; +use Entropy\Validation\Assert; final class JsonFileLoader { @@ -19,6 +19,6 @@ public static function loadFileToJson(string $filePath): array $fileContents = FileSystem::read($filePath); - return Json::decode($fileContents, true); + return Json::decode($fileContents); } } diff --git a/src/ValueObject/ComposerProcessorResult/ChangedPackageVersionsResult.php b/src/ValueObject/ComposerProcessorResult/ChangedPackageVersionsResult.php index dd493bb..4f46f6f 100644 --- a/src/ValueObject/ComposerProcessorResult/ChangedPackageVersionsResult.php +++ b/src/ValueObject/ComposerProcessorResult/ChangedPackageVersionsResult.php @@ -4,8 +4,8 @@ namespace Rector\Jack\ValueObject\ComposerProcessorResult; +use Entropy\Validation\Assert; use Rector\Jack\ValueObject\ChangedPackageVersion; -use Webmozart\Assert\Assert; final readonly class ChangedPackageVersionsResult { diff --git a/src/ValueObject/OutdatedComposer.php b/src/ValueObject/OutdatedComposer.php index dc3b36b..a52eca6 100644 --- a/src/ValueObject/OutdatedComposer.php +++ b/src/ValueObject/OutdatedComposer.php @@ -4,7 +4,7 @@ namespace Rector\Jack\ValueObject; -use Webmozart\Assert\Assert; +use Entropy\Validation\Assert; final readonly class OutdatedComposer { diff --git a/src/ValueObject/OutdatedPackage.php b/src/ValueObject/OutdatedPackage.php index 5b6b3c5..2faca54 100644 --- a/src/ValueObject/OutdatedPackage.php +++ b/src/ValueObject/OutdatedPackage.php @@ -4,7 +4,7 @@ namespace Rector\Jack\ValueObject; -use Nette\Utils\Strings; +use Entropy\Utils\Regex; final readonly class OutdatedPackage { @@ -55,8 +55,8 @@ public function isVeryOld(): bool return true; } - $matchYears = Strings::match($this->currentVersionAge, '#[3-9] years#'); - return $matchYears !== null; + $matchYears = Regex::match($this->currentVersionAge, '#[3-9] years#'); + return $matchYears !== []; } public function lastestIsDevBranch(): bool diff --git a/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php b/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php index 6adf80b..86dbf1b 100644 --- a/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php +++ b/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php @@ -4,7 +4,7 @@ namespace Rector\Jack\Tests\ComposerProcessor\OpenVersionsComposerProcessor; -use Nette\Utils\FileSystem; +use Entropy\Utils\FileSystem; use Rector\Jack\ComposerProcessor\OpenVersionsComposerProcessor; use Rector\Jack\Tests\AbstractTestCase; use Rector\Jack\ValueObject\ChangedPackageVersion; diff --git a/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php b/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php index df18421..8b1b3bc 100644 --- a/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php +++ b/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php @@ -4,7 +4,7 @@ namespace Rector\Jack\Tests\ComposerProcessor\RaiseToInstalledComposerProcessor; -use Nette\Utils\FileSystem; +use Entropy\Utils\FileSystem; use PHPUnit\Framework\Attributes\DataProvider; use Rector\Jack\ComposerProcessor\RaiseToInstalledComposerProcessor; use Rector\Jack\Tests\AbstractTestCase;