From a32b4fed64af7ac27b2b5bed92b4bd29b33dd79b Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Tue, 8 Sep 2020 03:12:41 +0200 Subject: [PATCH] add jean85-pretty-version (#4141) --- composer.json | 3 +- src/Configuration/Configuration.php | 6 +-- src/Console/Application.php | 3 +- src/ValueObject/Jean85/Version.php | 62 +++++++++++++++++++++++++++++ 4 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 src/ValueObject/Jean85/Version.php diff --git a/composer.json b/composer.json index 41ff802c77e..eddf5491fc3 100644 --- a/composer.json +++ b/composer.json @@ -15,11 +15,11 @@ "composer/xdebug-handler": "^1.4", "doctrine/annotations": "^1.10.4", "doctrine/inflector": "^1.4|^2.0", - "jean85/pretty-package-versions": "^1.2", "migrify/php-config-printer": "^0.3.31", "nette/robot-loader": "^3.2", "nette/utils": "^3.1", "nikic/php-parser": "4.9.0", + "ocramius/package-versions": "^1.9", "ondram/ci-detector": "^3.4", "phpstan/phpdoc-parser": "^0.4.9", "phpstan/phpstan": "^0.12.38", @@ -48,7 +48,6 @@ "migrify/easy-ci": "^0.3.31", "nette/application": "^3.0", "nette/forms": "^3.0", - "ocramius/package-versions": "^1.4|^1.5", "phpunit/phpunit": "^8.5|^9.2", "psr/event-dispatcher": "^1.0", "slam/phpstan-extensions": "^5.0", diff --git a/src/Configuration/Configuration.php b/src/Configuration/Configuration.php index e38357dffa6..071bfeb4410 100644 --- a/src/Configuration/Configuration.php +++ b/src/Configuration/Configuration.php @@ -4,12 +4,13 @@ declare(strict_types=1); namespace Rector\Core\Configuration; -use Jean85\PrettyVersions; use OndraM\CiDetector\CiDetector; +use PackageVersions\Versions; use Rector\ChangesReporting\Output\CheckstyleOutputFormatter; use Rector\ChangesReporting\Output\JsonOutputFormatter; use Rector\Core\Exception\Configuration\InvalidConfigurationException; use Rector\Core\Testing\PHPUnit\StaticPHPUnitEnvironment; +use Rector\Core\ValueObject\Jean85\Version; use Symfony\Component\Console\Input\InputInterface; use Symplify\PackageBuilder\Parameter\ParameterProvider; use Symplify\SmartFileSystem\SmartFileInfo; @@ -169,8 +170,7 @@ final class Configuration public function getPrettyVersion(): string { - $version = PrettyVersions::getVersion('rector/rector'); - + $version = new Version(Versions::getVersion('rector/rector')); return $version->getPrettyVersion(); } diff --git a/src/Console/Application.php b/src/Console/Application.php index 601be743973..b152b9a0ace 100644 --- a/src/Console/Application.php +++ b/src/Console/Application.php @@ -5,7 +5,6 @@ declare(strict_types=1); namespace Rector\Core\Console; use Composer\XdebugHandler\XdebugHandler; -use Jean85\PrettyVersions; use OutOfBoundsException; use Rector\ChangesReporting\Output\CheckstyleOutputFormatter; use Rector\ChangesReporting\Output\JsonOutputFormatter; @@ -40,7 +39,7 @@ final class Application extends SymfonyApplication public function __construct(Configuration $configuration, array $commands = []) { try { - $version = PrettyVersions::getVersion('rector/rector')->getPrettyVersion(); + $version = $configuration->getPrettyVersion(); } catch (OutOfBoundsException $outOfBoundsException) { $version = 'Unknown'; } diff --git a/src/ValueObject/Jean85/Version.php b/src/ValueObject/Jean85/Version.php new file mode 100644 index 00000000000..9f94f2897c2 --- /dev/null +++ b/src/ValueObject/Jean85/Version.php @@ -0,0 +1,62 @@ +shortVersion = $splittedVersion[0]; + + $this->commitHash = $splittedVersion[1]; + $this->versionIsTagged = (bool) Strings::match($this->shortVersion, '#[^v\d\.]#'); + } + + public function getPrettyVersion(): string + { + if ($this->versionIsTagged) { + return $this->shortVersion; + } + + return $this->getVersionWithShortCommit(); + } + + private function getVersionWithShortCommit(): string + { + return $this->shortVersion . '@' . $this->getShortCommitHash(); + } + + private function getShortCommitHash(): string + { + return Strings::substring($this->commitHash, 0, self::SHORT_COMMIT_LENGTH); + } +}