Skip to content

Instantly share code, notes, and snippets.

@dzuelke
Created July 7, 2014 17:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dzuelke/7f69765036f1e4bceaa7 to your computer and use it in GitHub Desktop.
Save dzuelke/7f69765036f1e4bceaa7 to your computer and use it in GitHub Desktop.
diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php
index fac7132..7b62242 100644
--- a/src/Composer/Installer.php
+++ b/src/Composer/Installer.php
@@ -647,7 +647,7 @@ class Installer
private function createPolicy()
{
- return new DefaultPolicy($this->package->getPreferStable());
+ return new DefaultPolicy((!$this->update && $this->locker->isLocked()) ? $this->locker->getPreferStable() : $this->package->getPreferStable());
}
private function createRequest(Pool $pool, RootPackageInterface $rootPackage, PlatformRepository $platformRepo)
diff --git a/src/Composer/Package/Locker.php b/src/Composer/Package/Locker.php
index 2aa3618..bee9552 100644
--- a/src/Composer/Package/Locker.php
+++ b/src/Composer/Package/Locker.php
@@ -173,6 +173,13 @@ class Locker
return isset($lockData['stability-flags']) ? $lockData['stability-flags'] : array();
}
+ public function getPreferStable()
+ {
+ $lockData = $this->getLockData();
+
+ return isset($lockData['prefer-stable']) ? $lockData['prefer-stable'] : false;
+ }
+
public function getAliases()
{
$lockData = $this->getLockData();
@@ -206,7 +213,7 @@ class Locker
*
* @return bool
*/
- public function setLockData(array $packages, $devPackages, array $platformReqs, $platformDevReqs, array $aliases, $minimumStability, array $stabilityFlags)
+ public function setLockData(array $packages, $devPackages, array $platformReqs, $platformDevReqs, array $aliases, $minimumStability, array $stabilityFlags, $preferStable)
{
$lock = array(
'_readme' => array('This file locks the dependencies of your project to a known state',
@@ -218,6 +225,7 @@ class Locker
'aliases' => array(),
'minimum-stability' => $minimumStability,
'stability-flags' => $stabilityFlags,
+ 'prefer-stable' => $preferStable,
);
foreach ($aliases as $package => $versions) {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment