Infer stability flags for requirements that have an explicit version required of a lower stability

main
Jordi Boggiano 12 years ago
parent fabf5c2f6d
commit a3018c43eb

@ -119,6 +119,7 @@ class RootPackageLoader extends ArrayLoader
{
$stabilities = BasePackage::$stabilities;
foreach ($requires as $reqName => $reqVersion) {
// parse explicit stability flags
if (preg_match('{^[^,\s]*?@('.implode('|', $stabilities).')$}i', $reqVersion, $match)) {
$name = strtolower($reqName);
$stability = array_search(VersionParser::normalizeStability($match[1]), $stabilities);
@ -127,6 +128,18 @@ class RootPackageLoader extends ArrayLoader
continue;
}
$stabilityFlags[$name] = $stability;
continue;
}
// infer flags for requirements that have an explicit -dev or -beta version specified for example
if (preg_match('{^[^,\s@]+$}', $reqVersion) && 'stable' !== ($stabilityName = VersionParser::parseStability($reqVersion))) {
$name = strtolower($reqName);
$stability = array_search($stabilityName, $stabilities);
if (isset($stabilityFlags[$name]) && $stabilityFlags[$name] > $stability) {
continue;
}
$stabilityFlags[$name] = $stability;
}
}

Loading…
Cancel
Save