Rename DEV_MASTER_ALIAS to DEFAULT_BRANCH_ALIAS
parent
821e575658
commit
05dacbdabb
|
@ -388,8 +388,8 @@ EOT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// avoid displaying 9999999-dev as version if dev-master was selected
|
// avoid displaying 9999999-dev as version if default-branch was selected
|
||||||
if ($package instanceof AliasPackage && $package->getPrettyVersion() === VersionParser::DEV_MASTER_ALIAS) {
|
if ($package instanceof AliasPackage && $package->getPrettyVersion() === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
$package = $package->getAliasOf();
|
$package = $package->getAliasOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -329,14 +329,18 @@ class Problem
|
||||||
public static function getPackageList(array $packages, $isVerbose)
|
public static function getPackageList(array $packages, $isVerbose)
|
||||||
{
|
{
|
||||||
$prepared = array();
|
$prepared = array();
|
||||||
|
$hasDefaultBranch = array();
|
||||||
foreach ($packages as $package) {
|
foreach ($packages as $package) {
|
||||||
$prepared[$package->getName()]['name'] = $package->getPrettyName();
|
$prepared[$package->getName()]['name'] = $package->getPrettyName();
|
||||||
$prepared[$package->getName()]['versions'][$package->getVersion()] = $package->getPrettyVersion().($package instanceof AliasPackage ? ' (alias of '.$package->getAliasOf()->getPrettyVersion().')' : '');
|
$prepared[$package->getName()]['versions'][$package->getVersion()] = $package->getPrettyVersion().($package instanceof AliasPackage ? ' (alias of '.$package->getAliasOf()->getPrettyVersion().')' : '');
|
||||||
|
if ($package->isDefaultBranch()) {
|
||||||
|
$hasDefaultBranch[$package->getName()] = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
foreach ($prepared as $name => $package) {
|
foreach ($prepared as $name => $package) {
|
||||||
// remove the implicit dev-master alias to avoid cruft in the display
|
// remove the implicit default branch alias to avoid cruft in the display
|
||||||
if (isset($package['versions'][VersionParser::DEV_MASTER_ALIAS]) && isset($package['versions']['dev-master'])) {
|
if (isset($package['versions'][VersionParser::DEFAULT_BRANCH_ALIAS]) && isset($hasDefaultBranch[$name])) {
|
||||||
unset($package['versions'][VersionParser::DEV_MASTER_ALIAS]);
|
unset($package['versions'][VersionParser::DEFAULT_BRANCH_ALIAS]);
|
||||||
}
|
}
|
||||||
|
|
||||||
uksort($package['versions'], 'version_compare');
|
uksort($package['versions'], 'version_compare');
|
||||||
|
|
|
@ -183,7 +183,7 @@ abstract class Rule
|
||||||
return 'Root composer.json requires '.$packageName.($constraint ? ' '.$constraint->getPrettyString() : '').' -> satisfiable by '.$this->formatPackagesUnique($pool, $packages, $isVerbose).'.';
|
return 'Root composer.json requires '.$packageName.($constraint ? ' '.$constraint->getPrettyString() : '').' -> satisfiable by '.$this->formatPackagesUnique($pool, $packages, $isVerbose).'.';
|
||||||
|
|
||||||
case self::RULE_FIXED:
|
case self::RULE_FIXED:
|
||||||
$package = $this->deduplicateMasterAlias($this->reasonData['package']);
|
$package = $this->deduplicateDefaultBranchAlias($this->reasonData['package']);
|
||||||
if ($this->reasonData['lockable']) {
|
if ($this->reasonData['lockable']) {
|
||||||
return $package->getPrettyName().' is locked to version '.$package->getPrettyVersion().' and an update of this package was not requested.';
|
return $package->getPrettyName().' is locked to version '.$package->getPrettyVersion().' and an update of this package was not requested.';
|
||||||
}
|
}
|
||||||
|
@ -191,14 +191,14 @@ abstract class Rule
|
||||||
return $package->getPrettyName().' is present at version '.$package->getPrettyVersion() . ' and cannot be modified by Composer';
|
return $package->getPrettyName().' is present at version '.$package->getPrettyVersion() . ' and cannot be modified by Composer';
|
||||||
|
|
||||||
case self::RULE_PACKAGE_CONFLICT:
|
case self::RULE_PACKAGE_CONFLICT:
|
||||||
$package1 = $this->deduplicateMasterAlias($pool->literalToPackage($literals[0]));
|
$package1 = $this->deduplicateDefaultBranchAlias($pool->literalToPackage($literals[0]));
|
||||||
$package2 = $this->deduplicateMasterAlias($pool->literalToPackage($literals[1]));
|
$package2 = $this->deduplicateDefaultBranchAlias($pool->literalToPackage($literals[1]));
|
||||||
|
|
||||||
return $package2->getPrettyString().' conflicts with '.$package1->getPrettyString().'.';
|
return $package2->getPrettyString().' conflicts with '.$package1->getPrettyString().'.';
|
||||||
|
|
||||||
case self::RULE_PACKAGE_REQUIRES:
|
case self::RULE_PACKAGE_REQUIRES:
|
||||||
$sourceLiteral = array_shift($literals);
|
$sourceLiteral = array_shift($literals);
|
||||||
$sourcePackage = $this->deduplicateMasterAlias($pool->literalToPackage($sourceLiteral));
|
$sourcePackage = $this->deduplicateDefaultBranchAlias($pool->literalToPackage($sourceLiteral));
|
||||||
|
|
||||||
$requires = array();
|
$requires = array();
|
||||||
foreach ($literals as $literal) {
|
foreach ($literals as $literal) {
|
||||||
|
@ -281,7 +281,7 @@ abstract class Rule
|
||||||
$group = $literal > 0 ? 'install' : 'don\'t install';
|
$group = $literal > 0 ? 'install' : 'don\'t install';
|
||||||
}
|
}
|
||||||
|
|
||||||
$groups[$group][] = $this->deduplicateMasterAlias($package);
|
$groups[$group][] = $this->deduplicateDefaultBranchAlias($package);
|
||||||
}
|
}
|
||||||
$ruleTexts = array();
|
$ruleTexts = array();
|
||||||
foreach ($groups as $group => $packages) {
|
foreach ($groups as $group => $packages) {
|
||||||
|
@ -295,10 +295,10 @@ abstract class Rule
|
||||||
case self::RULE_PACKAGE_ALIAS:
|
case self::RULE_PACKAGE_ALIAS:
|
||||||
$aliasPackage = $pool->literalToPackage($literals[0]);
|
$aliasPackage = $pool->literalToPackage($literals[0]);
|
||||||
// avoid returning content like "9999999-dev is an alias of dev-master" as it is useless
|
// avoid returning content like "9999999-dev is an alias of dev-master" as it is useless
|
||||||
if ($aliasPackage->getVersion() === VersionParser::DEV_MASTER_ALIAS) {
|
if ($aliasPackage->getVersion() === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
$package = $this->deduplicateMasterAlias($pool->literalToPackage($literals[1]));
|
$package = $this->deduplicateDefaultBranchAlias($pool->literalToPackage($literals[1]));
|
||||||
|
|
||||||
return $aliasPackage->getPrettyString() .' is an alias of '.$package->getPrettyString().' and thus requires it to be installed too.';
|
return $aliasPackage->getPrettyString() .' is an alias of '.$package->getPrettyString().' and thus requires it to be installed too.';
|
||||||
default:
|
default:
|
||||||
|
@ -342,9 +342,9 @@ abstract class Rule
|
||||||
return $names;
|
return $names;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function deduplicateMasterAlias(PackageInterface $package)
|
private function deduplicateDefaultBranchAlias(PackageInterface $package)
|
||||||
{
|
{
|
||||||
if ($package instanceof AliasPackage && $package->getPrettyVersion() === VersionParser::DEV_MASTER_ALIAS) {
|
if ($package instanceof AliasPackage && $package->getPrettyVersion() === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
$package = $package->getAliasOf();
|
$package = $package->getAliasOf();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,7 @@ class AliasPackage extends BasePackage implements CompletePackageInterface
|
||||||
{
|
{
|
||||||
// for self.version requirements, we use the original package's branch name instead, to avoid leaking the magic dev-master-alias to users
|
// for self.version requirements, we use the original package's branch name instead, to avoid leaking the magic dev-master-alias to users
|
||||||
$prettyVersion = $this->prettyVersion;
|
$prettyVersion = $this->prettyVersion;
|
||||||
if ($prettyVersion === VersionParser::DEV_MASTER_ALIAS) {
|
if ($prettyVersion === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
$prettyVersion = $this->aliasOf->getPrettyVersion();
|
$prettyVersion = $this->aliasOf->getPrettyVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -90,8 +90,8 @@ class ArrayLoader implements LoaderInterface
|
||||||
if (isset($config['version_normalized'])) {
|
if (isset($config['version_normalized'])) {
|
||||||
$version = $config['version_normalized'];
|
$version = $config['version_normalized'];
|
||||||
|
|
||||||
// handling of existing repos which need to remain composer v1 compatible, in case the version_normalized contained VersionParser::DEV_MASTER_ALIAS, we renormalize it
|
// handling of existing repos which need to remain composer v1 compatible, in case the version_normalized contained VersionParser::DEFAULT_BRANCH_ALIAS, we renormalize it
|
||||||
if ($version === VersionParser::DEV_MASTER_ALIAS) {
|
if ($version === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
$version = $this->versionParser->normalize($config['version']);
|
$version = $this->versionParser->normalize($config['version']);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -369,7 +369,7 @@ class ArrayLoader implements LoaderInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($config['default-branch']) && $config['default-branch'] === true) {
|
if (isset($config['default-branch']) && $config['default-branch'] === true) {
|
||||||
return VersionParser::DEV_MASTER_ALIAS;
|
return VersionParser::DEFAULT_BRANCH_ALIAS;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -210,7 +210,7 @@ class VersionGuesser
|
||||||
$version = $this->versionParser->normalizeBranch($branch);
|
$version = $this->versionParser->normalizeBranch($branch);
|
||||||
$isFeatureBranch = 0 === strpos($version, 'dev-');
|
$isFeatureBranch = 0 === strpos($version, 'dev-');
|
||||||
|
|
||||||
if (VersionParser::DEV_MASTER_ALIAS === $version) {
|
if (VersionParser::DEFAULT_BRANCH_ALIAS === $version) {
|
||||||
return array('version' => $version, 'commit' => null, 'pretty_version' => 'dev-'.$branch);
|
return array('version' => $version, 'commit' => null, 'pretty_version' => 'dev-'.$branch);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,8 @@ use Composer\Semver\Semver;
|
||||||
|
|
||||||
class VersionParser extends SemverVersionParser
|
class VersionParser extends SemverVersionParser
|
||||||
{
|
{
|
||||||
const DEV_MASTER_ALIAS = '9999999-dev';
|
const DEFAULT_BRANCH_ALIAS = '9999999-dev';
|
||||||
|
|
||||||
private static $constraints = array();
|
private static $constraints = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -72,8 +72,12 @@ class VersionParser extends SemverVersionParser
|
||||||
*/
|
*/
|
||||||
public static function isUpgrade($normalizedFrom, $normalizedTo)
|
public static function isUpgrade($normalizedFrom, $normalizedTo)
|
||||||
{
|
{
|
||||||
$normalizedFrom = str_replace(array('dev-master', 'dev-trunk', 'dev-default'), VersionParser::DEV_MASTER_ALIAS, $normalizedFrom);
|
if ($normalizedFrom === $normalizedTo) {
|
||||||
$normalizedTo = str_replace(array('dev-master', 'dev-trunk', 'dev-default'), VersionParser::DEV_MASTER_ALIAS, $normalizedTo);
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$normalizedFrom = str_replace(array('dev-master', 'dev-trunk', 'dev-default'), VersionParser::DEFAULT_BRANCH_ALIAS, $normalizedFrom);
|
||||||
|
$normalizedTo = str_replace(array('dev-master', 'dev-trunk', 'dev-default'), VersionParser::DEFAULT_BRANCH_ALIAS, $normalizedTo);
|
||||||
|
|
||||||
if (substr($normalizedFrom, 0, 4) === 'dev-' || substr($normalizedTo, 0, 4) === 'dev-') {
|
if (substr($normalizedFrom, 0, 4) === 'dev-' || substr($normalizedTo, 0, 4) === 'dev-') {
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -596,8 +596,8 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
|
||||||
if (!isset($versionsToLoad[$version['uid']])) {
|
if (!isset($versionsToLoad[$version['uid']])) {
|
||||||
if (!isset($version['version_normalized'])) {
|
if (!isset($version['version_normalized'])) {
|
||||||
$version['version_normalized'] = $this->versionParser->normalize($version['version']);
|
$version['version_normalized'] = $this->versionParser->normalize($version['version']);
|
||||||
} elseif ($version['version_normalized'] === VersionParser::DEV_MASTER_ALIAS) {
|
} elseif ($version['version_normalized'] === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
// handling of existing repos which need to remain composer v1 compatible, in case the version_normalized contained VersionParser::DEV_MASTER_ALIAS, we renormalize it
|
// handling of existing repos which need to remain composer v1 compatible, in case the version_normalized contained VersionParser::DEFAULT_BRANCH_ALIAS, we renormalize it
|
||||||
$version['version_normalized'] = $this->versionParser->normalize($version['version']);
|
$version['version_normalized'] = $this->versionParser->normalize($version['version']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -717,8 +717,8 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
|
||||||
foreach ($versions as $version) {
|
foreach ($versions as $version) {
|
||||||
if (!isset($version['version_normalized'])) {
|
if (!isset($version['version_normalized'])) {
|
||||||
$version['version_normalized'] = $repo->versionParser->normalize($version['version']);
|
$version['version_normalized'] = $repo->versionParser->normalize($version['version']);
|
||||||
} elseif ($version['version_normalized'] === VersionParser::DEV_MASTER_ALIAS) {
|
} elseif ($version['version_normalized'] === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
// handling of existing repos which need to remain composer v1 compatible, in case the version_normalized contained VersionParser::DEV_MASTER_ALIAS, we renormalize it
|
// handling of existing repos which need to remain composer v1 compatible, in case the version_normalized contained VersionParser::DEFAULT_BRANCH_ALIAS, we renormalize it
|
||||||
$version['version_normalized'] = $repo->versionParser->normalize($version['version']);
|
$version['version_normalized'] = $repo->versionParser->normalize($version['version']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -306,7 +306,7 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure branch packages have a dev flag
|
// make sure branch packages have a dev flag
|
||||||
if ('dev-' === substr($parsedBranch, 0, 4) || VersionParser::DEV_MASTER_ALIAS === $parsedBranch) {
|
if ('dev-' === substr($parsedBranch, 0, 4) || VersionParser::DEFAULT_BRANCH_ALIAS === $parsedBranch) {
|
||||||
$version = 'dev-' . $branch;
|
$version = 'dev-' . $branch;
|
||||||
} else {
|
} else {
|
||||||
$prefix = substr($branch, 0, 1) === 'v' ? 'v' : '';
|
$prefix = substr($branch, 0, 1) === 'v' ? 'v' : '';
|
||||||
|
|
|
@ -3,10 +3,10 @@ Update mirrors updates URLs for all packages if they have changed without updati
|
||||||
|
|
||||||
a/a is dev and gets everything updated as it updates to a new ref
|
a/a is dev and gets everything updated as it updates to a new ref
|
||||||
b/b is a tag and gets everything updated by updating the package URL directly
|
b/b is a tag and gets everything updated by updating the package URL directly
|
||||||
c/c is a tag and not whitelisted and gets the new URL but keeps its old ref
|
c/c is a tag and not allowlisted for update and gets the new URL but keeps its old ref
|
||||||
d/d is dev but with a #ref so it should get URL updated but not the reference
|
d/d is dev but with a #ref so it should get URL updated but not the reference
|
||||||
e/e is dev and newly installed with a #ref so it should get the correct URL but with the #111 ref
|
e/e is dev and newly installed with a #ref so it should get the correct URL but with the #111 ref
|
||||||
e/e is dev but not whitelisted and gets the new URL but keeps its old ref
|
e/e is dev but not allowlisted for update and gets the new URL but keeps its old ref
|
||||||
g/g is dev and installed in a different ref than the #ref, so it gets updated and gets the new URL but not the new ref
|
g/g is dev and installed in a different ref than the #ref, so it gets updated and gets the new URL but not the new ref
|
||||||
--COMPOSER--
|
--COMPOSER--
|
||||||
{
|
{
|
||||||
|
|
|
@ -49,9 +49,9 @@ class VersionParserTest extends TestCase
|
||||||
return array(
|
return array(
|
||||||
array('0.9.0.0', '1.0.0.0', true),
|
array('0.9.0.0', '1.0.0.0', true),
|
||||||
array('1.0.0.0', '0.9.0.0', false),
|
array('1.0.0.0', '0.9.0.0', false),
|
||||||
array('1.0.0.0', VersionParser::DEV_MASTER_ALIAS, true),
|
array('1.0.0.0', VersionParser::DEFAULT_BRANCH_ALIAS, true),
|
||||||
array(VersionParser::DEV_MASTER_ALIAS, VersionParser::DEV_MASTER_ALIAS, true),
|
array(VersionParser::DEFAULT_BRANCH_ALIAS, VersionParser::DEFAULT_BRANCH_ALIAS, true),
|
||||||
array(VersionParser::DEV_MASTER_ALIAS, '1.0.0.0', false),
|
array(VersionParser::DEFAULT_BRANCH_ALIAS, '1.0.0.0', false),
|
||||||
array('1.0.0.0', 'dev-foo', true),
|
array('1.0.0.0', 'dev-foo', true),
|
||||||
array('dev-foo', 'dev-foo', true),
|
array('dev-foo', 'dev-foo', true),
|
||||||
array('dev-foo', '1.0.0.0', true),
|
array('dev-foo', '1.0.0.0', true),
|
||||||
|
|
Loading…
Reference in New Issue