Skip to content

Commit

Permalink
Fix show command output to remove v prefixes on versions, making for …
Browse files Browse the repository at this point in the history
…more uniform output, fixes #11925
  • Loading branch information
Seldaek committed Apr 15, 2024
1 parent 89f057e commit 92f641a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
10 changes: 8 additions & 2 deletions src/Composer/Command/ShowCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -535,10 +535,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int
$packageViewData['homepage'] = $package instanceof CompletePackageInterface ? $package->getHomepage() : null;
$packageViewData['source'] = PackageInfo::getViewSourceUrl($package);
}
$nameLength = max($nameLength, strlen($package->getPrettyName()));
$nameLength = max($nameLength, strlen($packageViewData['name']));
if ($writeVersion) {
$packageViewData['version'] = $package->getFullPrettyVersion();
$versionLength = max($versionLength, strlen($package->getFullPrettyVersion()));
if ($format === 'text') {
$packageViewData['version'] = ltrim($packageViewData['version'], 'v');
}
$versionLength = max($versionLength, strlen($packageViewData['version']));
}
if ($writeReleaseDate) {
if ($package->getReleaseDate() !== null) {
Expand All @@ -553,6 +556,9 @@ protected function execute(InputInterface $input, OutputInterface $output): int
}
if ($writeLatest && $latestPackage) {
$packageViewData['latest'] = $latestPackage->getFullPrettyVersion();
if ($format === 'text') {
$packageViewData['latest'] = ltrim($packageViewData['latest'], 'v');
}
$packageViewData['latest-status'] = $this->getUpdateStatus($latestPackage, $package);
$latestLength = max($latestLength, strlen($packageViewData['latest']));
} elseif ($writeLatest) {
Expand Down
16 changes: 8 additions & 8 deletions tests/Composer/Test/Command/ShowCommandTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,13 @@ public function testShow(array $command, string $expected, array $requires = [])
'packages' => [
'type' => 'package',
'package' => [
['name' => 'vendor/package', 'description' => 'generic description', 'version' => '1.0.0'],
['name' => 'vendor/package', 'description' => 'generic description', 'version' => 'v1.0.0'],

['name' => 'outdated/major', 'description' => 'outdated/major v1.0.0 description', 'version' => '1.0.0'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.0.1 description', 'version' => '1.0.1'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.1.0 description', 'version' => '1.1.0'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.1.1 description', 'version' => '1.1.1'],
['name' => 'outdated/major', 'description' => 'outdated/major v2.0.0 description', 'version' => '2.0.0'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.0.0 description', 'version' => 'v1.0.0'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.0.1 description', 'version' => 'v1.0.1'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.1.0 description', 'version' => 'v1.1.0'],
['name' => 'outdated/major', 'description' => 'outdated/major v1.1.1 description', 'version' => 'v1.1.1'],
['name' => 'outdated/major', 'description' => 'outdated/major v2.0.0 description', 'version' => 'v2.0.0'],

['name' => 'outdated/minor', 'description' => 'outdated/minor v1.0.0 description', 'version' => '1.0.0'],
['name' => 'outdated/minor', 'description' => 'outdated/minor v1.0.1 description', 'version' => '1.0.1'],
Expand All @@ -57,9 +57,9 @@ public function testShow(array $command, string $expected, array $requires = [])
'require' => $requires === [] ? new \stdClass : $requires,
]);

$pkg = self::getPackage('vendor/package', '1.0.0');
$pkg = self::getPackage('vendor/package', 'v1.0.0');
$pkg->setDescription('description of installed package');
$major = self::getPackage('outdated/major', '1.0.0');
$major = self::getPackage('outdated/major', 'v1.0.0');
$major->setReleaseDate(new DateTimeImmutable());
$minor = self::getPackage('outdated/minor', '1.0.0');
$minor->setReleaseDate(new DateTimeImmutable('-2 years'));
Expand Down

0 comments on commit 92f641a

Please sign in to comment.