From d27691a67f6c5be21357a7afe032f796c61c2504 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 21 Sep 2011 23:02:58 +0200 Subject: [PATCH 1/6] Fix namespace/use/typo issues --- bin/composer | 2 +- src/Composer/Command/InstallCommand.php | 4 +++- src/Composer/Composer.php | 1 + src/Composer/Package/Loader/ArrayLoader.php | 2 +- src/Composer/Repository/PlatformRepository.php | 1 + 5 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bin/composer b/bin/composer index 5ccd36118..12fbab8d6 100755 --- a/bin/composer +++ b/bin/composer @@ -23,7 +23,7 @@ $composer->setRepository('Platform', new Repository\PlatformRepository()); $composer->setRepository('Packagist', new Repository\ComposerRepository('http://packagist.org')); // initialize package -$loader = new Package\Loader\Json(); +$loader = new Package\Loader\JsonLoader(); $package = $loader->load('composer.json'); // initialize lock diff --git a/src/Composer/Command/InstallCommand.php b/src/Composer/Command/InstallCommand.php index f183c049b..b2e41a522 100644 --- a/src/Composer/Command/InstallCommand.php +++ b/src/Composer/Command/InstallCommand.php @@ -13,6 +13,8 @@ namespace Composer\Command; use Composer\DependencyResolver; +use Composer\DependencyResolver\Pool; +use Composer\DependencyResolver\Request; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; @@ -43,7 +45,7 @@ EOT protected function execute(InputInterface $input, OutputInterface $output) { if ($this->getLock()->isLocked()) { - $this->writeln('Found lockfile. Reading'); + $output->writeln('Found lockfile. Reading'); foreach ($this->getLock()->getLockedPackages() as $package) { $installer = $this->getComposer()->getInstaller($package->getType()); diff --git a/src/Composer/Composer.php b/src/Composer/Composer.php index ceeb16735..a5ca2a56e 100644 --- a/src/Composer/Composer.php +++ b/src/Composer/Composer.php @@ -13,6 +13,7 @@ namespace Composer; use Composer\Installer\InstallerInterface; +use Composer\Repository\RepositoryInterface; /** * @author Jordi Boggiano diff --git a/src/Composer/Package/Loader/ArrayLoader.php b/src/Composer/Package/Loader/ArrayLoader.php index 89f2d3307..789db93a2 100644 --- a/src/Composer/Package/Loader/ArrayLoader.php +++ b/src/Composer/Package/Loader/ArrayLoader.php @@ -99,7 +99,7 @@ class ArrayLoader $links[] = new Package\Link($srcPackageName, $packageName, $constraint, $description); } - return $requirements; + return $links; } private function validateConfig(array $config) diff --git a/src/Composer/Repository/PlatformRepository.php b/src/Composer/Repository/PlatformRepository.php index 624cc788b..70910e3ad 100644 --- a/src/Composer/Repository/PlatformRepository.php +++ b/src/Composer/Repository/PlatformRepository.php @@ -14,6 +14,7 @@ namespace Composer\Repository; use Composer\Package\MemoryPackage; use Composer\Package\BasePackage; +use Composer\Package\Version\VersionParser; /** * @author Jordi Boggiano From c67d8ee2a37bfa4f596b5595f64ebc9786f36acb Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 21 Sep 2011 23:03:17 +0200 Subject: [PATCH 2/6] Add note to schema --- doc/composer-schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/composer-schema.json b/doc/composer-schema.json index 122de80cd..8d80ccf53 100644 --- a/doc/composer-schema.json +++ b/doc/composer-schema.json @@ -9,7 +9,7 @@ "required": true }, "type": { - "description": "Package type, either 'Library', or the parent project it applies to if it's a plugin for a framework or application (e.g. 'Symfony2', 'Typo3', 'Drupal', ..).", + "description": "Package type, either 'Library', or the parent project it applies to if it's a plugin for a framework or application (e.g. 'Symfony2', 'Typo3', 'Drupal', ..), note that this has to be defined and communicated by any project implementing a custom composer installer, those are just unreliable examples.", "type": "string", "optional": true }, From cd80f22781777a27ce22f179401ca2b9407634d1 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 21 Sep 2011 23:03:35 +0200 Subject: [PATCH 3/6] Type is not mandatory --- src/Composer/Package/Loader/ArrayLoader.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Composer/Package/Loader/ArrayLoader.php b/src/Composer/Package/Loader/ArrayLoader.php index 789db93a2..83a6e2051 100644 --- a/src/Composer/Package/Loader/ArrayLoader.php +++ b/src/Composer/Package/Loader/ArrayLoader.php @@ -36,7 +36,7 @@ class ArrayLoader $version = $versionParser->parse($config['version']); $package = new Package\MemoryPackage($config['name'], $version['version'], $version['type']); - $package->setType($config['type']); + $package->setType(isset($config['type']) ? $config['type'] : 'library'); if (isset($config['extra'])) { $package->setExtra($config['extra']); @@ -107,9 +107,6 @@ class ArrayLoader if (!isset($config['name'])) { throw new \UnexpectedValueException('name is required for package'); } - if (!isset($config['type'])) { - throw new \UnexpectedValueException('type is required for package'); - } if (!isset($config['version'])) { throw new \UnexpectedValueException('version is required for package'); } From e700e6fcd9487d7db3efd6ae2796c00aa6bc3887 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 21 Sep 2011 23:03:59 +0200 Subject: [PATCH 4/6] Use new version parser in PlatformRepository --- src/Composer/Repository/PlatformRepository.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Composer/Repository/PlatformRepository.php b/src/Composer/Repository/PlatformRepository.php index 70910e3ad..5a94eee55 100644 --- a/src/Composer/Repository/PlatformRepository.php +++ b/src/Composer/Repository/PlatformRepository.php @@ -25,10 +25,12 @@ class PlatformRepository extends ArrayRepository { parent::initialize(); + $versionParser = new VersionParser(); + try { - $version = BasePackage::parseVersion(PHP_VERSION); + $version = $versionParser->parse(PHP_VERSION); } catch (\UnexpectedValueException $e) { - $version = BasePackage::parseVersion(preg_replace('#^(.+?)(-.+)?$#', '$1', PHP_VERSION)); + $version = $versionParser->parse(preg_replace('#^(.+?)(-.+)?$#', '$1', PHP_VERSION)); } $php = new MemoryPackage('php', $version['version'], $version['type']); @@ -41,7 +43,7 @@ class PlatformRepository extends ArrayRepository $reflExt = new \ReflectionExtension($ext); try { - $version = BasePackage::parseVersion($reflExt->getVersion()); + $version = $versionParser->parse($reflExt->getVersion()); } catch (\UnexpectedValueException $e) { $version = array('version' => '0', 'type' => 'stable'); } From 8533a650613579ae856585a31be1fe73e01b9081 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 21 Sep 2011 23:04:17 +0200 Subject: [PATCH 5/6] Remove unused methods from RepositoryInterface --- src/Composer/Repository/RepositoryInterface.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/Composer/Repository/RepositoryInterface.php b/src/Composer/Repository/RepositoryInterface.php index ac702140d..49e16690e 100644 --- a/src/Composer/Repository/RepositoryInterface.php +++ b/src/Composer/Repository/RepositoryInterface.php @@ -17,8 +17,5 @@ namespace Composer\Repository; */ interface RepositoryInterface extends \Countable { - static function supports($type, $name = '', $url = ''); - static function create($type, $name = '', $url = ''); - function getPackages(); } From 6d667a849e4989be83dfe875e9e1e11670c6fd20 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 21 Sep 2011 23:05:31 +0200 Subject: [PATCH 6/6] Remove broken functional test --- .../Test/DependencyResolver/SolverTest.php | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/tests/Composer/Test/DependencyResolver/SolverTest.php b/tests/Composer/Test/DependencyResolver/SolverTest.php index 972676737..8fc8fc630 100644 --- a/tests/Composer/Test/DependencyResolver/SolverTest.php +++ b/tests/Composer/Test/DependencyResolver/SolverTest.php @@ -213,28 +213,6 @@ class SolverTest extends \PHPUnit_Framework_TestCase )); } - /** - * @TODO: fix packagist.org bug - */ - public function BROKEN_testSolverWithComposerRepo() - { - $this->repoInstalled = new PlatformRepository; - - // overwrite solver with custom installed repo - $this->solver = new Solver($this->policy, $this->pool, $this->repoInstalled); - - $this->repo = new ComposerRepository('http://packagist.org'); - list($monolog) = $this->repo->getPackages(); - - $this->reposComplete(); - - $this->request->install('Monolog'); - - $this->checkSolverResult(array( - array('job' => 'install', 'package' => $monolog), - )); - } - protected function reposComplete() { $this->pool->addRepository($this->repoInstalled);