Merge remote-tracking branch 'PReimers/issue-8004'
commit
717c21b78a
|
@ -49,6 +49,10 @@ class ValidatingArrayLoader implements LoaderInterface
|
|||
$this->warnings = array();
|
||||
$this->config = $config;
|
||||
|
||||
if ($err = self::hasPackageNamingError($config['name'])) {
|
||||
$this->warnings[] = 'Deprecation warning: Your package name '.$err.' Make sure you fix this as Composer 2.0 will error.';
|
||||
}
|
||||
|
||||
if ($this->strictName) {
|
||||
$this->validateRegex('name', '[A-Za-z0-9][A-Za-z0-9_.-]*/[A-Za-z0-9][A-Za-z0-9_.-]*', true);
|
||||
} else {
|
||||
|
@ -195,7 +199,9 @@ class ValidatingArrayLoader implements LoaderInterface
|
|||
foreach (array_keys(BasePackage::$supportedLinkTypes) as $linkType) {
|
||||
if ($this->validateArray($linkType) && isset($this->config[$linkType])) {
|
||||
foreach ($this->config[$linkType] as $package => $constraint) {
|
||||
if (!preg_match('{^[A-Za-z0-9_./-]+$}', $package)) {
|
||||
if ($err = self::hasPackageNamingError($package, true)) {
|
||||
$this->warnings[] = 'Deprecation warning: '.$linkType.'.'.$err.' Make sure you fix this as Composer 2.0 will error.';
|
||||
} elseif (!preg_match('{^[A-Za-z0-9_./-]+$}', $package)) {
|
||||
$this->warnings[] = $linkType.'.'.$package.' : invalid key, package names must be strings containing only [A-Za-z0-9_./-]';
|
||||
}
|
||||
if (!is_string($constraint)) {
|
||||
|
|
|
@ -298,6 +298,30 @@ class ValidatingArrayLoaderTest extends TestCase
|
|||
'homepage : invalid value (foo:bar), must be an http/https URL',
|
||||
),
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'name' => 'foo/bar.json',
|
||||
),
|
||||
array(
|
||||
'Deprecation warning: Your package name foo/bar.json is invalid, package names can not end in .json, consider renaming it or perhaps using a -json suffix instead. Make sure you fix this as Composer 2.0 will error.',
|
||||
),
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'name' => 'com1/foo',
|
||||
),
|
||||
array(
|
||||
'Deprecation warning: Your package name com1/foo is reserved, package and vendor names can not match any of: nul, con, prn, aux, com1, com2, com3, com4, com5, com6, com7, com8, com9, lpt1, lpt2, lpt3, lpt4, lpt5, lpt6, lpt7, lpt8, lpt9. Make sure you fix this as Composer 2.0 will error.',
|
||||
),
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'name' => 'Foo/Bar',
|
||||
),
|
||||
array(
|
||||
'Deprecation warning: Your package name Foo/Bar is invalid, it should not contain uppercase characters. We suggest using foo/bar instead. Make sure you fix this as Composer 2.0 will error.',
|
||||
),
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'name' => 'foo/bar',
|
||||
|
@ -337,6 +361,18 @@ class ValidatingArrayLoaderTest extends TestCase
|
|||
),
|
||||
false,
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'name' => 'foo/bar',
|
||||
'require' => array(
|
||||
'Foo/Baz' => '^1.0',
|
||||
),
|
||||
),
|
||||
array(
|
||||
'Deprecation warning: require.Foo/Baz is invalid, it should not contain uppercase characters. Please use foo/baz instead. Make sure you fix this as Composer 2.0 will error.',
|
||||
),
|
||||
false,
|
||||
),
|
||||
array(
|
||||
array(
|
||||
'name' => 'foo/bar',
|
||||
|
|
Loading…
Reference in New Issue