1
0
Fork 0

Fix parsing "branch-version"

pull/9280/head
Nicolas Grekas 2020-10-13 15:16:39 +02:00
parent fec3c6a4e9
commit 4feed8b85c
3 changed files with 17 additions and 4 deletions

View File

@ -82,7 +82,7 @@ class RootPackageLoader extends ArrayLoader
$commit = null; $commit = null;
if (isset($config['extra']['branch-version'])) { if (isset($config['extra']['branch-version'])) {
$config['version'] = preg_replace('{(\.x)?(-dev)?$}', '.x-dev', $config['extra']['branch-version']); $config['version'] = preg_replace('{(\.x)?(-dev)?$}', '', $config['extra']['branch-version']).'.x-dev';
} elseif (getenv('COMPOSER_ROOT_VERSION')) { } elseif (getenv('COMPOSER_ROOT_VERSION')) {
// override with env var if available // override with env var if available
$config['version'] = getenv('COMPOSER_ROOT_VERSION'); $config['version'] = getenv('COMPOSER_ROOT_VERSION');

View File

@ -167,7 +167,7 @@ class PathRepository extends ArrayRepository implements ConfigurableRepositoryIn
// use the branch-version as the package version if available // use the branch-version as the package version if available
if (!isset($package['version']) && isset($package['extra']['branch-version'])) { if (!isset($package['version']) && isset($package['extra']['branch-version'])) {
$package['version'] = preg_replace('{(\.x)?(-dev)?$}', '.x-dev', $package['extra']['branch-version']); $package['version'] = preg_replace('{(\.x)?(-dev)?$}', '', $package['extra']['branch-version']).'.x-dev';
} }
// carry over the root package version if this path repo is in the same git repository as root package // carry over the root package version if this path repo is in the same git repository as root package

View File

@ -202,14 +202,27 @@ class RootPackageLoaderTest extends TestCase
$this->assertEquals("dev-latest-production", $package->getPrettyVersion()); $this->assertEquals("dev-latest-production", $package->getPrettyVersion());
} }
public function testLoadExtraBranchVersion() /**
* @dataProvider provideExtraBranchVersion
*/
public function testLoadExtraBranchVersion($branchVersion)
{ {
$package = $this->loadPackage(array( $package = $this->loadPackage(array(
'extra' => array( 'extra' => array(
'branch-version' => '1.2', 'branch-version' => $branchVersion,
), ),
)); ));
$this->assertEquals('1.2.x-dev', $package->getPrettyVersion()); $this->assertEquals('1.2.x-dev', $package->getPrettyVersion());
} }
public function provideExtraBranchVersion()
{
return array(
array('1.2'),
array('1.2.x'),
array('1.2-dev'),
array('1.2.x-dev'),
);
}
} }