Browse Source

Fix version guessing regression and a few other issues, fixes #7127

Jordi Boggiano 7 years ago
parent
commit
9041622b86

+ 1 - 11
src/Composer/Package/Version/VersionGuesser.php

@@ -184,7 +184,7 @@ class VersionGuesser
             $isFeatureBranch = 0 === strpos($version, 'dev-');
 
             if ('9999999-dev' === $version) {
-                $version = 'dev-' . $branch;
+                return array('version' => $version, 'commit' => null, 'pretty_version' => 'dev-'.$branch);
             }
 
             if (!$isFeatureBranch) {
@@ -240,9 +240,6 @@ class VersionGuesser
                     $length = strlen($output);
                     $version = $this->versionParser->normalizeBranch($candidate);
                     $prettyVersion = 'dev-' . $match[1];
-                    if ('9999999-dev' === $version) {
-                        $version = $prettyVersion;
-                    }
                 }
             }
         }
@@ -260,10 +257,6 @@ class VersionGuesser
             $branch = trim($output);
             $version = $this->versionParser->normalizeBranch($branch);
             $prettyVersion = 'dev-' . $branch;
-
-            if ('9999999-dev' === $version) {
-                $version = $prettyVersion;
-            }
         }
 
         // try to fetch current version from fossil tags
@@ -295,9 +288,6 @@ class VersionGuesser
                     // we are in a branches path
                     $version = $this->versionParser->normalizeBranch($matches[3]);
                     $prettyVersion = 'dev-' . $matches[3];
-                    if ('9999999-dev' === $version) {
-                        $version = $prettyVersion;
-                    }
 
                     return array('version' => $version, 'commit' => '', 'pretty_version' => $prettyVersion);
                 }

+ 1 - 1
src/Composer/Repository/PathRepository.php

@@ -155,7 +155,7 @@ class PathRepository extends ArrayRepository implements ConfigurableRepositoryIn
 
             if (!isset($package['version'])) {
                 $versionData = $this->versionGuesser->guessVersion($package, $path);
-                $package['version'] = $versionData['version'] ?: 'dev-master';
+                $package['version'] = $versionData['pretty_version'] ?: 'dev-master';
             }
 
             $output = '';

+ 2 - 1
tests/Composer/Test/Package/Version/VersionGuesserTest.php

@@ -89,7 +89,8 @@ class VersionGuesserTest extends TestCase
         $guesser = new VersionGuesser($config, $executor, new VersionParser());
         $versionArray = $guesser->guessVersion(array(), 'dummy/path');
 
-        $this->assertEquals('dev-' . $branch, $versionArray['version']);
+        $this->assertEquals("9999999-dev", $versionArray['version']);
+        $this->assertEquals("dev-".$branch, $versionArray['pretty_version']);
         $this->assertEmpty($versionArray['commit']);
     }