Browse Source

Merge branch '1.4'

Jordi Boggiano 8 years ago
parent
commit
74f18133da
2 changed files with 16 additions and 0 deletions
  1. 1 0
      CHANGELOG.md
  2. 15 0
      src/Composer/Config/JsonConfigSource.php

+ 1 - 0
CHANGELOG.md

@@ -520,6 +520,7 @@
 
   * Initial release
 
+[1.4.1]: https://github.com/composer/composer/compare/1.4.0...1.4.1
 [1.4.0]: https://github.com/composer/composer/compare/1.3.3...1.4.0
 [1.3.3]: https://github.com/composer/composer/compare/1.3.2...1.3.3
 [1.3.2]: https://github.com/composer/composer/compare/1.3.1...1.3.2

+ 15 - 0
src/Composer/Config/JsonConfigSource.php

@@ -60,6 +60,21 @@ class JsonConfigSource implements ConfigSourceInterface
     public function addRepository($name, $config)
     {
         $this->manipulateJson('addRepository', $name, $config, function (&$config, $repo, $repoConfig) {
+            // if converting from an array format to hashmap format, and there is a {"packagist.org":false} repo, we have
+            // to convert it to "packagist.org": false key on the hashmap otherwise it fails schema validation
+            if (isset($config['repositories'])) {
+                foreach ($config['repositories'] as $index => $val) {
+                    if ($index === $repo) {
+                        continue;
+                    }
+                    if (is_numeric($index) && ($val === array('packagist' => false) || $val === array('packagist.org' => false))) {
+                        unset($config['repositories'][$index]);
+                        $config['repositories']['packagist.org'] = false;
+                        break;
+                    }
+                }
+            }
+
             $config['repositories'][$repo] = $repoConfig;
         });
     }