Procházet zdrojové kódy

Backport update packagist default repo to be packagist.org

Jordi Boggiano před 8 roky
rodič
revize
91e7372c6e

+ 2 - 2
doc/05-repositories.md

@@ -312,7 +312,7 @@ VCS repository provides `dist`s for them that fetch the packages as zips.
 * **BitBucket:** [bitbucket.org](https://bitbucket.org) (Git and Mercurial)
 * **BitBucket:** [bitbucket.org](https://bitbucket.org) (Git and Mercurial)
 
 
 The VCS driver to be used is detected automatically based on the URL. However,
 The VCS driver to be used is detected automatically based on the URL. However,
-should you need to specify one for whatever reason, you can use `fossil`, `git`, 
+should you need to specify one for whatever reason, you can use `fossil`, `git`,
 `svn` or `hg` as the repository type instead of `vcs`.
 `svn` or `hg` as the repository type instead of `vcs`.
 
 
 If you set the `no-api` key to `true` on a github repository it will clone the
 If you set the `no-api` key to `true` on a github repository it will clone the
@@ -686,7 +686,7 @@ You can disable the default Packagist repository by adding this to your
 {
 {
     "repositories": [
     "repositories": [
         {
         {
-            "packagist": false
+            "packagist.org": false
         }
         }
     ]
     ]
 }
 }

+ 17 - 4
src/Composer/Config.php

@@ -67,7 +67,7 @@ class Config
     );
     );
 
 
     public static $defaultRepositories = array(
     public static $defaultRepositories = array(
-        'packagist' => array(
+        'packagist.org' => array(
             'type' => 'composer',
             'type' => 'composer',
             'url' => 'https?://packagist.org',
             'url' => 'https?://packagist.org',
             'allow_ssl_downgrade' => true,
             'allow_ssl_downgrade' => true,
@@ -157,13 +157,13 @@ class Config
             foreach ($newRepos as $name => $repository) {
             foreach ($newRepos as $name => $repository) {
                 // disable a repository by name
                 // disable a repository by name
                 if (false === $repository) {
                 if (false === $repository) {
-                    unset($this->repositories[$name]);
+                    $this->disableRepoByName($name);
                     continue;
                     continue;
                 }
                 }
 
 
                 // disable a repository with an anonymous {"name": false} repo
                 // disable a repository with an anonymous {"name": false} repo
                 if (is_array($repository) && 1 === count($repository) && false === current($repository)) {
                 if (is_array($repository) && 1 === count($repository) && false === current($repository)) {
-                    unset($this->repositories[key($repository)]);
+                    $this->disableRepoByName(key($repository));
                     continue;
                     continue;
                 }
                 }
 
 
@@ -171,7 +171,11 @@ class Config
                 if (is_int($name)) {
                 if (is_int($name)) {
                     $this->repositories[] = $repository;
                     $this->repositories[] = $repository;
                 } else {
                 } else {
-                    $this->repositories[$name] = $repository;
+                    if ($name === 'packagist') { // BC support for default "packagist" named repo
+                        $this->repositories[$name . '.org'] = $repository;
+                    } else {
+                        $this->repositories[$name] = $repository;
+                    }
                 }
                 }
             }
             }
             $this->repositories = array_reverse($this->repositories, true);
             $this->repositories = array_reverse($this->repositories, true);
@@ -404,6 +408,15 @@ class Config
         return false;
         return false;
     }
     }
 
 
+    private function disableRepoByName($name)
+    {
+        if (isset($this->repositories[$name])) {
+            unset($this->repositories[$name]);
+        } else if ($name === 'packagist') { // BC support for default "packagist" named repo
+            unset($this->repositories['packagist.org']);
+        }
+    }
+
     /**
     /**
      * Validates that the passed URL is allowed to be used by current config, or throws an exception.
      * Validates that the passed URL is allowed to be used by current config, or throws an exception.
      *
      *

+ 2 - 2
tests/Composer/Test/Json/JsonManipulatorTest.php

@@ -292,7 +292,7 @@ class JsonManipulatorTest extends \PHPUnit_Framework_TestCase
     },
     },
     "repositories": [
     "repositories": [
         {
         {
-            "packagist": false
+            "packagist.org": false
         },
         },
         {
         {
             "type": "package",
             "type": "package",
@@ -773,7 +773,7 @@ class JsonManipulatorTest extends \PHPUnit_Framework_TestCase
     },
     },
     "repositories": [
     "repositories": [
         {
         {
-            "packagist": false
+            "packagist.org": false
         },
         },
         {
         {
             "type": "package",
             "type": "package",