Эх сурвалжийг харах

Merge pull request #4989 from naderman/t/fix-self-reference-transaction-root

Ignore self references when anlaysing independent root requirements
Jordi Boggiano 9 жил өмнө
parent
commit
76450cc2a1

+ 3 - 1
src/Composer/DependencyResolver/Transaction.php

@@ -165,7 +165,9 @@ class Transaction
                 $possibleRequires = $this->pool->whatProvides($link->getTarget(), $link->getConstraint());
 
                 foreach ($possibleRequires as $require) {
-                    unset($roots[$require->id]);
+                    if ($require !== $package) {
+                        unset($roots[$require->id]);
+                    }
                 }
             }
         }

+ 36 - 0
tests/Composer/Test/Fixtures/installer/circular-dependency2.test

@@ -0,0 +1,36 @@
+--TEST--
+Circular dependencies are possible between packages
+--COMPOSER--
+{
+    "name": "root",
+    "version": "dev-master",
+    "require": {
+        "require/itself": "1.0.0",
+        "regular/pkg": "1.0.0"
+    },
+    "repositories": [
+        {
+            "type": "package",
+            "package": [
+                {
+                    "name": "require/itself",
+                    "version": "1.0.0",
+                    "source": { "reference": "some.branch", "type": "git", "url": "" },
+                    "require": {
+                        "require/itself": "1.0.0"
+                    }
+                },
+                {
+                    "name": "regular/pkg",
+                    "version": "1.0.0",
+                    "source": { "reference": "some.branch", "type": "git", "url": "" }
+                }
+            ]
+        }
+    ]
+}
+--RUN--
+update -v
+--EXPECT--
+Installing require/itself (1.0.0)
+Installing regular/pkg (1.0.0)