1
0
Fork 0

Fix default version to be semver parseable, fixes #9342

pull/9348/head
Jordi Boggiano 2020-10-25 22:22:19 +01:00
parent 3dfbd9e9e9
commit 4b8c2aa121
No known key found for this signature in database
GPG Key ID: 7BBD42C429EC80BC
4 changed files with 9 additions and 4 deletions

View File

@ -14,6 +14,7 @@ namespace Composer\Command;
use Composer\Package\Link;
use Composer\Package\PackageInterface;
use Composer\Package\RootPackage;
use Composer\Repository\InstalledArrayRepository;
use Composer\Repository\CompositeRepository;
use Composer\Repository\RootPackageRepository;
@ -167,7 +168,7 @@ class BaseDependencyCommand extends BaseCommand
continue;
}
$doubles[$unique] = true;
$version = (strpos($package->getPrettyVersion(), 'No version set') === 0) ? '-' : $package->getPrettyVersion();
$version = $package->getPrettyVersion() === RootPackage::DEFAULT_PRETTY_VERSION ? '-' : $package->getPrettyVersion();
$rows[] = array($package->getPrettyName(), $version, $link->getDescription(), sprintf('%s (%s)', $link->getTarget(), $link->getPrettyConstraint()));
if ($children) {
$queue = array_merge($queue, $children);
@ -223,7 +224,7 @@ class BaseDependencyCommand extends BaseCommand
$color = $this->colors[$level % count($this->colors)];
$prevColor = $this->colors[($level - 1) % count($this->colors)];
$isLast = (++$idx == $count);
$versionText = (strpos($package->getPrettyVersion(), 'No version set') === 0) ? '' : $package->getPrettyVersion();
$versionText = $package->getPrettyVersion() === RootPackage::DEFAULT_PRETTY_VERSION ? '' : $package->getPrettyVersion();
$packageText = rtrim(sprintf('<%s>%s</%1$s> %s', $color, $package->getPrettyName(), $versionText));
$linkText = sprintf('%s <%s>%s</%2$s> %s', $link->getDescription(), $prevColor, $link->getTarget(), $link->getPrettyConstraint());
$circularWarn = $children === false ? '(circular dependency aborted here)' : '';

View File

@ -20,6 +20,7 @@ use Composer\Package\RootPackageInterface;
use Composer\Repository\RepositoryFactory;
use Composer\Package\Version\VersionGuesser;
use Composer\Package\Version\VersionParser;
use Composer\Package\RootPackage;
use Composer\Repository\RepositoryManager;
use Composer\Util\ProcessExecutor;
@ -112,7 +113,7 @@ class RootPackageLoader extends ArrayLoader
}
if ($autoVersioned) {
$realPackage->replaceVersion($realPackage->getVersion(), 'No version set (parsed as 1.0.0)');
$realPackage->replaceVersion($realPackage->getVersion(), RootPackage::DEFAULT_PRETTY_VERSION);
}
if (isset($config['minimum-stability'])) {

View File

@ -19,6 +19,8 @@ namespace Composer\Package;
*/
class RootPackage extends CompletePackage implements RootPackageInterface
{
const DEFAULT_PRETTY_VERSION = '1.0.0+no-version-set';
protected $minimumStability = 'stable';
protected $preferStable = false;
protected $stabilityFlags = array();

View File

@ -15,6 +15,7 @@ namespace Composer\Test\Package\Loader;
use Composer\Config;
use Composer\Package\Loader\RootPackageLoader;
use Composer\Package\BasePackage;
use Composer\Package\RootPackage;
use Composer\Package\Version\VersionGuesser;
use Composer\Semver\VersionParser;
use Composer\Test\TestCase;
@ -90,7 +91,7 @@ class RootPackageLoaderTest extends TestCase
$package = $loader->load(array());
$this->assertEquals("1.0.0.0", $package->getVersion());
$this->assertEquals("No version set (parsed as 1.0.0)", $package->getPrettyVersion());
$this->assertEquals(RootPackage::DEFAULT_PRETTY_VERSION, $package->getPrettyVersion());
}
public function testPrettyVersionForRootPackageInVersionBranch()