From 896d801a3080b2ebefa1b2e09f49093dc00f1f9d Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Wed, 12 Sep 2018 12:01:43 -0400 Subject: [PATCH 01/43] Fix: Bitbucket getChangeDate throws exception for branches containing a slash --- src/Composer/Repository/Vcs/BitbucketDriver.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Composer/Repository/Vcs/BitbucketDriver.php b/src/Composer/Repository/Vcs/BitbucketDriver.php index 6361d6a04..64a954d43 100644 --- a/src/Composer/Repository/Vcs/BitbucketDriver.php +++ b/src/Composer/Repository/Vcs/BitbucketDriver.php @@ -189,6 +189,13 @@ abstract class BitbucketDriver extends VcsDriver return $this->fallbackDriver->getFileContent($file, $identifier); } + if (strpos($identifier, '/') !== false) { + $branches = $this->getBranches(); + if (isset($branches[$identifier])) { + $identifier = $branches[$identifier]; + } + } + $resource = sprintf( 'https://api.bitbucket.org/1.0/repositories/%s/%s/raw/%s/%s', $this->owner, From 0124e7b553b265c625800ef3035e4c7ea1849336 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Thu, 13 Sep 2018 09:27:30 +0200 Subject: [PATCH 02/43] Revert "add removePackage() to RepositoryInterface" This reverts commit cfb0d33c4525d30cd5c283d0c6ac4b389e8b3cd7. Fixes #7634 --- src/Composer/Repository/RepositoryInterface.php | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Composer/Repository/RepositoryInterface.php b/src/Composer/Repository/RepositoryInterface.php index d0ceb905a..9a2aaf3b5 100644 --- a/src/Composer/Repository/RepositoryInterface.php +++ b/src/Composer/Repository/RepositoryInterface.php @@ -71,11 +71,4 @@ interface RepositoryInterface extends \Countable * @return array[] an array of array('name' => '...', 'description' => '...') */ public function search($query, $mode = 0); - - /** - * Removes a package from the registered packages list. - * - * @param PackageInterface $package - */ - public function removePackage(PackageInterface $package); } From 14c6c2c99fcf11e822607d78f813eadbab215140 Mon Sep 17 00:00:00 2001 From: Nick Wilde Date: Sun, 16 Sep 2018 13:12:14 -0700 Subject: [PATCH 03/43] Allow plugin commands to be run from child folders as well as core commands --- src/Composer/Console/Application.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Composer/Console/Application.php b/src/Composer/Console/Application.php index a7cf26921..e6ff7da9d 100644 --- a/src/Composer/Console/Application.php +++ b/src/Composer/Console/Application.php @@ -16,6 +16,7 @@ use Composer\IO\NullIO; use Composer\Util\Platform; use Composer\Util\Silencer; use Symfony\Component\Console\Application as BaseApplication; +use Symfony\Component\Console\Exception\CommandNotFoundException; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; @@ -125,6 +126,9 @@ class Application extends BaseApplication if ($name = $this->getCommandName($input)) { try { $commandName = $this->find($name)->getName(); + } catch (CommandNotFoundException $e) { + // we'll check command validity again later after plugins are loaded + $commandName = false; } catch (\InvalidArgumentException $e) { } } From 4d86414dd1e094756d94b5f6b45ed69d514a61e8 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 17 Sep 2018 11:24:47 +0200 Subject: [PATCH 04/43] Use a case insenstive method to check that SHA384 is a supported openssl algorithm --- src/Composer/Command/SelfUpdateCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Composer/Command/SelfUpdateCommand.php b/src/Composer/Command/SelfUpdateCommand.php index 2641a922b..243755963 100644 --- a/src/Composer/Command/SelfUpdateCommand.php +++ b/src/Composer/Command/SelfUpdateCommand.php @@ -220,7 +220,7 @@ TAGSPUBKEY $pubkeyid = openssl_pkey_get_public($sigFile); $algo = defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'SHA384'; - if (!in_array('SHA384', openssl_get_md_methods())) { + if (!in_array('sha384', array_map('strtolower', openssl_get_md_methods()))) { throw new \RuntimeException('SHA384 is not supported by your openssl extension, could not verify the phar file integrity'); } $signature = json_decode($signature, true); From 0ca5c6342d95b40ef11dff720d50ad41bddece7f Mon Sep 17 00:00:00 2001 From: Christophe Coevoet Date: Wed, 26 Sep 2018 15:12:25 +0200 Subject: [PATCH 05/43] Fix the doc markup In *nix, the star needs to be part of the content, not of the markdown markup, and so it requires escaping. --- doc/03-cli.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/03-cli.md b/doc/03-cli.md index 0b46e04f5..0eed878e5 100644 --- a/doc/03-cli.md +++ b/doc/03-cli.md @@ -856,9 +856,9 @@ is a hidden, global (per-user on the machine) directory that is shared between all projects. By default it points to `C:\Users\\AppData\Roaming\Composer` on Windows -and `/Users//.composer` on OSX. On *nix systems that follow the [XDG Base +and `/Users//.composer` on OSX. On \*nix systems that follow the [XDG Base Directory Specifications](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html), -it points to `$XDG_CONFIG_HOME/composer`. On other *nix systems, it points to +it points to `$XDG_CONFIG_HOME/composer`. On other \*nix systems, it points to `/home//.composer`. #### COMPOSER_HOME/config.json From ed3aa1870cbcaf6ca223eca47c06770f37426143 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Thu, 27 Sep 2018 14:00:10 +0300 Subject: [PATCH 06/43] Replace OSX with macOS --- doc/00-intro.md | 6 +++--- doc/03-cli.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/00-intro.md b/doc/00-intro.md index 046fea8fe..e4af54c2c 100644 --- a/doc/00-intro.md +++ b/doc/00-intro.md @@ -40,9 +40,9 @@ To install packages from sources instead of simple zip archives, you will need git, svn, fossil or hg depending on how the package is version-controlled. Composer is multi-platform and we strive to make it run equally well on Windows, -Linux and OSX. +Linux and macOS. -## Installation - Linux / Unix / OSX +## Installation - Linux / Unix / macOS ### Downloading the Composer Executable @@ -100,7 +100,7 @@ Linux distributions. > **Note:** If the above fails due to permissions, you may need to run it again > with sudo. -> **Note:** On some versions of OSX the `/usr` directory does not exist by +> **Note:** On some versions of macOS the `/usr` directory does not exist by > default. If you receive the error "/usr/local/bin/composer: No such file or > directory" then you must create the directory manually before proceeding: > `mkdir -p /usr/local/bin`. diff --git a/doc/03-cli.md b/doc/03-cli.md index 0b46e04f5..372bea85a 100644 --- a/doc/03-cli.md +++ b/doc/03-cli.md @@ -856,7 +856,7 @@ is a hidden, global (per-user on the machine) directory that is shared between all projects. By default it points to `C:\Users\\AppData\Roaming\Composer` on Windows -and `/Users//.composer` on OSX. On *nix systems that follow the [XDG Base +and `/Users//.composer` on macOS. On *nix systems that follow the [XDG Base Directory Specifications](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html), it points to `$XDG_CONFIG_HOME/composer`. On other *nix systems, it points to `/home//.composer`. @@ -878,7 +878,7 @@ configuration in the project's `composer.json` always wins. The `COMPOSER_CACHE_DIR` var allows you to change the Composer cache directory, which is also configurable via the [`cache-dir`](06-config.md#cache-dir) option. -By default it points to `$COMPOSER_HOME/cache` on \*nix and OSX, and +By default it points to `$COMPOSER_HOME/cache` on \*nix and macOS, and `C:\Users\\AppData\Local\Composer` (or `%LOCALAPPDATA%/Composer`) on Windows. ### COMPOSER_PROCESS_TIMEOUT From add71388ca24572e2d9f959752b349273a15cfe3 Mon Sep 17 00:00:00 2001 From: "Kristof Ringleff, Fooman" Date: Fri, 21 Sep 2018 15:32:35 +1200 Subject: [PATCH 07/43] Add failing artifact --- .../artifacts/not-a-zip-with-zip-extension.zip | Bin 0 -> 126405 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip diff --git a/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip b/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip new file mode 100644 index 0000000000000000000000000000000000000000..562f032d469230f4c3b79801660e9a5a40d1e8e3 GIT binary patch literal 126405 zcmXtg2Q*yW`}OEUgdtiGWlTgbQ6sw1hG@}y3xX)oYjmUcgy=*>kKjf061@Zw5xqt4 zy?@8=TmQ9U5zEZI&OK*8``LRxBGgpm?-NiHKp>F&iV8>#2m}KTJ}jZQ;5#8Lg5BT~ zzLSEU3k1T&boYVbSs>vKfiOT6ky4tT8CymkuA1W~v#Zn3n?4*3Ah6?SpQF~A6df@M z7CRz!CEp2d1>pQV)kMmM%FByjVxmamiAEW#L*hl!l(Xwkv#u|hTr4EjBzf2RYkwPk zO&rJ+v)(x$s_mZ)XMk(wV3L24^a^@kivd34u(f`;`=a%@m5M2vHx`EZD&;vNHa;U1 zq5utCyY0Up%^Qgh(ddIE@N}_2Al=RyUQ;I?7)4HlY)(&tc;)(GL%TPe7SZp!JLQp> zYSOW2Xh=M}|C6a>oxevONE{Na`B*HAXbse4fzpRX?Q+9s^Jn`@HJWTG@u{h)
i ztXy0>ZB5c~&O;QjwxeTmYOlADnF-!%h8>s?%2-f$ZHC%Wa{ z@E}GmpFxon1Co;*#DYSS;YhO<(8^1}kkC+RDx&aSBaa!kg@`9vo^RHE=DP4x$1rp| zIE33F6iK_CGx!~*>xiv~GR}3)&CPYmaBvvOUM&)0WByv&k56Ed_upR#rx*XE$)@+q zuO!t~CpQSq=F}}oCY!bDwcpR(LVL58ALsw*!2>2}P!8BsA(A{~m`NiLt0a=BsHS)w zH7HvFDIu;H7G&@8`q%1Vg7@*pqjv|rPfXS)D&{n@Rv%hK%OKCHpb@-sECrqm?V+98 zW%`ej5WPsKlzOrP5*@&R&e33%su<&i#B-T6ms0VVwvKYQT)hR`0~?|{sjGp*HhM~4 zCli21CL)L+3{Rds(Ykpk89{n*j`g$b<@4!!XB-E^dWc|!9`x4#^!^vEL#`ffmSs^o z?!s|f9xg5w5x)!9WA%JF&W&G1W2$x&<=aSTf^cjSLUD09`Zs-b3MOQ0rlB^Xf92`E zC^vqPLNx9pu8R$e48e19SHxrU+!8b@@sonGG8qN8@$~Mbb#|s4)GV5JC+_c_stkBy zInyMM@!Ag?p^*5rwDp|i_n)`$85ttrN83|0i=!G5a{0`?iV>E}U(76L4!oADhzrfj zK8}C=`W5XhYOGQ*VWF%X?YcML))kC+!r0*ZxE#bI;=9VhCx0 zEH4b&+9F3BP9)|XKawAw#JTytJvBk*>z^eIbu#k({r$zlY=04lo2&ESR~lD*T|3!9 z1n^?Xdg=0(eNWN9yDhiP+XjwJ$BP@|CE;Kv)|r1J#l$;#1d+rIVvt6VVq}*

RSv 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 LdQa6Z_t^gc0>PFJ literal 0 HcmV?d00001 From bcf4e94e8a1bd6d2f82d8a232e59251c4880637b Mon Sep 17 00:00:00 2001 From: "Kristof Ringleff, Fooman" Date: Fri, 21 Sep 2018 15:51:38 +1200 Subject: [PATCH 08/43] Ensure opening the zip was successful before proceeding --- src/Composer/Repository/ArtifactRepository.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Composer/Repository/ArtifactRepository.php b/src/Composer/Repository/ArtifactRepository.php index 2383b2dd3..e987813f0 100644 --- a/src/Composer/Repository/ArtifactRepository.php +++ b/src/Composer/Repository/ArtifactRepository.php @@ -126,7 +126,11 @@ class ArtifactRepository extends ArrayRepository implements ConfigurableReposito private function getComposerInformation(\SplFileInfo $file) { $zip = new \ZipArchive(); - $zip->open($file->getPathname()); + $res = $zip->open($file->getPathname()); + + if ($res !== true) { + return false; + } if (0 == $zip->numFiles) { $zip->close(); From 2ed573b22dc60ab894df430af368332d04c8cafc Mon Sep 17 00:00:00 2001 From: "Kristof Ringleff, Fooman" Date: Mon, 24 Sep 2018 20:28:22 +1200 Subject: [PATCH 09/43] Combine open zip call with conditional --- src/Composer/Repository/ArtifactRepository.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Composer/Repository/ArtifactRepository.php b/src/Composer/Repository/ArtifactRepository.php index e987813f0..0184cb4d5 100644 --- a/src/Composer/Repository/ArtifactRepository.php +++ b/src/Composer/Repository/ArtifactRepository.php @@ -126,9 +126,7 @@ class ArtifactRepository extends ArrayRepository implements ConfigurableReposito private function getComposerInformation(\SplFileInfo $file) { $zip = new \ZipArchive(); - $res = $zip->open($file->getPathname()); - - if ($res !== true) { + if ($zip->open($file->getPathname()) !== true) { return false; } From 5f2eefb49b3658b50293481b643dc4346670fa3c Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Wed, 10 Oct 2018 14:09:42 +0200 Subject: [PATCH 10/43] Vcs Repository: add option to cache/reuse entire versions --- src/Composer/Repository/VcsRepository.php | 67 ++++++++++++++++--- .../Repository/VersionCacheInterface.php | 23 +++++++ 2 files changed, 80 insertions(+), 10 deletions(-) create mode 100644 src/Composer/Repository/VersionCacheInterface.php diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index 57639cdea..785b8534b 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -41,8 +41,10 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt private $drivers; /** @var VcsDriverInterface */ private $driver; + /** @var VersionCacheInterface */ + private $versionCache; - public function __construct(array $repoConfig, IOInterface $io, Config $config, EventDispatcher $dispatcher = null, array $drivers = null) + public function __construct(array $repoConfig, IOInterface $io, Config $config, EventDispatcher $dispatcher = null, array $drivers = null, VersionCacheInterface $versionCache = null) { parent::__construct(); $this->drivers = $drivers ?: array( @@ -64,6 +66,7 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt $this->verbose = $io->isVeryVerbose(); $this->config = $config; $this->repoConfig = $repoConfig; + $this->versionCache = $versionCache; } public function getRepoConfig() @@ -152,6 +155,13 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt // strip the release- prefix from tags if present $tag = str_replace('release-', '', $tag); + $cachedPackage = $this->getCachedPackageVersion($tag, $identifier, $verbose); + if ($cachedPackage) { + $this->addPackage($cachedPackage); + + continue; + } + if (!$parsedTag = $this->validateTag($tag)) { if ($verbose) { $this->io->writeError('Skipped tag '.$tag.', invalid tag name'); @@ -235,6 +245,21 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt continue; } + // make sure branch packages have a dev flag + if ('dev-' === substr($parsedBranch, 0, 4) || '9999999-dev' === $parsedBranch) { + $version = 'dev-' . $branch; + } else { + $prefix = substr($branch, 0, 1) === 'v' ? 'v' : ''; + $version = $prefix . preg_replace('{(\.9{7})+}', '.x', $parsedBranch); + } + + $cachedPackage = $this->getCachedPackageVersion($version, $identifier, $verbose); + if ($cachedPackage) { + $this->addPackage($cachedPackage); + + continue; + } + try { if (!$data = $driver->getComposerInformation($identifier)) { if ($verbose) { @@ -244,17 +269,9 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt } // branches are always auto-versioned, read value from branch name - $data['version'] = $branch; + $data['version'] = $version; $data['version_normalized'] = $parsedBranch; - // make sure branch packages have a dev flag - if ('dev-' === substr($parsedBranch, 0, 4) || '9999999-dev' === $parsedBranch) { - $data['version'] = 'dev-' . $data['version']; - } else { - $prefix = substr($branch, 0, 1) === 'v' ? 'v' : ''; - $data['version'] = $prefix . preg_replace('{(\.9{7})+}', '.x', $parsedBranch); - } - if ($verbose) { $this->io->writeError('Importing branch '.$branch.' ('.$data['version'].')'); } @@ -325,4 +342,34 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt return false; } + + private function getCachedPackageVersion($version, $identifier, $verbose) + { + if (!$this->versionCache) { + return; + } + + $cachedPackage = $this->versionCache->getVersionPackage($version, $identifier); + if ($cachedPackage) { + $msg = 'Found cached composer.json of ' . ($this->packageName ?: $this->url) . ' (' . $version . ')'; + if ($verbose) { + $this->io->writeError($msg); + } else { + $this->io->overwriteError($msg, false); + } + + if ($existingPackage = $this->findPackage($cachedPackage['name'], $cachedPackage['version_normalized'])) { + if ($verbose) { + $this->io->writeError('Skipped cached version '.$version.', it conflicts with an another tag ('.$existingPackage->getPrettyVersion().') as both resolve to '.$cachedPackage['version_normalized'].' internally'); + } + $cachedPackage = null; + } + } + + if ($cachedPackage) { + return $this->loader->load($cachedPackage); + } + + return null; + } } diff --git a/src/Composer/Repository/VersionCacheInterface.php b/src/Composer/Repository/VersionCacheInterface.php new file mode 100644 index 000000000..db5934b59 --- /dev/null +++ b/src/Composer/Repository/VersionCacheInterface.php @@ -0,0 +1,23 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Repository; + +interface VersionCacheInterface +{ + /** + * @param string $version + * @param string $identifier + * @return array Package version data + */ + public function getVersionPackage($version, $identifier); +} From 3c173702b5e45ba8180f991744ef947e863ece28 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Tue, 16 Oct 2018 17:44:04 +0200 Subject: [PATCH 11/43] :rocket: Build/Travis: test builds against PHP 7.3 Once PHP 7.3-beta came out, the `nightly` build on Travis became PHP 7.4-dev and builds haven't been tested against PHP 7.3 for months now. As of this week, Travis has (finally) made a PHP 7.3 alias available now RC3 is out, so I've added PHP 7.3 to the matrix. --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 16a3b073c..575f6a527 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,13 +23,14 @@ php: - 7.0 - 7.1 - 7.2 + - 7.3 - nightly matrix: include: - php: 5.3 dist: precise - - php: 7.2 + - php: 7.3 env: deps=high fast_finish: true allow_failures: From c6da110e71bbab46090df7ef0b8f48f239f71913 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Wed, 17 Oct 2018 08:53:19 +0200 Subject: [PATCH 12/43] Updated deploy php version to 7.2 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 575f6a527..064782fa2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -73,4 +73,4 @@ deploy: on: tags: true repo: composer/composer - php: '7.1' + php: '7.2' From 819f487b38dc79f8ce3dc910a0d8ceda01086778 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Fri, 19 Oct 2018 11:55:45 +0200 Subject: [PATCH 13/43] Bitbucket: switch to v2 API --- src/Composer/Repository/Vcs/BitbucketDriver.php | 11 ++++++++--- .../Test/Repository/Vcs/GitBitbucketDriverTest.php | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/Composer/Repository/Vcs/BitbucketDriver.php b/src/Composer/Repository/Vcs/BitbucketDriver.php index 6361d6a04..3857171e8 100644 --- a/src/Composer/Repository/Vcs/BitbucketDriver.php +++ b/src/Composer/Repository/Vcs/BitbucketDriver.php @@ -190,7 +190,7 @@ abstract class BitbucketDriver extends VcsDriver } $resource = sprintf( - 'https://api.bitbucket.org/1.0/repositories/%s/%s/raw/%s/%s', + 'https://api.bitbucket.org/2.0/repositories/%s/%s/src/%s/%s', $this->owner, $this->repository, $identifier, @@ -421,11 +421,16 @@ abstract class BitbucketDriver extends VcsDriver protected function getMainBranchData() { $resource = sprintf( - 'https://api.bitbucket.org/1.0/repositories/%s/%s/main-branch', + 'https://api.bitbucket.org/2.0/repositories/%s/%s?fields=mainbranch', $this->owner, $this->repository ); - return JsonFile::parseJson($this->getContentsWithOAuthCredentials($resource), $resource); + $data = JsonFile::parseJson($this->getContentsWithOAuthCredentials($resource), $resource); + if (isset($data['mainbranch'])) { + return $data['mainbranch']; + } + + return null; } } diff --git a/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php index b35bb8867..7547855bf 100644 --- a/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php @@ -113,7 +113,7 @@ class GitBitbucketDriverTest extends TestCase ), array( $this->originUrl, - 'https://api.bitbucket.org/1.0/repositories/user/repo/main-branch', + 'https://api.bitbucket.org/2.0/repositories/user/repo?fields=mainbranch', false, ), array( @@ -128,7 +128,7 @@ class GitBitbucketDriverTest extends TestCase ), array( $this->originUrl, - 'https://api.bitbucket.org/1.0/repositories/user/repo/raw/master/composer.json', + 'https://api.bitbucket.org/2.0/repositories/user/repo/src/master/composer.json', false, ), array( @@ -139,7 +139,7 @@ class GitBitbucketDriverTest extends TestCase ) ->willReturnOnConsecutiveCalls( '{"scm":"git","website":"","has_wiki":false,"name":"repo","links":{"branches":{"href":"https:\/\/api.bitbucket.org\/2.0\/repositories\/user\/repo\/refs\/branches"},"tags":{"href":"https:\/\/api.bitbucket.org\/2.0\/repositories\/user\/repo\/refs\/tags"},"clone":[{"href":"https:\/\/user@bitbucket.org\/user\/repo.git","name":"https"},{"href":"ssh:\/\/git@bitbucket.org\/user\/repo.git","name":"ssh"}],"html":{"href":"https:\/\/bitbucket.org\/user\/repo"}},"language":"php","created_on":"2015-02-18T16:22:24.688+00:00","updated_on":"2016-05-17T13:20:21.993+00:00","is_private":true,"has_issues":false}', - '{"name": "master"}', + '{"mainbranch": {"name": "master"}}', '{"values":[{"name":"1.0.1","target":{"hash":"9b78a3932143497c519e49b8241083838c8ff8a1"}},{"name":"1.0.0","target":{"hash":"d3393d514318a9267d2f8ebbf463a9aaa389f8eb"}}]}', '{"values":[{"name":"master","target":{"hash":"937992d19d72b5116c3e8c4a04f960e5fa270b22"}}]}', '{"name": "user/repo","description": "test repo","license": "GPL","authors": [{"name": "Name","email": "local@domain.tld"}],"require": {"creator/package": "^1.0"},"require-dev": {"phpunit/phpunit": "~4.8"}}', From abb6377caa7fceb844be16867574ebe8a2192796 Mon Sep 17 00:00:00 2001 From: Thomas Landauer Date: Tue, 23 Oct 2018 15:26:43 +0200 Subject: [PATCH 14/43] Update 05-repositories.md Fixed typo. --- doc/05-repositories.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/05-repositories.md b/doc/05-repositories.md index 9706a07e0..9cd1dbf28 100644 --- a/doc/05-repositories.md +++ b/doc/05-repositories.md @@ -657,7 +657,7 @@ be explicitly defined in the package's `composer.json` file. If the version cannot be resolved by these means, it is assumed to be `dev-master`. The local package will be symlinked if possible, in which case the output in -the console will read `Symlinked from ../../packages/my-package`. If symlinking +the console will read `Symlinking from ../../packages/my-package`. If symlinking is _not_ possible the package will be copied. In that case, the console will output `Mirrored from ../../packages/my-package`. From 23d37eebe6b7b87d98b54436eccd1a653ca04ab6 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Wed, 24 Oct 2018 13:42:40 +0200 Subject: [PATCH 15/43] Fix: undefined index name in VcsRepository --- src/Composer/Repository/VcsRepository.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index 57639cdea..4f8e12d7c 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -188,7 +188,8 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt continue; } - if ($existingPackage = $this->findPackage($data['name'], $data['version_normalized'])) { + $tagPackageName = isset($data['name']) ? $data['name'] : $this->packageName; + if ($existingPackage = $this->findPackage($tagPackageName, $data['version_normalized'])) { if ($verbose) { $this->io->writeError('Skipped tag '.$tag.', it conflicts with an another tag ('.$existingPackage->getPrettyVersion().') as both resolve to '.$data['version_normalized'].' internally'); } From 8b8df013361c1d57caabc36f9e9efb516a177558 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Fri, 26 Oct 2018 15:48:18 +0200 Subject: [PATCH 16/43] Bitbucket: fix redirect behaviour --- src/Composer/Util/RemoteFilesystem.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index dc2b33089..def4091a6 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -385,15 +385,18 @@ class RemoteFilesystem $statusCode = null; $contentType = null; + $locationHeader = null; if (!empty($http_response_header[0])) { $statusCode = $this->findStatusCode($http_response_header); $contentType = $this->findHeaderValue($http_response_header, 'content-type'); + $locationHeader = $this->findHeaderValue($http_response_header, 'location'); } // check for bitbucket login page asking to authenticate if ($originUrl === 'bitbucket.org' && !$this->isPublicBitBucketDownload($fileUrl) && substr($fileUrl, -4) === '.zip' + && (!$locationHeader || substr($locationHeader, -4) !== '.zip') && $contentType && preg_match('{^text/html\b}i', $contentType) ) { $result = false; From 105477218dcb31c82593460850f6b5f3dd225739 Mon Sep 17 00:00:00 2001 From: Stephan Vock Date: Mon, 29 Oct 2018 12:01:46 +0100 Subject: [PATCH 17/43] VcsRepository: fix undefined index notice in preProcess --- src/Composer/Repository/VcsRepository.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Composer/Repository/VcsRepository.php b/src/Composer/Repository/VcsRepository.php index 4f8e12d7c..b65d19d75 100644 --- a/src/Composer/Repository/VcsRepository.php +++ b/src/Composer/Repository/VcsRepository.php @@ -295,7 +295,8 @@ class VcsRepository extends ArrayRepository implements ConfigurableRepositoryInt protected function preProcess(VcsDriverInterface $driver, array $data, $identifier) { // keep the name of the main identifier for all packages - $data['name'] = $this->packageName ?: $data['name']; + $dataPackageName = isset($data['name']) ? $data['name'] : null; + $data['name'] = $this->packageName ?: $dataPackageName; if (!isset($data['dist'])) { $data['dist'] = $driver->getDist($identifier); From 67e6d6d8a4770972ad175f876c25faa0f7fec456 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sat, 27 Oct 2018 09:58:10 +0200 Subject: [PATCH 18/43] diagnose: write warning on stderr --- src/Composer/Command/DiagnoseCommand.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php index 3efb34973..11d1e1aa0 100644 --- a/src/Composer/Command/DiagnoseCommand.php +++ b/src/Composer/Command/DiagnoseCommand.php @@ -121,8 +121,8 @@ EOT $rate = $this->getGithubRateLimit('github.com'); $this->outputResult(true); if (10 > $rate['remaining']) { - $io->write('WARNING'); - $io->write(sprintf( + $io->writeError('WARNING'); + $io->writeError(sprintf( 'Github has a rate limit on their API. ' . 'You currently have %u ' . 'out of %u requests left.' . PHP_EOL From 20107dbf777fefd7d806745ad9579474e395e777 Mon Sep 17 00:00:00 2001 From: Alexey Kopytko Date: Fri, 26 Oct 2018 12:12:10 +0900 Subject: [PATCH 19/43] Ensure that a missing SSL/TLS protection warning does not pollute STDOUT Fixes #7737 --- src/Composer/Factory.php | 2 +- tests/Composer/Test/FactoryTest.php | 40 +++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 tests/Composer/Test/FactoryTest.php diff --git a/src/Composer/Factory.php b/src/Composer/Factory.php index d0cf6ee8a..1aac934a1 100644 --- a/src/Composer/Factory.php +++ b/src/Composer/Factory.php @@ -588,7 +588,7 @@ class Factory $disableTls = false; if ($config && $config->get('disable-tls') === true) { if (!$warned) { - $io->write('You are running Composer with SSL/TLS protection disabled.'); + $io->writeError('You are running Composer with SSL/TLS protection disabled.'); } $warned = true; $disableTls = true; diff --git a/tests/Composer/Test/FactoryTest.php b/tests/Composer/Test/FactoryTest.php new file mode 100644 index 000000000..a6ba01565 --- /dev/null +++ b/tests/Composer/Test/FactoryTest.php @@ -0,0 +1,40 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Test; + +use PHPUnit\Framework\TestCase; +use Composer\Factory; + +class FactoryTest extends TestCase +{ + /** + * @group TLS + */ + public function testDefaultValuesAreAsExpected() + { + $ioMock = $this->getMockBuilder('Composer\IO\IOInterface')->getMock(); + + $ioMock->expects($this->once()) + ->method("writeError"); + + $config = $this + ->getMockBuilder('Composer\Config') + ->getMock(); + + $config->method('get') + ->with($this->equalTo('disable-tls')) + ->will($this->returnValue(true)); + + Factory::createRemoteFilesystem($ioMock, $config); + } +} From aa6d138bdca5c9d2b448d3a583bba4d2213c4806 Mon Sep 17 00:00:00 2001 From: Alexey Kopytko Date: Fri, 26 Oct 2018 12:17:38 +0900 Subject: [PATCH 20/43] Check for the actual warning description --- tests/Composer/Test/FactoryTest.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Composer/Test/FactoryTest.php b/tests/Composer/Test/FactoryTest.php index a6ba01565..34d4518bb 100644 --- a/tests/Composer/Test/FactoryTest.php +++ b/tests/Composer/Test/FactoryTest.php @@ -25,7 +25,8 @@ class FactoryTest extends TestCase $ioMock = $this->getMockBuilder('Composer\IO\IOInterface')->getMock(); $ioMock->expects($this->once()) - ->method("writeError"); + ->method("writeError") + ->with($this->equalTo('You are running Composer with SSL/TLS protection disabled.')); $config = $this ->getMockBuilder('Composer\Config') From a64b652a6b451fc40482dcf25d9150fbe2600810 Mon Sep 17 00:00:00 2001 From: Gabriel Caruso Date: Sun, 14 Oct 2018 17:45:44 -0300 Subject: [PATCH 21/43] Use func_num_args instead of counting on func_get_args --- src/Composer/Util/ProcessExecutor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Composer/Util/ProcessExecutor.php b/src/Composer/Util/ProcessExecutor.php index 5e40470b0..d2efc5377 100644 --- a/src/Composer/Util/ProcessExecutor.php +++ b/src/Composer/Util/ProcessExecutor.php @@ -60,7 +60,7 @@ class ProcessExecutor $cwd = realpath(getcwd()); } - $this->captureOutput = count(func_get_args()) > 1; + $this->captureOutput = func_num_args() > 1; $this->errorOutput = null; $process = new Process($command, $cwd, null, null, static::getTimeout()); From 2805a69e5836a583c4af0331554a4af12f978b04 Mon Sep 17 00:00:00 2001 From: Gabriel Caruso Date: Sun, 14 Oct 2018 17:48:29 -0300 Subject: [PATCH 22/43] Simplify conditions and inline temp variables --- src/Composer/Util/Perforce.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/Composer/Util/Perforce.php b/src/Composer/Util/Perforce.php index c96bcb80b..d7c6816cc 100644 --- a/src/Composer/Util/Perforce.php +++ b/src/Composer/Util/Perforce.php @@ -485,8 +485,7 @@ class Perforce $resArray = explode(PHP_EOL, $result); $tags = array(); foreach ($resArray as $line) { - $index = strpos($line, 'Label'); - if (!($index === false)) { + if (strpos($line, 'Label') !== false) { $fields = explode(' ', $line); $tags[$fields[1]] = $this->getStream() . '@' . $fields[1]; } @@ -502,8 +501,7 @@ class Perforce $result = $this->commandResult; $resArray = explode(PHP_EOL, $result); foreach ($resArray as $line) { - $index = strpos($line, 'Depot'); - if (!($index === false)) { + if (strpos($line, 'Depot') !== false) { $fields = explode(' ', $line); if (strcmp($this->p4Depot, $fields[1]) === 0) { $this->p4DepotType = $fields[3]; From 114217c6e3b35653923815786221c94b023c36a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20de=20Guillebon?= Date: Wed, 31 Oct 2018 09:55:53 +0100 Subject: [PATCH 23/43] Fix ini_get() for boolean values --- src/Composer/Autoload/ClassLoader.php | 2 +- src/Composer/Command/DiagnoseCommand.php | 6 +++--- src/Composer/Compiler.php | 2 +- src/Composer/Util/ErrorHandler.php | 2 +- src/Composer/Util/RemoteFilesystem.php | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Composer/Autoload/ClassLoader.php b/src/Composer/Autoload/ClassLoader.php index 95f7e0978..fce8549f0 100644 --- a/src/Composer/Autoload/ClassLoader.php +++ b/src/Composer/Autoload/ClassLoader.php @@ -279,7 +279,7 @@ class ClassLoader */ public function setApcuPrefix($apcuPrefix) { - $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; } /** diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php index 3efb34973..3cb783b3b 100644 --- a/src/Composer/Command/DiagnoseCommand.php +++ b/src/Composer/Command/DiagnoseCommand.php @@ -481,7 +481,7 @@ EOT $errors['iconv_mbstring'] = true; } - if (!ini_get('allow_url_fopen')) { + if (!filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN)) { $errors['allow_url_fopen'] = true; } @@ -505,7 +505,7 @@ EOT $warnings['openssl_version'] = true; } - if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && ini_get('apc.enable_cli')) { + if (!defined('HHVM_VERSION') && !extension_loaded('apcu') && filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN)) { $warnings['apc_cli'] = true; } @@ -528,7 +528,7 @@ EOT } } - if (ini_get('xdebug.profiler_enabled')) { + if (filter_var(ini_get('xdebug.profiler_enabled'), FILTER_VALIDATE_BOOLEAN)) { $warnings['xdebug_profile'] = true; } elseif (extension_loaded('xdebug')) { $warnings['xdebug_loaded'] = true; diff --git a/src/Composer/Compiler.php b/src/Composer/Compiler.php index 4064b20b5..27b1f4816 100644 --- a/src/Composer/Compiler.php +++ b/src/Composer/Compiler.php @@ -255,7 +255,7 @@ class Compiler */ // Avoid APC causing random fatal errors per https://github.com/composer/composer/issues/264 -if (extension_loaded('apc') && ini_get('apc.enable_cli') && ini_get('apc.cache_by_default')) { +if (extension_loaded('apc') && filter_var(ini_get('apc.enable_cli'), FILTER_VALIDATE_BOOLEAN) && filter_var(ini_get('apc.cache_by_default'), FILTER_VALIDATE_BOOLEAN)) { if (version_compare(phpversion('apc'), '3.0.12', '>=')) { ini_set('apc.cache_by_default', 0); } else { diff --git a/src/Composer/Util/ErrorHandler.php b/src/Composer/Util/ErrorHandler.php index 925cab74c..83e6b5ede 100644 --- a/src/Composer/Util/ErrorHandler.php +++ b/src/Composer/Util/ErrorHandler.php @@ -41,7 +41,7 @@ class ErrorHandler return; } - if (ini_get('xdebug.scream')) { + if (filter_var(ini_get('xdebug.scream'), FILTER_VALIDATE_BOOLEAN)) { $message .= "\n\nWarning: You have xdebug.scream enabled, the warning above may be". "\na legitimately suppressed error that you were not supposed to see."; } diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index def4091a6..39f049cbe 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -364,7 +364,7 @@ class RemoteFilesystem } $result = false; } - if ($errorMessage && !ini_get('allow_url_fopen')) { + if ($errorMessage && !filter_var(ini_get('allow_url_fopen'), FILTER_VALIDATE_BOOLEAN)) { $errorMessage = 'allow_url_fopen must be enabled in php.ini ('.$errorMessage.')'; } restore_error_handler(); From 470d351926228a9f2804ae273b35cedf58846ce6 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 12:47:07 +0100 Subject: [PATCH 24/43] Update ca-bundle --- composer.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/composer.lock b/composer.lock index 70455dc7b..d4e7f847f 100644 --- a/composer.lock +++ b/composer.lock @@ -8,16 +8,16 @@ "packages": [ { "name": "composer/ca-bundle", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "46afded9720f40b9dc63542af4e3e43a1177acb0" + "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/46afded9720f40b9dc63542af4e3e43a1177acb0", - "reference": "46afded9720f40b9dc63542af4e3e43a1177acb0", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660", + "reference": "8afa52cd417f4ec417b4bfe86b68106538a87660", "shasum": "" }, "require": { @@ -60,7 +60,7 @@ "ssl", "tls" ], - "time": "2018-08-08T08:57:40+00:00" + "time": "2018-10-18T06:09:13+00:00" }, { "name": "composer/semver", From 77457ca4742f46d1e606dcd443a52d3323177541 Mon Sep 17 00:00:00 2001 From: Mariusz Zarzycki Date: Mon, 8 Oct 2018 20:35:06 +0100 Subject: [PATCH 25/43] Show command respects --path flag Path added to package meta output --- src/Composer/Command/ShowCommand.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index ccea6a960..6de2f4cab 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -219,6 +219,12 @@ EOT if ($input->getOption('outdated') && $input->getOption('strict') && $latestPackage && $latestPackage->getFullPrettyVersion() !== $package->getFullPrettyVersion() && !$latestPackage->isAbandoned()) { $exitCode = 1; } + if ($input->getOption('path')) { + $io->write($package->getName(), false); + $io->write(' ' . strtok(realpath($composer->getInstallationManager()->getInstallPath($package)), "\r\n")); + + return $exitCode; + } $this->printMeta($package, $versions, $installedRepo, $latestPackage ?: null); $this->printLinks($package, 'requires'); $this->printLinks($package, 'devRequires', 'requires (dev)'); @@ -577,6 +583,7 @@ EOT $this->printLicenses($package); $io->write('source : ' . sprintf('[%s] %s %s', $package->getSourceType(), $package->getSourceUrl(), $package->getSourceReference())); $io->write('dist : ' . sprintf('[%s] %s %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference())); + $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); $io->write('names : ' . implode(', ', $package->getNames())); if ($latestPackage->isAbandoned()) { From f72e2312dcda584794dc5bf136b7d6d874c87cf3 Mon Sep 17 00:00:00 2001 From: Mariusz Zarzycki Date: Mon, 8 Oct 2018 20:37:25 +0100 Subject: [PATCH 26/43] Ran php-cs-fixer --- src/Composer/Command/ShowCommand.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 6de2f4cab..0b638a74b 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -219,12 +219,12 @@ EOT if ($input->getOption('outdated') && $input->getOption('strict') && $latestPackage && $latestPackage->getFullPrettyVersion() !== $package->getFullPrettyVersion() && !$latestPackage->isAbandoned()) { $exitCode = 1; } - if ($input->getOption('path')) { - $io->write($package->getName(), false); - $io->write(' ' . strtok(realpath($composer->getInstallationManager()->getInstallPath($package)), "\r\n")); + if ($input->getOption('path')) { + $io->write($package->getName(), false); + $io->write(' ' . strtok(realpath($composer->getInstallationManager()->getInstallPath($package)), "\r\n")); - return $exitCode; - } + return $exitCode; + } $this->printMeta($package, $versions, $installedRepo, $latestPackage ?: null); $this->printLinks($package, 'requires'); $this->printLinks($package, 'devRequires', 'requires (dev)'); @@ -583,7 +583,7 @@ EOT $this->printLicenses($package); $io->write('source : ' . sprintf('[%s] %s %s', $package->getSourceType(), $package->getSourceUrl(), $package->getSourceReference())); $io->write('dist : ' . sprintf('[%s] %s %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference())); - $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); + $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); $io->write('names : ' . implode(', ', $package->getNames())); if ($latestPackage->isAbandoned()) { From 38a63ba05a1abce51372ca3a9c12c002f3b3fe63 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 15:07:07 +0100 Subject: [PATCH 27/43] Only show path for installed packages, refs #7698 --- src/Composer/Command/ShowCommand.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index 0b638a74b..5a3c970dd 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -583,7 +583,9 @@ EOT $this->printLicenses($package); $io->write('source : ' . sprintf('[%s] %s %s', $package->getSourceType(), $package->getSourceUrl(), $package->getSourceReference())); $io->write('dist : ' . sprintf('[%s] %s %s', $package->getDistType(), $package->getDistUrl(), $package->getDistReference())); - $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); + if ($installedRepo->hasPackage($package)) { + $io->write('path : ' . sprintf('%s', realpath($this->getComposer()->getInstallationManager()->getInstallPath($package)))); + } $io->write('names : ' . implode(', ', $package->getNames())); if ($latestPackage->isAbandoned()) { From 41458c75184bde3805d622503b7b5973ef3f1a8b Mon Sep 17 00:00:00 2001 From: Michele Locati Date: Fri, 12 Oct 2018 15:56:26 +0200 Subject: [PATCH 28/43] Don't call Symfony ProcessUtils::escapeArgument --- src/Composer/Util/ProcessExecutor.php | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Composer/Util/ProcessExecutor.php b/src/Composer/Util/ProcessExecutor.php index 5e40470b0..d34c6c3aa 100644 --- a/src/Composer/Util/ProcessExecutor.php +++ b/src/Composer/Util/ProcessExecutor.php @@ -131,15 +131,11 @@ class ProcessExecutor */ public static function escape($argument) { - if (method_exists('Symfony\Component\Process\ProcessUtils', 'escapeArgument')) { - return ProcessUtils::escapeArgument($argument); - } - return self::escapeArgument($argument); } /** - * Copy of ProcessUtils::escapeArgument() that is removed in Symfony 4. + * Copy of ProcessUtils::escapeArgument() that is deprecated in Symfony 3.3 and removed in Symfony 4. * * @param string $argument * From 3c543b275279b27d3e723ffe4363e0aecaf07857 Mon Sep 17 00:00:00 2001 From: Raffael Comi Date: Mon, 15 Oct 2018 13:41:59 +0200 Subject: [PATCH 29/43] Report "same as actual" version if override package matches actual --- src/Composer/Repository/PlatformRepository.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Composer/Repository/PlatformRepository.php b/src/Composer/Repository/PlatformRepository.php index 02d552424..0a2e79f35 100644 --- a/src/Composer/Repository/PlatformRepository.php +++ b/src/Composer/Repository/PlatformRepository.php @@ -236,7 +236,12 @@ class PlatformRepository extends ArrayRepository // Skip if overridden if (isset($this->overrides[$package->getName()])) { $overrider = $this->findPackage($package->getName(), '*'); - $overrider->setDescription($overrider->getDescription().' (actual: '.$package->getPrettyVersion().')'); + if ($package->getVersion() === $overrider->getVersion()) { + $actualText = 'same as actual'; + } else { + $actualText = 'actual: '.$package->getPrettyVersion(); + } + $overrider->setDescription($overrider->getDescription().' ('.$actualText.')'); return; } @@ -244,7 +249,12 @@ class PlatformRepository extends ArrayRepository // Skip if PHP is overridden and we are adding a php-* package if (isset($this->overrides['php']) && 0 === strpos($package->getName(), 'php-')) { $overrider = $this->addOverriddenPackage($this->overrides['php'], $package->getPrettyName()); - $overrider->setDescription($overrider->getDescription().' (actual: '.$package->getPrettyVersion().')'); + if ($package->getVersion() === $overrider->getVersion()) { + $actualText = 'same as actual'; + } else { + $actualText = 'actual: '.$package->getPrettyVersion(); + } + $overrider->setDescription($overrider->getDescription().' ('.$actualText.')'); return; } From 148e503b31deb2d9b7a444eb29ec502360a9dd2f Mon Sep 17 00:00:00 2001 From: Seven Du Date: Wed, 31 Oct 2018 23:57:44 +0800 Subject: [PATCH 30/43] Modified comment block (#7700) * Modified comment block --- src/Composer/Util/RemoteFilesystem.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index dc2b33089..6e16520fd 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -114,13 +114,18 @@ class RemoteFilesystem /** * Merges new options * - * @return array $options + * @param array $options */ public function setOptions(array $options) { $this->options = array_replace_recursive($this->options, $options); } + /** + * Check is disable TLS. + * + * @return bool + */ public function isTlsDisabled() { return $this->disableTls === true; From 0ee0138bed31aa2c911041bf63f09857eff8da7a Mon Sep 17 00:00:00 2001 From: Grzegorz Korba Date: Wed, 31 Oct 2018 17:18:54 +0100 Subject: [PATCH 31/43] Support for ignoring packages in `outdated` command (#7682) * Support for ignoring packages in `outdated` command. Fixes #7656 --- src/Composer/Command/OutdatedCommand.php | 2 ++ src/Composer/Command/ShowCommand.php | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Composer/Command/OutdatedCommand.php b/src/Composer/Command/OutdatedCommand.php index f867f75f4..79409c58f 100644 --- a/src/Composer/Command/OutdatedCommand.php +++ b/src/Composer/Command/OutdatedCommand.php @@ -36,6 +36,7 @@ class OutdatedCommand extends ShowCommand new InputOption('strict', null, InputOption::VALUE_NONE, 'Return a non-zero exit code when there are outdated packages'), new InputOption('minor-only', 'm', InputOption::VALUE_NONE, 'Show only packages that have minor SemVer-compatible updates. Use with the --outdated option.'), new InputOption('format', 'f', InputOption::VALUE_REQUIRED, 'Format of the output: text or json', 'text'), + new InputOption('ignore', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore specified package(s). Use it with the --outdated option if you don\'t want to be informed about new versions of some packages.'), )) ->setHelp( <<getOption('format'); + $args['--ignore'] = $input->getOption('ignore'); $input = new ArrayInput($args); diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index ccea6a960..0299f1458 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -74,6 +74,7 @@ class ShowCommand extends BaseCommand new InputOption('tree', 't', InputOption::VALUE_NONE, 'List the dependencies as a tree'), new InputOption('latest', 'l', InputOption::VALUE_NONE, 'Show the latest version'), new InputOption('outdated', 'o', InputOption::VALUE_NONE, 'Show the latest version but only for packages that are outdated'), + new InputOption('ignore', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore specified package(s). Use it with the --outdated option if you don\'t want to be informed about new versions of some packages.'), new InputOption('minor-only', 'm', InputOption::VALUE_NONE, 'Show only packages that have minor SemVer-compatible updates. Use with the --outdated option.'), new InputOption('direct', 'D', InputOption::VALUE_NONE, 'Shows only packages that are directly required by the root package'), new InputOption('strict', null, InputOption::VALUE_NONE, 'Return a non-zero exit code when there are outdated packages'), @@ -105,6 +106,8 @@ EOT if ($input->getOption('outdated')) { $input->setOption('latest', true); + } elseif ($input->getOption('ignore')) { + $io->writeError('You are using the option "ignore" for action other than "outdated", it will be ignored.'); } if ($input->getOption('direct') && ($input->getOption('all') || $input->getOption('available') || $input->getOption('platform'))) { @@ -333,6 +336,7 @@ EOT $showAllTypes = $input->getOption('all'); $showLatest = $input->getOption('latest'); $showMinorOnly = $input->getOption('minor-only'); + $ignoredPackages = array_map('strtolower', $input->getOption('ignore')); $indent = $showAllTypes ? ' ' : ''; $latestPackages = array(); $exitCode = 0; @@ -372,7 +376,11 @@ EOT if ($showLatest && isset($latestPackages[$package->getPrettyName()])) { $latestPackage = $latestPackages[$package->getPrettyName()]; } - if ($input->getOption('outdated') && $latestPackage && $latestPackage->getFullPrettyVersion() === $package->getFullPrettyVersion() && !$latestPackage->isAbandoned()) { + + // Determine if Composer is checking outdated dependencies and if current package should trigger non-default exit code + $packageIsUpToDate = $latestPackage && $latestPackage->getFullPrettyVersion() === $package->getFullPrettyVersion() && !$latestPackage->isAbandoned(); + $packageIsIgnored = \in_array($package->getPrettyName(), $ignoredPackages, true); + if ($input->getOption('outdated') && ($packageIsUpToDate || $packageIsIgnored)) { continue; } elseif ($input->getOption('outdated') || $input->getOption('strict')) { $hasOutdatedPackages = true; From da94e4b6199b7511704633f31e2e7bf8410be3d7 Mon Sep 17 00:00:00 2001 From: Ahammar Yassine Date: Wed, 31 Oct 2018 16:32:02 +0000 Subject: [PATCH 32/43] Skip all network-based checks (#7641) * Skip all network-based checks Change the warnings in diagnose to a friendly messages when allow_url_fopen is disabled. Issue: #7622 --- src/Composer/Command/DiagnoseCommand.php | 65 ++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php index 11d1e1aa0..893bd5d52 100644 --- a/src/Composer/Command/DiagnoseCommand.php +++ b/src/Composer/Command/DiagnoseCommand.php @@ -119,8 +119,9 @@ EOT $io->write('Checking github.com rate limit: ', false); try { $rate = $this->getGithubRateLimit('github.com'); - $this->outputResult(true); - if (10 > $rate['remaining']) { + if (!is_array($rate)) { + $this->outputResult($rate); + } elseif (10 > $rate['remaining']) { $io->writeError('WARNING'); $io->writeError(sprintf( 'Github has a rate limit on their API. ' @@ -131,6 +132,8 @@ EOT $rate['remaining'], $rate['limit'] )); + } else { + $this->outputResult(true); } } catch (\Exception $e) { if ($e instanceof TransportException && $e->getCode() === 401) { @@ -207,6 +210,11 @@ EOT private function checkHttp($proto, Config $config) { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + $disableTls = false; $result = array(); if ($proto === 'https' && $config->get('disable-tls') === true) { @@ -238,6 +246,11 @@ EOT private function checkHttpProxy() { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + $protocol = extension_loaded('openssl') ? 'https' : 'http'; try { $json = json_decode($this->rfs->getContents('packagist.org', $protocol . '://repo.packagist.org/packages.json', false), true); @@ -265,6 +278,11 @@ EOT */ private function checkHttpProxyFullUriRequestParam() { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + $url = 'http://repo.packagist.org/packages.json'; try { $this->rfs->getContents('packagist.org', $url, false); @@ -290,6 +308,11 @@ EOT */ private function checkHttpsProxyFullUriRequestParam() { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + if (!extension_loaded('openssl')) { return 'You need the openssl extension installed for this check'; } @@ -312,6 +335,11 @@ EOT private function checkGithubOauth($domain, $token) { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + $this->getIO()->setAuthentication($domain, $token, 'x-oauth-basic'); try { $url = $domain === 'github.com' ? 'https://api.'.$domain.'/' : 'https://'.$domain.'/api/v3/'; @@ -332,10 +360,15 @@ EOT * @param string $domain * @param string $token * @throws TransportException - * @return array + * @return array|string */ private function getGithubRateLimit($domain, $token = null) { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + if ($token) { $this->getIO()->setAuthentication($domain, $token, 'x-oauth-basic'); } @@ -390,6 +423,11 @@ EOT private function checkVersion($config) { + $result = $this->checkConnectivity(); + if ($result !== true) { + return $result; + } + $versionsUtil = new Versions($config, $this->rfs); $latest = $versionsUtil->getLatest(); @@ -413,6 +451,7 @@ EOT } $hadError = false; + $hadWarning = false; if ($result instanceof \Exception) { $result = '['.get_class($result).'] '.$result->getMessage().''; } @@ -427,6 +466,8 @@ EOT foreach ($result as $message) { if (false !== strpos($message, '')) { $hadError = true; + } elseif (false !== strpos($message, '')) { + $hadWarning = true; } } } @@ -434,7 +475,7 @@ EOT if ($hadError) { $io->write('FAIL'); $this->exitCode = 2; - } else { + } elseif ($hadWarning) { $io->write('WARNING'); $this->exitCode = 1; } @@ -668,4 +709,20 @@ EOT return !$warnings && !$errors ? true : $output; } + + + /** + * Check if allow_url_fopen is ON + * + * @return bool|string + */ + private function checkConnectivity() + { + if (!ini_get('allow_url_fopen')) { + $result = 'Skipped because allow_url_fopen is missing.'; + return $result; + } + + return true; + } } From 284da1487c4574352ba54a0d60c23d7ebd9e31b5 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 17:36:38 +0100 Subject: [PATCH 33/43] Avoid downgrading from error to warning --- src/Composer/Command/DiagnoseCommand.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php index 893bd5d52..f4d642f49 100644 --- a/src/Composer/Command/DiagnoseCommand.php +++ b/src/Composer/Command/DiagnoseCommand.php @@ -474,10 +474,10 @@ EOT if ($hadError) { $io->write('FAIL'); - $this->exitCode = 2; + $this->exitCode = max($this->exitCode, 2); } elseif ($hadWarning) { $io->write('WARNING'); - $this->exitCode = 1; + $this->exitCode = max($this->exitCode, 1); } if ($result) { @@ -716,7 +716,7 @@ EOT * * @return bool|string */ - private function checkConnectivity() + private function checkConnectivity() { if (!ini_get('allow_url_fopen')) { $result = 'Skipped because allow_url_fopen is missing.'; From a51563300c77e339300d2fbeff796aea95f3d0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tanghe?= Date: Tue, 9 Oct 2018 10:13:01 +0200 Subject: [PATCH 34/43] Warning about the UNIX permissions lost if unzip command is not installed. Some packages provide (such as Symfony Panther or Dusk) executable files, but as PHP's unzip extension does not handle UNIX permissions, those files will lose their executable ones. --- src/Composer/Downloader/ZipDownloader.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Composer/Downloader/ZipDownloader.php b/src/Composer/Downloader/ZipDownloader.php index 5ca7a2dab..6534db3d8 100644 --- a/src/Composer/Downloader/ZipDownloader.php +++ b/src/Composer/Downloader/ZipDownloader.php @@ -69,7 +69,8 @@ class ZipDownloader extends ArchiveDownloader if (!self::$isWindows && !self::$hasSystemUnzip) { $this->io->writeError("As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension."); - $this->io->writeError("This may cause invalid reports of corrupted archives. Installing 'unzip' may remediate them."); + $this->io->writeError("This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost."); + $this->io->writeError("Installing 'unzip' may remediate them."); } } From 900e3b65db0bf70d456137648d2d315916f7949f Mon Sep 17 00:00:00 2001 From: dtranmobil <39326050+dtranmobil@users.noreply.github.com> Date: Thu, 1 Nov 2018 04:12:21 +1100 Subject: [PATCH 35/43] Update why-can't-composer-load-repositories-recursively.md (#7690) --- doc/faqs/why-can't-composer-load-repositories-recursively.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/faqs/why-can't-composer-load-repositories-recursively.md b/doc/faqs/why-can't-composer-load-repositories-recursively.md index efcd00772..a39aff6fb 100644 --- a/doc/faqs/why-can't-composer-load-repositories-recursively.md +++ b/doc/faqs/why-can't-composer-load-repositories-recursively.md @@ -15,7 +15,7 @@ associated with inline VCS repositories. There are three ways the dependency solver could work with custom repositories: - Fetch the repositories of root package, get all the packages from the defined -repositories, resolve requirements. This is the current state and it works well +repositories, then resolve requirements. This is the current state and it works well except for the limitation of not loading repositories recursively. - Fetch the repositories of root package, while initializing packages from the From 1898ad12cefd58234fc83af4e57e46754037f8ab Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 18:23:18 +0100 Subject: [PATCH 36/43] Make sure we chdir back in case update dir is relative, refs #7519 --- src/Composer/Package/Comparer/Comparer.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Composer/Package/Comparer/Comparer.php b/src/Composer/Package/Comparer/Comparer.php index ed1931e82..c0ab98d9c 100644 --- a/src/Composer/Package/Comparer/Comparer.php +++ b/src/Composer/Package/Comparer/Comparer.php @@ -70,6 +70,7 @@ class Comparer if (!is_array($source)) { return; } + chdir($currentDirectory); chdir($this->update); $destination = $this->doTree('.', $destination); if (!is_array($destination)) { From 42dca2aff5c2c9fef4fbb6e3f296356db8d61811 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 18:29:32 +0100 Subject: [PATCH 37/43] Remove weird binary file from repo --- .../not-a-zip-with-zip-extension.zip | Bin 126405 -> 10 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip b/tests/Composer/Test/Repository/Fixtures/artifacts/not-a-zip-with-zip-extension.zip index 562f032d469230f4c3b79801660e9a5a40d1e8e3..ff342b0e69759e21709255e5d13d1012b72444f4 100644 GIT binary patch literal 10 LcmZ>CgaR%A4ax#k literal 126405 zcmXtg2Q*yW`}OEUgdtiGWlTgbQ6sw1hG@}y3xX)oYjmUcgy=*>kKjf061@Zw5xqt4 zy?@8=TmQ9U5zEZI&OK*8``LRxBGgpm?-NiHKp>F&iV8>#2m}KTJ}jZQ;5#8Lg5BT~ zzLSEU3k1T&boYVbSs>vKfiOT6ky4tT8CymkuA1W~v#Zn3n?4*3Ah6?SpQF~A6df@M z7CRz!CEp2d1>pQV)kMmM%FByjVxmamiAEW#L*hl!l(Xwkv#u|hTr4EjBzf2RYkwPk zO&rJ+v)(x$s_mZ)XMk(wV3L24^a^@kivd34u(f`;`=a%@m5M2vHx`EZD&;vNHa;U1 zq5utCyY0Up%^Qgh(ddIE@N}_2Al=RyUQ;I?7)4HlY)(&tc;)(GL%TPe7SZp!JLQp> zYSOW2Xh=M}|C6a>oxevONE{Na`B*HAXbse4fzpRX?Q+9s^Jn`@HJWTG@u{h)

i ztXy0>ZB5c~&O;QjwxeTmYOlADnF-!%h8>s?%2-f$ZHC%Wa{ z@E}GmpFxon1Co;*#DYSS;YhO<(8^1}kkC+RDx&aSBaa!kg@`9vo^RHE=DP4x$1rp| zIE33F6iK_CGx!~*>xiv~GR}3)&CPYmaBvvOUM&)0WByv&k56Ed_upR#rx*XE$)@+q zuO!t~CpQSq=F}}oCY!bDwcpR(LVL58ALsw*!2>2}P!8BsA(A{~m`NiLt0a=BsHS)w zH7HvFDIu;H7G&@8`q%1Vg7@*pqjv|rPfXS)D&{n@Rv%hK%OKCHpb@-sECrqm?V+98 zW%`ej5WPsKlzOrP5*@&R&e33%su<&i#B-T6ms0VVwvKYQT)hR`0~?|{sjGp*HhM~4 zCli21CL)L+3{Rds(Ykpk89{n*j`g$b<@4!!XB-E^dWc|!9`x4#^!^vEL#`ffmSs^o z?!s|f9xg5w5x)!9WA%JF&W&G1W2$x&<=aSTf^cjSLUD09`Zs-b3MOQ0rlB^Xf92`E zC^vqPLNx9pu8R$e48e19SHxrU+!8b@@sonGG8qN8@$~Mbb#|s4)GV5JC+_c_stkBy zInyMM@!Ag?p^*5rwDp|i_n)`$85ttrN83|0i=!G5a{0`?iV>E}U(76L4!oADhzrfj zK8}C=`W5XhYOGQ*VWF%X?YcML))kC+!r0*ZxE#bI;=9VhCx0 zEH4b&+9F3BP9)|XKawAw#JTytJvBk*>z^eIbu#k({r$zlY=04lo2&ESR~lD*T|3!9 z1n^?Xdg=0(eNWN9yDhiP+XjwJ$BP@|CE;Kv)|r1J#l$;#1d+rIVvt6VVq}*

RSv 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 LdQa6Z_t^gc0>PFJ From 49a6c56a7ccc1d3648dfeb8b3b6f3070509fea55 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 22:19:54 +0100 Subject: [PATCH 38/43] Update changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5efd1683..c7e13cf55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +### [1.7.3] 2018-11-01 + + * Fixed handling of replace/conflict rules. This may affect dependency resolution in some edge cases. + * Fixed Bitbucket API support and migrated all calls to API v2 as v1 is deprecated + * Fixed support for lib-openssl 1.1.1 having only lowercase algorithm names + * Fixed escaping of URLs in Perforce and Svn drivers + * Fixed `show` command not respecting `--path` when a single package name was given + * Fixed regression in 1.7.2's handling of metapackages + ### [1.7.2] 2018-08-16 * Fixed reporting of authentication/rate limiting issues for GitHub API access @@ -687,6 +696,7 @@ * Initial release +[1.7.3]: https://github.com/composer/composer/compare/1.7.2...1.7.3 [1.7.2]: https://github.com/composer/composer/compare/1.7.1...1.7.2 [1.7.1]: https://github.com/composer/composer/compare/1.7.0...1.7.1 [1.7.0]: https://github.com/composer/composer/compare/1.7.0-RC...1.7.0 From 856df56bdd05f4ce2a5f437796ab6a1a222c5f3a Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 31 Oct 2018 22:20:40 +0100 Subject: [PATCH 39/43] Revert #7755 --- src/Composer/Command/DiagnoseCommand.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Composer/Command/DiagnoseCommand.php b/src/Composer/Command/DiagnoseCommand.php index 10340a56b..3c4c3bb32 100644 --- a/src/Composer/Command/DiagnoseCommand.php +++ b/src/Composer/Command/DiagnoseCommand.php @@ -122,8 +122,8 @@ EOT if (!is_array($rate)) { $this->outputResult($rate); } elseif (10 > $rate['remaining']) { - $io->writeError('WARNING'); - $io->writeError(sprintf( + $io->write('WARNING'); + $io->write(sprintf( 'Github has a rate limit on their API. ' . 'You currently have %u ' . 'out of %u requests left.' . PHP_EOL From 008475dee7a589f1f94f42d434ca29300fe040bf Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Tue, 6 Nov 2018 14:55:46 +0100 Subject: [PATCH 40/43] Use lowercase sha in docs --- doc/faqs/how-to-install-composer-programmatically.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/faqs/how-to-install-composer-programmatically.md b/doc/faqs/how-to-install-composer-programmatically.md index 02ca21d2b..8a35e34d7 100644 --- a/doc/faqs/how-to-install-composer-programmatically.md +++ b/doc/faqs/how-to-install-composer-programmatically.md @@ -11,7 +11,7 @@ An alternative is to use this script which only works with UNIX utilities: EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)" php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" -ACTUAL_SIGNATURE="$(php -r "echo hash_file('SHA384', 'composer-setup.php');")" +ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")" if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ] then From 38a34159ef6e2faf49d55fde3b4f571e206ff987 Mon Sep 17 00:00:00 2001 From: Mathias Brodala Date: Mon, 12 Nov 2018 11:32:19 +0100 Subject: [PATCH 41/43] Dispatch "post-package-update" event after writing lock (#7766) Fixes #7765 --- src/Composer/Installer.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Composer/Installer.php b/src/Composer/Installer.php index a729710c0..2ace251af 100644 --- a/src/Composer/Installer.php +++ b/src/Composer/Installer.php @@ -610,14 +610,14 @@ class Installer } } + if ($this->executeOperations || $this->writeLock) { + $localRepo->write(); + } + $event = 'Composer\Installer\PackageEvents::POST_PACKAGE_'.strtoupper($jobType); if (defined($event) && $this->runScripts) { $this->eventDispatcher->dispatchPackageEvent(constant($event), $this->devMode, $policy, $pool, $installedRepo, $request, $operations, $operation); } - - if ($this->executeOperations || $this->writeLock) { - $localRepo->write(); - } } if ($this->executeOperations) { From 2a13bb2649151932407aae1a37a356179b1f5199 Mon Sep 17 00:00:00 2001 From: Gabriel Caruso Date: Mon, 12 Nov 2018 12:23:32 -0200 Subject: [PATCH 42/43] Fixes from PHPStan (#7687) * fix docblocks * remove redundant conditional * fix wrong variable name * fix wrong namespaces * add missing private members * remove unused/redundant arguments * move testcase class * exclude TestCase.php * Tweak RuleWatchGraph type hints * Tweak doc comment --- .travis.yml | 2 +- src/Composer/Command/BaseCommand.php | 2 +- src/Composer/Command/ShowCommand.php | 54 +++++++++---------- .../DependencyResolver/RuleSetGenerator.php | 4 +- .../DependencyResolver/RuleWatchGraph.php | 6 +-- src/Composer/Downloader/GitDownloader.php | 6 +-- .../Downloader/PearPackageExtractor.php | 6 +-- .../EventDispatcher/EventDispatcher.php | 2 +- .../Package/Archiver/GitExcludeFilter.php | 2 +- .../Package/Archiver/HgExcludeFilter.php | 2 +- src/Composer/Package/Archiver/ZipArchiver.php | 2 +- .../Repository/ArtifactRepository.php | 2 +- .../Repository/Pear/BaseChannelReader.php | 8 +-- .../Repository/Pear/ChannelReader.php | 6 +-- .../Repository/Pear/ChannelRest10Reader.php | 18 +++---- .../Repository/Pear/ChannelRest11Reader.php | 10 ++-- .../Pear/PackageDependencyParser.php | 16 +++--- src/Composer/Util/Filesystem.php | 4 +- src/Composer/Util/NoProxyPattern.php | 2 +- src/Composer/Util/Perforce.php | 6 +-- src/Composer/Util/StreamContextFactory.php | 2 +- src/Composer/Util/TlsHelper.php | 2 +- tests/Composer/Test/AllFunctionalTest.php | 2 +- tests/Composer/Test/ApplicationTest.php | 2 +- .../Test/Autoload/AutoloadGeneratorTest.php | 2 +- .../Test/Autoload/ClassMapGeneratorTest.php | 2 +- tests/Composer/Test/CacheTest.php | 2 +- .../Composer/Test/Command/InitCommandTest.php | 2 +- .../Test/Command/RunScriptCommandTest.php | 2 +- tests/Composer/Test/ComposerTest.php | 2 +- .../Test/Config/JsonConfigSourceTest.php | 4 +- tests/Composer/Test/ConfigTest.php | 2 +- tests/Composer/Test/DefaultConfigTest.php | 2 +- .../DependencyResolver/DefaultPolicyTest.php | 2 +- .../Test/DependencyResolver/PoolTest.php | 2 +- .../Test/DependencyResolver/RequestTest.php | 2 +- .../Test/DependencyResolver/RuleSetTest.php | 2 +- .../Test/DependencyResolver/RuleTest.php | 2 +- .../Test/DependencyResolver/SolverTest.php | 5 +- .../Test/Downloader/FileDownloaderTest.php | 2 +- .../Test/Downloader/FossilDownloaderTest.php | 2 +- .../Test/Downloader/GitDownloaderTest.php | 2 +- .../Test/Downloader/HgDownloaderTest.php | 2 +- .../Downloader/PearPackageExtractorTest.php | 2 +- .../Downloader/PerforceDownloaderTest.php | 2 +- .../Test/Downloader/XzDownloaderTest.php | 2 +- .../Test/Downloader/ZipDownloaderTest.php | 8 +-- .../EventDispatcher/EventDispatcherTest.php | 2 +- tests/Composer/Test/IO/ConsoleIOTest.php | 2 +- tests/Composer/Test/IO/NullIOTest.php | 2 +- .../Test/Installer/LibraryInstallerTest.php | 2 +- tests/Composer/Test/InstallerTest.php | 2 +- tests/Composer/Test/Mock/FactoryMock.php | 2 +- .../Archiver/ArchivableFilesFinderTest.php | 2 +- .../Test/Package/Archiver/ArchiverTest.php | 2 +- .../Test/Package/CompletePackageTest.php | 2 +- .../Test/Package/RootAliasPackageTest.php | 2 +- .../Test/Plugin/PluginInstallerTest.php | 4 +- .../StrictConfirmationQuestionTest.php | 2 +- .../Test/Repository/ArrayRepositoryTest.php | 2 +- .../Repository/ArtifactRepositoryTest.php | 8 +-- .../Repository/ComposerRepositoryTest.php | 2 +- .../Repository/CompositeRepositoryTest.php | 2 +- .../Repository/FilesystemRepositoryTest.php | 2 +- .../Test/Repository/PathRepositoryTest.php | 14 ++--- .../Repository/Pear/ChannelReaderTest.php | 2 +- .../Pear/ChannelRest10ReaderTest.php | 4 +- .../Pear/ChannelRest11ReaderTest.php | 4 +- .../Pear/PackageDependencyParserTest.php | 2 +- .../Test/Repository/PearRepositoryTest.php | 2 +- .../Test/Repository/RepositoryFactoryTest.php | 2 +- .../Test/Repository/RepositoryManagerTest.php | 2 +- .../Test/Repository/Vcs/FossilDriverTest.php | 2 +- .../Repository/Vcs/GitBitbucketDriverTest.php | 2 +- .../Test/Repository/Vcs/GitHubDriverTest.php | 2 +- .../Test/Repository/Vcs/GitLabDriverTest.php | 4 +- .../Test/Repository/Vcs/HgDriverTest.php | 2 +- .../Repository/Vcs/PerforceDriverTest.php | 2 +- .../Test/Repository/Vcs/SvnDriverTest.php | 2 +- .../Test/Repository/VcsRepositoryTest.php | 2 +- tests/Composer/{ => Test}/TestCase.php | 2 +- .../Test/Util/ConfigValidatorTest.php | 2 +- tests/Composer/Test/Util/ErrorHandlerTest.php | 2 +- tests/Composer/Test/Util/FilesystemTest.php | 2 +- .../Test/Util/ProcessExecutorTest.php | 2 +- tests/bootstrap.php | 2 +- 86 files changed, 163 insertions(+), 166 deletions(-) rename tests/Composer/{ => Test}/TestCase.php (99%) diff --git a/.travis.yml b/.travis.yml index 064782fa2..c1511b6c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -60,7 +60,7 @@ before_script: script: # run test suite directories in parallel using GNU parallel - - ls -d tests/Composer/Test/* | parallel --gnu --keep-order 'echo "Running {} tests"; ./vendor/bin/phpunit -c tests/complete.phpunit.xml --colors=always {} || (echo -e "\e[41mFAILED\e[0m {}" && exit 1);' + - ls -d tests/Composer/Test/* | grep -v TestCase.php | parallel --gnu --keep-order 'echo "Running {} tests"; ./vendor/bin/phpunit -c tests/complete.phpunit.xml --colors=always {} || (echo -e "\e[41mFAILED\e[0m {}" && exit 1);' before_deploy: - php -d phar.readonly=0 bin/compile diff --git a/src/Composer/Command/BaseCommand.php b/src/Composer/Command/BaseCommand.php index d6b014d7d..888b2a7f2 100644 --- a/src/Composer/Command/BaseCommand.php +++ b/src/Composer/Command/BaseCommand.php @@ -33,7 +33,7 @@ use Symfony\Component\Console\Command\Command; abstract class BaseCommand extends Command { /** - * @var Composer + * @var Composer|null */ private $composer; diff --git a/src/Composer/Command/ShowCommand.php b/src/Composer/Command/ShowCommand.php index e73d6ead9..cc0fe0154 100644 --- a/src/Composer/Command/ShowCommand.php +++ b/src/Composer/Command/ShowCommand.php @@ -737,7 +737,7 @@ EOT /** * Display the tree * - * @param $arrayTree + * @param array $arrayTree */ protected function displayPackageTree(array $arrayTree) { @@ -782,7 +782,7 @@ EOT /** * Generate the package tree * - * @param PackageInterface|string $package + * @param PackageInterface $package * @param RepositoryInterface $installedRepo * @param RepositoryInterface $distantRepos * @return array @@ -792,38 +792,36 @@ EOT RepositoryInterface $installedRepo, RepositoryInterface $distantRepos ) { - if (is_object($package)) { - $requires = $package->getRequires(); - ksort($requires); - $children = array(); - foreach ($requires as $requireName => $require) { - $packagesInTree = array($package->getName(), $requireName); + $requires = $package->getRequires(); + ksort($requires); + $children = array(); + foreach ($requires as $requireName => $require) { + $packagesInTree = array($package->getName(), $requireName); - $treeChildDesc = array( - 'name' => $requireName, - 'version' => $require->getPrettyConstraint(), - ); - - $deepChildren = $this->addTree($requireName, $require, $installedRepo, $distantRepos, $packagesInTree); - - if ($deepChildren) { - $treeChildDesc['requires'] = $deepChildren; - } - - $children[] = $treeChildDesc; - } - $tree = array( - 'name' => $package->getPrettyName(), - 'version' => $package->getPrettyVersion(), - 'description' => $package->getDescription(), + $treeChildDesc = array( + 'name' => $requireName, + 'version' => $require->getPrettyConstraint(), ); - if ($children) { - $tree['requires'] = $children; + $deepChildren = $this->addTree($requireName, $require, $installedRepo, $distantRepos, $packagesInTree); + + if ($deepChildren) { + $treeChildDesc['requires'] = $deepChildren; } - return $tree; + $children[] = $treeChildDesc; } + $tree = array( + 'name' => $package->getPrettyName(), + 'version' => $package->getPrettyVersion(), + 'description' => $package->getDescription(), + ); + + if ($children) { + $tree['requires'] = $children; + } + + return $tree; } /** diff --git a/src/Composer/DependencyResolver/RuleSetGenerator.php b/src/Composer/DependencyResolver/RuleSetGenerator.php index 60617ba43..6117c1d95 100644 --- a/src/Composer/DependencyResolver/RuleSetGenerator.php +++ b/src/Composer/DependencyResolver/RuleSetGenerator.php @@ -50,7 +50,7 @@ class RuleSetGenerator * reason for generating this rule * @param mixed $reasonData Any data, e.g. the requirement name, * that goes with the reason - * @return Rule The generated rule or null if tautological + * @return Rule|null The generated rule or null if tautological */ protected function createRequireRule(PackageInterface $package, array $providers, $reason, $reasonData = null) { @@ -117,7 +117,7 @@ class RuleSetGenerator * reason for generating this rule * @param mixed $reasonData Any data, e.g. the package name, that * goes with the reason - * @return Rule The generated rule + * @return Rule|null The generated rule */ protected function createRule2Literals(PackageInterface $issuer, PackageInterface $provider, $reason, $reasonData = null) { diff --git a/src/Composer/DependencyResolver/RuleWatchGraph.php b/src/Composer/DependencyResolver/RuleWatchGraph.php index a9f7414b2..31a22414d 100644 --- a/src/Composer/DependencyResolver/RuleWatchGraph.php +++ b/src/Composer/DependencyResolver/RuleWatchGraph.php @@ -127,9 +127,9 @@ class RuleWatchGraph * * The rule node's watched literals are updated accordingly. * - * @param $fromLiteral mixed A literal the node used to watch - * @param $toLiteral mixed A literal the node should watch now - * @param $node mixed The rule node to be moved + * @param int $fromLiteral A literal the node used to watch + * @param int $toLiteral A literal the node should watch now + * @param RuleWatchNode $node The rule node to be moved */ protected function moveWatch($fromLiteral, $toLiteral, $node) { diff --git a/src/Composer/Downloader/GitDownloader.php b/src/Composer/Downloader/GitDownloader.php index 740c4e3ec..869d5330b 100644 --- a/src/Composer/Downloader/GitDownloader.php +++ b/src/Composer/Downloader/GitDownloader.php @@ -433,7 +433,7 @@ class GitDownloader extends VcsDownloader implements DvcsDownloaderInterface } /** - * @param $path + * @param string $path * @throws \RuntimeException */ protected function discardChanges($path) @@ -447,7 +447,7 @@ class GitDownloader extends VcsDownloader implements DvcsDownloaderInterface } /** - * @param $path + * @param string $path * @throws \RuntimeException */ protected function stashChanges($path) @@ -461,7 +461,7 @@ class GitDownloader extends VcsDownloader implements DvcsDownloaderInterface } /** - * @param $path + * @param string $path * @throws \RuntimeException */ protected function viewDiff($path) diff --git a/src/Composer/Downloader/PearPackageExtractor.php b/src/Composer/Downloader/PearPackageExtractor.php index 44267d558..5eaf3edcd 100644 --- a/src/Composer/Downloader/PearPackageExtractor.php +++ b/src/Composer/Downloader/PearPackageExtractor.php @@ -73,8 +73,8 @@ class PearPackageExtractor * Perform copy actions on files * * @param array $files array of copy actions ('from', 'to') with relative paths - * @param $source string path to source dir. - * @param $target string path to destination dir + * @param string $source path to source dir. + * @param string $target path to destination dir * @param array $roles array [role => roleRoot] relative root for files having that role * @param array $vars list of values can be used for replacement tasks */ @@ -135,7 +135,7 @@ class PearPackageExtractor */ private function buildCopyActions($source, array $roles, $vars) { - /** @var $package \SimpleXmlElement */ + /** @var \SimpleXmlElement $package */ $package = simplexml_load_string(file_get_contents($this->combine($source, 'package.xml'))); if (false === $package) { throw new \RuntimeException('Package definition file is not valid.'); diff --git a/src/Composer/EventDispatcher/EventDispatcher.php b/src/Composer/EventDispatcher/EventDispatcher.php index 145944b07..98c9a6c66 100644 --- a/src/Composer/EventDispatcher/EventDispatcher.php +++ b/src/Composer/EventDispatcher/EventDispatcher.php @@ -264,7 +264,7 @@ class EventDispatcher $finder = new PhpExecutableFinder(); $phpPath = $finder->find(); if (!$phpPath) { - throw new \RuntimeException('Failed to locate PHP binary to execute '.$scriptName); + throw new \RuntimeException('Failed to locate PHP binary to execute '.$phpPath); } $allowUrlFOpenFlag = ' -d allow_url_fopen=' . ProcessExecutor::escape(ini_get('allow_url_fopen')); diff --git a/src/Composer/Package/Archiver/GitExcludeFilter.php b/src/Composer/Package/Archiver/GitExcludeFilter.php index 0cdc98c81..f79734855 100644 --- a/src/Composer/Package/Archiver/GitExcludeFilter.php +++ b/src/Composer/Package/Archiver/GitExcludeFilter.php @@ -64,7 +64,7 @@ class GitExcludeFilter extends BaseExcludeFilter * * @param string $line A line from .gitattributes * - * @return array An exclude pattern for filter() + * @return array|null An exclude pattern for filter() */ public function parseGitAttributesLine($line) { diff --git a/src/Composer/Package/Archiver/HgExcludeFilter.php b/src/Composer/Package/Archiver/HgExcludeFilter.php index 3e2b25d5c..b83b7756b 100644 --- a/src/Composer/Package/Archiver/HgExcludeFilter.php +++ b/src/Composer/Package/Archiver/HgExcludeFilter.php @@ -54,7 +54,7 @@ class HgExcludeFilter extends BaseExcludeFilter * * @param string $line A line from .hgignore * - * @return array An exclude pattern for filter() + * @return array|null An exclude pattern for filter() */ public function parseHgIgnoreLine($line) { diff --git a/src/Composer/Package/Archiver/ZipArchiver.php b/src/Composer/Package/Archiver/ZipArchiver.php index d1d7573f3..65694cb88 100644 --- a/src/Composer/Package/Archiver/ZipArchiver.php +++ b/src/Composer/Package/Archiver/ZipArchiver.php @@ -37,7 +37,7 @@ class ZipArchiver implements ArchiverInterface if ($res === true) { $files = new ArchivableFilesFinder($sources, $excludes, $ignoreFilters); foreach ($files as $file) { - /** @var $file \SplFileInfo */ + /** @var \SplFileInfo $file */ $filepath = strtr($file->getPath()."/".$file->getFilename(), '\\', '/'); $localname = str_replace($sources.'/', '', $filepath); if ($file->isDir()) { diff --git a/src/Composer/Repository/ArtifactRepository.php b/src/Composer/Repository/ArtifactRepository.php index 0184cb4d5..079d34c54 100644 --- a/src/Composer/Repository/ArtifactRepository.php +++ b/src/Composer/Repository/ArtifactRepository.php @@ -84,7 +84,7 @@ class ArtifactRepository extends ArrayRepository implements ConfigurableReposito * Find a file by name, returning the one that has the shortest path. * * @param \ZipArchive $zip - * @param $filename + * @param string $filename * @return bool|int */ private function locateFile(\ZipArchive $zip, $filename) diff --git a/src/Composer/Repository/Pear/BaseChannelReader.php b/src/Composer/Repository/Pear/BaseChannelReader.php index d11a96d7b..9b26eb9db 100644 --- a/src/Composer/Repository/Pear/BaseChannelReader.php +++ b/src/Composer/Repository/Pear/BaseChannelReader.php @@ -44,8 +44,8 @@ abstract class BaseChannelReader /** * Read content from remote filesystem. * - * @param $origin string server - * @param $path string relative path to content + * @param string $origin server + * @param string $path relative path to content * @throws \UnexpectedValueException * @return \SimpleXMLElement */ @@ -63,8 +63,8 @@ abstract class BaseChannelReader /** * Read xml content from remote filesystem * - * @param $origin string server - * @param $path string relative path to content + * @param string $origin server + * @param string $path relative path to content * @throws \UnexpectedValueException * @return \SimpleXMLElement */ diff --git a/src/Composer/Repository/Pear/ChannelReader.php b/src/Composer/Repository/Pear/ChannelReader.php index 00b62b89c..73cc9152e 100644 --- a/src/Composer/Repository/Pear/ChannelReader.php +++ b/src/Composer/Repository/Pear/ChannelReader.php @@ -44,7 +44,7 @@ class ChannelReader extends BaseChannelReader /** * Reads PEAR channel through REST interface and builds list of packages * - * @param $url string PEAR Channel url + * @param string $url PEAR Channel url * @throws \UnexpectedValueException * @return ChannelInfo */ @@ -70,8 +70,8 @@ class ChannelReader extends BaseChannelReader /** * Reads channel supported REST interfaces and selects one of them * - * @param $channelXml \SimpleXMLElement - * @param $supportedVersions string[] supported PEAR REST protocols + * @param \SimpleXMLElement $channelXml + * @param string[] $supportedVersions supported PEAR REST protocols * @return array|null hash with selected version and baseUrl */ private function selectRestVersion($channelXml, $supportedVersions) diff --git a/src/Composer/Repository/Pear/ChannelRest10Reader.php b/src/Composer/Repository/Pear/ChannelRest10Reader.php index 92498dae9..489914d5d 100644 --- a/src/Composer/Repository/Pear/ChannelRest10Reader.php +++ b/src/Composer/Repository/Pear/ChannelRest10Reader.php @@ -39,7 +39,7 @@ class ChannelRest10Reader extends BaseChannelReader /** * Reads package descriptions using PEAR Rest 1.0 interface * - * @param $baseUrl string base Url interface + * @param string $baseUrl base Url interface * * @return PackageInfo[] */ @@ -52,7 +52,7 @@ class ChannelRest10Reader extends BaseChannelReader * Read list of packages from * {baseUrl}/p/packages.xml * - * @param $baseUrl string + * @param string $baseUrl * @return PackageInfo[] */ private function readPackages($baseUrl) @@ -75,8 +75,8 @@ class ChannelRest10Reader extends BaseChannelReader * Read package info from * {baseUrl}/p/{package}/info.xml * - * @param $baseUrl string - * @param $packageName string + * @param string $baseUrl + * @param string $packageName * @return PackageInfo */ private function readPackage($baseUrl, $packageName) @@ -105,8 +105,8 @@ class ChannelRest10Reader extends BaseChannelReader * Read package releases from * {baseUrl}/p/{package}/allreleases.xml * - * @param $baseUrl string - * @param $packageName string + * @param string $baseUrl + * @param string $packageName * @throws \Composer\Downloader\TransportException|\Exception * @return ReleaseInfo[] hash array with keys as version numbers */ @@ -146,9 +146,9 @@ class ChannelRest10Reader extends BaseChannelReader * Read package dependencies from * {baseUrl}/p/{package}/deps.{version}.txt * - * @param $baseUrl string - * @param $packageName string - * @param $version string + * @param string $baseUrl + * @param string $packageName + * @param string $version * @return DependencyInfo[] */ private function readPackageReleaseDependencies($baseUrl, $packageName, $version) diff --git a/src/Composer/Repository/Pear/ChannelRest11Reader.php b/src/Composer/Repository/Pear/ChannelRest11Reader.php index 22cd61cc0..f9e05f5be 100644 --- a/src/Composer/Repository/Pear/ChannelRest11Reader.php +++ b/src/Composer/Repository/Pear/ChannelRest11Reader.php @@ -35,7 +35,7 @@ class ChannelRest11Reader extends BaseChannelReader /** * Reads package descriptions using PEAR Rest 1.1 interface * - * @param $baseUrl string base Url interface + * @param string $baseUrl base Url interface * * @return PackageInfo[] */ @@ -48,7 +48,7 @@ class ChannelRest11Reader extends BaseChannelReader * Read list of channel categories from * {baseUrl}/c/categories.xml * - * @param $baseUrl string + * @param string $baseUrl * @return PackageInfo[] */ private function readChannelPackages($baseUrl) @@ -70,8 +70,8 @@ class ChannelRest11Reader extends BaseChannelReader * Read packages from * {baseUrl}/c/{category}/packagesinfo.xml * - * @param $baseUrl string - * @param $categoryName string + * @param string $baseUrl + * @param string $categoryName * @return PackageInfo[] */ private function readCategoryPackages($baseUrl, $categoryName) @@ -92,7 +92,7 @@ class ChannelRest11Reader extends BaseChannelReader /** * Parses package node. * - * @param $packageInfo \SimpleXMLElement xml element describing package + * @param \SimpleXMLElement $packageInfo xml element describing package * @return PackageInfo */ private function parsePackage($packageInfo) diff --git a/src/Composer/Repository/Pear/PackageDependencyParser.php b/src/Composer/Repository/Pear/PackageDependencyParser.php index dc6879d6d..24f8fb9f9 100644 --- a/src/Composer/Repository/Pear/PackageDependencyParser.php +++ b/src/Composer/Repository/Pear/PackageDependencyParser.php @@ -22,7 +22,7 @@ class PackageDependencyParser /** * Builds dependency information. It detects used package.xml format. * - * @param $depArray array + * @param array $depArray * @return DependencyInfo */ public function buildDependencyInfo($depArray) @@ -46,7 +46,7 @@ class PackageDependencyParser * { type="php|os|sapi|ext|pkg" rel="has|not|eq|ge|gt|le|lt" optional="yes" * channel="channelName" name="extName|packageName" } * - * @param $depArray array Dependency data in package.xml 1.0 format + * @param array $depArray Dependency data in package.xml 1.0 format * @return DependencyConstraint[] */ private function buildDependency10Info($depArray) @@ -115,7 +115,7 @@ class PackageDependencyParser /** * Builds dependency information from package.xml 2.0 format * - * @param $depArray array Dependency data in package.xml 1.0 format + * @param array $depArray Dependency data in package.xml 1.0 format * @return DependencyInfo */ private function buildDependency20Info($depArray) @@ -187,8 +187,8 @@ class PackageDependencyParser /** * Builds dependency constraint of 'extension' type * - * @param $depItem array dependency constraint or array of dependency constraints - * @param $depType string target type of building constraint. + * @param array $depItem dependency constraint or array of dependency constraints + * @param string $depType target type of building constraint. * @return DependencyConstraint[] */ private function buildDepExtensionConstraints($depItem, $depType) @@ -217,8 +217,8 @@ class PackageDependencyParser /** * Builds dependency constraint of 'package' type * - * @param $depItem array dependency constraint or array of dependency constraints - * @param $depType string target type of building constraint. + * @param array $depItem dependency constraint or array of dependency constraints + * @param string $depType target type of building constraint. * @return DependencyConstraint[] */ private function buildDepPackageConstraints($depItem, $depType) @@ -287,7 +287,7 @@ class PackageDependencyParser /** * Softened version parser * - * @param $version + * @param string $version * @return null|string */ private function parseVersion($version) diff --git a/src/Composer/Util/Filesystem.php b/src/Composer/Util/Filesystem.php index a3af3b825..ebb7dfbd3 100644 --- a/src/Composer/Util/Filesystem.php +++ b/src/Composer/Util/Filesystem.php @@ -264,8 +264,8 @@ class Filesystem /** * Copies a file or directory from $source to $target. * - * @param $source - * @param $target + * @param string $source + * @param string $target * @return bool */ public function copy($source, $target) diff --git a/src/Composer/Util/NoProxyPattern.php b/src/Composer/Util/NoProxyPattern.php index 5cc6e361b..a6cb112be 100644 --- a/src/Composer/Util/NoProxyPattern.php +++ b/src/Composer/Util/NoProxyPattern.php @@ -35,7 +35,7 @@ class NoProxyPattern * * @param string $url * - * @return true if the URL matches one of the rules. + * @return bool true if the URL matches one of the rules. */ public function test($url) { diff --git a/src/Composer/Util/Perforce.php b/src/Composer/Util/Perforce.php index d7c6816cc..b064feec4 100644 --- a/src/Composer/Util/Perforce.php +++ b/src/Composer/Util/Perforce.php @@ -515,7 +515,7 @@ class Perforce } /** - * @param $reference + * @param string $reference * @return mixed|null */ protected function getChangeList($reference) @@ -537,8 +537,8 @@ class Perforce } /** - * @param $fromReference - * @param $toReference + * @param string $fromReference + * @param string $toReference * @return mixed|null */ public function getCommitLogs($fromReference, $toReference) diff --git a/src/Composer/Util/StreamContextFactory.php b/src/Composer/Util/StreamContextFactory.php index f5f12d315..4e9b7f480 100644 --- a/src/Composer/Util/StreamContextFactory.php +++ b/src/Composer/Util/StreamContextFactory.php @@ -160,7 +160,7 @@ final class StreamContextFactory * This method fixes the array by moving the content-type header to the end * * @link https://bugs.php.net/bug.php?id=61548 - * @param $header + * @param string|array $header * @return array */ private static function fixHttpHeaderField($header) diff --git a/src/Composer/Util/TlsHelper.php b/src/Composer/Util/TlsHelper.php index e04c7157e..34336d06c 100644 --- a/src/Composer/Util/TlsHelper.php +++ b/src/Composer/Util/TlsHelper.php @@ -164,7 +164,7 @@ final class TlsHelper * * @param string $certName CN/SAN * - * @return callable|null + * @return callable|void */ private static function certNameMatcher($certName) { diff --git a/tests/Composer/Test/AllFunctionalTest.php b/tests/Composer/Test/AllFunctionalTest.php index 1fc552daf..7a3ef3ee0 100644 --- a/tests/Composer/Test/AllFunctionalTest.php +++ b/tests/Composer/Test/AllFunctionalTest.php @@ -12,7 +12,7 @@ namespace Composer\Test; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Symfony\Component\Finder\Finder; use Symfony\Component\Process\Process; diff --git a/tests/Composer/Test/ApplicationTest.php b/tests/Composer/Test/ApplicationTest.php index 37d434fa8..5f491440b 100644 --- a/tests/Composer/Test/ApplicationTest.php +++ b/tests/Composer/Test/ApplicationTest.php @@ -13,7 +13,7 @@ namespace Composer\Test; use Composer\Console\Application; -use Composer\TestCase; +use Composer\Test\TestCase; use Symfony\Component\Console\Output\OutputInterface; class ApplicationTest extends TestCase diff --git a/tests/Composer/Test/Autoload/AutoloadGeneratorTest.php b/tests/Composer/Test/Autoload/AutoloadGeneratorTest.php index b8eec2f43..4d672084e 100644 --- a/tests/Composer/Test/Autoload/AutoloadGeneratorTest.php +++ b/tests/Composer/Test/Autoload/AutoloadGeneratorTest.php @@ -17,7 +17,7 @@ use Composer\Package\Link; use Composer\Util\Filesystem; use Composer\Package\AliasPackage; use Composer\Package\Package; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Script\ScriptEvents; use Composer\Repository\InstalledRepositoryInterface; use Composer\Installer\InstallationManager; diff --git a/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php b/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php index 05f0d0530..ae7b597b7 100644 --- a/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php +++ b/tests/Composer/Test/Autoload/ClassMapGeneratorTest.php @@ -19,7 +19,7 @@ namespace Composer\Test\Autoload; use Composer\Autoload\ClassMapGenerator; -use Composer\TestCase; +use Composer\Test\TestCase; use Symfony\Component\Finder\Finder; use Composer\Util\Filesystem; diff --git a/tests/Composer/Test/CacheTest.php b/tests/Composer/Test/CacheTest.php index 9830fd7de..50c767752 100644 --- a/tests/Composer/Test/CacheTest.php +++ b/tests/Composer/Test/CacheTest.php @@ -12,7 +12,7 @@ namespace Composer\Test; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; class CacheTest extends TestCase diff --git a/tests/Composer/Test/Command/InitCommandTest.php b/tests/Composer/Test/Command/InitCommandTest.php index d355b6cd1..06d8a004b 100644 --- a/tests/Composer/Test/Command/InitCommandTest.php +++ b/tests/Composer/Test/Command/InitCommandTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Command; use Composer\Command\InitCommand; -use Composer\TestCase; +use Composer\Test\TestCase; class InitCommandTest extends TestCase { diff --git a/tests/Composer/Test/Command/RunScriptCommandTest.php b/tests/Composer/Test/Command/RunScriptCommandTest.php index 53478b323..97acc6d26 100644 --- a/tests/Composer/Test/Command/RunScriptCommandTest.php +++ b/tests/Composer/Test/Command/RunScriptCommandTest.php @@ -15,7 +15,7 @@ namespace Composer\Test\Command; use Composer\Composer; use Composer\Config; use Composer\Script\Event as ScriptEvent; -use Composer\TestCase; +use Composer\Test\TestCase; class RunScriptCommandTest extends TestCase { diff --git a/tests/Composer/Test/ComposerTest.php b/tests/Composer/Test/ComposerTest.php index aabe1deab..c2c425e76 100644 --- a/tests/Composer/Test/ComposerTest.php +++ b/tests/Composer/Test/ComposerTest.php @@ -13,7 +13,7 @@ namespace Composer\Test; use Composer\Composer; -use Composer\TestCase; +use Composer\Test\TestCase; class ComposerTest extends TestCase { diff --git a/tests/Composer/Test/Config/JsonConfigSourceTest.php b/tests/Composer/Test/Config/JsonConfigSourceTest.php index e558932c2..8c5d641de 100644 --- a/tests/Composer/Test/Config/JsonConfigSourceTest.php +++ b/tests/Composer/Test/Config/JsonConfigSourceTest.php @@ -10,11 +10,11 @@ * file that was distributed with this source code. */ -namespace Composer\Test\Json; +namespace Composer\Test\Config; use Composer\Config\JsonConfigSource; use Composer\Json\JsonFile; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; class JsonConfigSourceTest extends TestCase diff --git a/tests/Composer/Test/ConfigTest.php b/tests/Composer/Test/ConfigTest.php index f84d5d35f..57c368988 100644 --- a/tests/Composer/Test/ConfigTest.php +++ b/tests/Composer/Test/ConfigTest.php @@ -13,7 +13,7 @@ namespace Composer\Test; use Composer\Config; -use PHPUnit\Framework\TestCase; +use Composer\Test\TestCase; class ConfigTest extends TestCase { diff --git a/tests/Composer/Test/DefaultConfigTest.php b/tests/Composer/Test/DefaultConfigTest.php index 23de8741f..04298e5a1 100644 --- a/tests/Composer/Test/DefaultConfigTest.php +++ b/tests/Composer/Test/DefaultConfigTest.php @@ -13,7 +13,7 @@ namespace Composer\Test; use Composer\Config; -use PHPUnit\Framework\TestCase; +use Composer\Test\TestCase; class DefaultConfigTest extends TestCase { diff --git a/tests/Composer/Test/DependencyResolver/DefaultPolicyTest.php b/tests/Composer/Test/DependencyResolver/DefaultPolicyTest.php index a73139d54..2611d772f 100644 --- a/tests/Composer/Test/DependencyResolver/DefaultPolicyTest.php +++ b/tests/Composer/Test/DependencyResolver/DefaultPolicyTest.php @@ -19,7 +19,7 @@ use Composer\DependencyResolver\Pool; use Composer\Package\Link; use Composer\Package\AliasPackage; use Composer\Semver\Constraint\Constraint; -use Composer\TestCase; +use Composer\Test\TestCase; class DefaultPolicyTest extends TestCase { diff --git a/tests/Composer/Test/DependencyResolver/PoolTest.php b/tests/Composer/Test/DependencyResolver/PoolTest.php index 14b24fc9f..aa38fa31d 100644 --- a/tests/Composer/Test/DependencyResolver/PoolTest.php +++ b/tests/Composer/Test/DependencyResolver/PoolTest.php @@ -15,7 +15,7 @@ namespace Composer\Test\DependencyResolver; use Composer\DependencyResolver\Pool; use Composer\Repository\ArrayRepository; use Composer\Package\BasePackage; -use Composer\TestCase; +use Composer\Test\TestCase; class PoolTest extends TestCase { diff --git a/tests/Composer/Test/DependencyResolver/RequestTest.php b/tests/Composer/Test/DependencyResolver/RequestTest.php index 08e0cae96..dfa411ed9 100644 --- a/tests/Composer/Test/DependencyResolver/RequestTest.php +++ b/tests/Composer/Test/DependencyResolver/RequestTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\DependencyResolver; use Composer\DependencyResolver\Request; use Composer\Repository\ArrayRepository; -use Composer\TestCase; +use Composer\Test\TestCase; class RequestTest extends TestCase { diff --git a/tests/Composer/Test/DependencyResolver/RuleSetTest.php b/tests/Composer/Test/DependencyResolver/RuleSetTest.php index cecae613d..bd6efbc1b 100644 --- a/tests/Composer/Test/DependencyResolver/RuleSetTest.php +++ b/tests/Composer/Test/DependencyResolver/RuleSetTest.php @@ -17,7 +17,7 @@ use Composer\DependencyResolver\Rule; use Composer\DependencyResolver\RuleSet; use Composer\DependencyResolver\Pool; use Composer\Repository\ArrayRepository; -use Composer\TestCase; +use Composer\Test\TestCase; class RuleSetTest extends TestCase { diff --git a/tests/Composer/Test/DependencyResolver/RuleTest.php b/tests/Composer/Test/DependencyResolver/RuleTest.php index a0339f27a..19f5fddea 100644 --- a/tests/Composer/Test/DependencyResolver/RuleTest.php +++ b/tests/Composer/Test/DependencyResolver/RuleTest.php @@ -17,7 +17,7 @@ use Composer\DependencyResolver\Rule; use Composer\DependencyResolver\RuleSet; use Composer\DependencyResolver\Pool; use Composer\Repository\ArrayRepository; -use Composer\TestCase; +use Composer\Test\TestCase; class RuleTest extends TestCase { diff --git a/tests/Composer/Test/DependencyResolver/SolverTest.php b/tests/Composer/Test/DependencyResolver/SolverTest.php index 28c439b9e..24147e6ad 100644 --- a/tests/Composer/Test/DependencyResolver/SolverTest.php +++ b/tests/Composer/Test/DependencyResolver/SolverTest.php @@ -20,7 +20,7 @@ use Composer\DependencyResolver\Request; use Composer\DependencyResolver\Solver; use Composer\DependencyResolver\SolverProblemsException; use Composer\Package\Link; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Semver\Constraint\MultiConstraint; class SolverTest extends TestCase @@ -30,6 +30,7 @@ class SolverTest extends TestCase protected $repoInstalled; protected $request; protected $policy; + protected $solver; public function setUp() { @@ -37,7 +38,7 @@ class SolverTest extends TestCase $this->repo = new ArrayRepository; $this->repoInstalled = new ArrayRepository; - $this->request = new Request($this->pool); + $this->request = new Request(); $this->policy = new DefaultPolicy; $this->solver = new Solver($this->policy, $this->pool, $this->repoInstalled, new NullIO()); } diff --git a/tests/Composer/Test/Downloader/FileDownloaderTest.php b/tests/Composer/Test/Downloader/FileDownloaderTest.php index d4f6b7ad7..476b9a8f7 100644 --- a/tests/Composer/Test/Downloader/FileDownloaderTest.php +++ b/tests/Composer/Test/Downloader/FileDownloaderTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\FileDownloader; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; class FileDownloaderTest extends TestCase diff --git a/tests/Composer/Test/Downloader/FossilDownloaderTest.php b/tests/Composer/Test/Downloader/FossilDownloaderTest.php index ca941fe20..623f7dec2 100644 --- a/tests/Composer/Test/Downloader/FossilDownloaderTest.php +++ b/tests/Composer/Test/Downloader/FossilDownloaderTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\FossilDownloader; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\Platform; diff --git a/tests/Composer/Test/Downloader/GitDownloaderTest.php b/tests/Composer/Test/Downloader/GitDownloaderTest.php index ff1c5c201..c3cd31a4a 100644 --- a/tests/Composer/Test/Downloader/GitDownloaderTest.php +++ b/tests/Composer/Test/Downloader/GitDownloaderTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\GitDownloader; use Composer\Config; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\Platform; diff --git a/tests/Composer/Test/Downloader/HgDownloaderTest.php b/tests/Composer/Test/Downloader/HgDownloaderTest.php index 714388f2c..c71d463cb 100644 --- a/tests/Composer/Test/Downloader/HgDownloaderTest.php +++ b/tests/Composer/Test/Downloader/HgDownloaderTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\HgDownloader; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\Platform; diff --git a/tests/Composer/Test/Downloader/PearPackageExtractorTest.php b/tests/Composer/Test/Downloader/PearPackageExtractorTest.php index 92004d0f1..23334f303 100644 --- a/tests/Composer/Test/Downloader/PearPackageExtractorTest.php +++ b/tests/Composer/Test/Downloader/PearPackageExtractorTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\PearPackageExtractor; -use Composer\TestCase; +use Composer\Test\TestCase; class PearPackageExtractorTest extends TestCase { diff --git a/tests/Composer/Test/Downloader/PerforceDownloaderTest.php b/tests/Composer/Test/Downloader/PerforceDownloaderTest.php index 3fae0f7af..ebb1f0456 100644 --- a/tests/Composer/Test/Downloader/PerforceDownloaderTest.php +++ b/tests/Composer/Test/Downloader/PerforceDownloaderTest.php @@ -16,7 +16,7 @@ use Composer\Downloader\PerforceDownloader; use Composer\Config; use Composer\Repository\VcsRepository; use Composer\IO\IOInterface; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; /** diff --git a/tests/Composer/Test/Downloader/XzDownloaderTest.php b/tests/Composer/Test/Downloader/XzDownloaderTest.php index fc33adcf4..6df782ddb 100644 --- a/tests/Composer/Test/Downloader/XzDownloaderTest.php +++ b/tests/Composer/Test/Downloader/XzDownloaderTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\XzDownloader; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\Platform; use Composer\Util\RemoteFilesystem; diff --git a/tests/Composer/Test/Downloader/ZipDownloaderTest.php b/tests/Composer/Test/Downloader/ZipDownloaderTest.php index 3d4ebac7b..466fd35c7 100644 --- a/tests/Composer/Test/Downloader/ZipDownloaderTest.php +++ b/tests/Composer/Test/Downloader/ZipDownloaderTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Downloader; use Composer\Downloader\ZipDownloader; use Composer\Package\PackageInterface; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; class ZipDownloaderTest extends TestCase @@ -24,6 +24,8 @@ class ZipDownloaderTest extends TestCase */ private $testDir; private $prophet; + private $io; + private $config; public function setUp() { @@ -46,9 +48,9 @@ class ZipDownloaderTest extends TestCase $reflectedProperty = $reflectionClass->getProperty($name); $reflectedProperty->setAccessible(true); if ($obj === null) { - $reflectedProperty = $reflectedProperty->setValue($value); + $reflectedProperty->setValue($value); } else { - $reflectedProperty = $reflectedProperty->setValue($obj, $value); + $reflectedProperty->setValue($obj, $value); } } diff --git a/tests/Composer/Test/EventDispatcher/EventDispatcherTest.php b/tests/Composer/Test/EventDispatcher/EventDispatcherTest.php index 7f0327d9c..689462bbd 100644 --- a/tests/Composer/Test/EventDispatcher/EventDispatcherTest.php +++ b/tests/Composer/Test/EventDispatcher/EventDispatcherTest.php @@ -17,7 +17,7 @@ use Composer\EventDispatcher\EventDispatcher; use Composer\Installer\InstallerEvents; use Composer\Config; use Composer\Composer; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\IO\BufferIO; use Composer\Script\ScriptEvents; use Composer\Script\CommandEvent; diff --git a/tests/Composer/Test/IO/ConsoleIOTest.php b/tests/Composer/Test/IO/ConsoleIOTest.php index 57809769c..ef5096300 100644 --- a/tests/Composer/Test/IO/ConsoleIOTest.php +++ b/tests/Composer/Test/IO/ConsoleIOTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\IO; use Composer\IO\ConsoleIO; -use Composer\TestCase; +use Composer\Test\TestCase; use Symfony\Component\Console\Output\OutputInterface; class ConsoleIOTest extends TestCase diff --git a/tests/Composer/Test/IO/NullIOTest.php b/tests/Composer/Test/IO/NullIOTest.php index 6902f08bd..d37fb2a4f 100644 --- a/tests/Composer/Test/IO/NullIOTest.php +++ b/tests/Composer/Test/IO/NullIOTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\IO; use Composer\IO\NullIO; -use Composer\TestCase; +use Composer\Test\TestCase; class NullIOTest extends TestCase { diff --git a/tests/Composer/Test/Installer/LibraryInstallerTest.php b/tests/Composer/Test/Installer/LibraryInstallerTest.php index 41581f712..772bb05c8 100644 --- a/tests/Composer/Test/Installer/LibraryInstallerTest.php +++ b/tests/Composer/Test/Installer/LibraryInstallerTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Installer; use Composer\Installer\LibraryInstaller; use Composer\Util\Filesystem; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Composer; use Composer\Config; diff --git a/tests/Composer/Test/InstallerTest.php b/tests/Composer/Test/InstallerTest.php index 8614495ee..c3b957afb 100644 --- a/tests/Composer/Test/InstallerTest.php +++ b/tests/Composer/Test/InstallerTest.php @@ -29,7 +29,7 @@ use Symfony\Component\Console\Input\StringInput; use Symfony\Component\Console\Output\StreamOutput; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Formatter\OutputFormatter; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\IO\BufferIO; class InstallerTest extends TestCase diff --git a/tests/Composer/Test/Mock/FactoryMock.php b/tests/Composer/Test/Mock/FactoryMock.php index a6f88b9cb..47683afcd 100644 --- a/tests/Composer/Test/Mock/FactoryMock.php +++ b/tests/Composer/Test/Mock/FactoryMock.php @@ -19,7 +19,7 @@ use Composer\Repository\RepositoryManager; use Composer\Repository\WritableRepositoryInterface; use Composer\Installer; use Composer\IO\IOInterface; -use Composer\TestCase; +use Composer\Test\TestCase; class FactoryMock extends Factory { diff --git a/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php b/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php index 5856efbf5..f6afe10f1 100644 --- a/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php +++ b/tests/Composer/Test/Package/Archiver/ArchivableFilesFinderTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Package\Archiver; use Composer\Package\Archiver\ArchivableFilesFinder; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Symfony\Component\Process\Process; diff --git a/tests/Composer/Test/Package/Archiver/ArchiverTest.php b/tests/Composer/Test/Package/Archiver/ArchiverTest.php index 1d08e8873..8926d760b 100644 --- a/tests/Composer/Test/Package/Archiver/ArchiverTest.php +++ b/tests/Composer/Test/Package/Archiver/ArchiverTest.php @@ -12,7 +12,7 @@ namespace Composer\Test\Package\Archiver; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\ProcessExecutor; use Composer\Package\Package; diff --git a/tests/Composer/Test/Package/CompletePackageTest.php b/tests/Composer/Test/Package/CompletePackageTest.php index aa3127071..fe1a783e8 100644 --- a/tests/Composer/Test/Package/CompletePackageTest.php +++ b/tests/Composer/Test/Package/CompletePackageTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Package; use Composer\Package\Package; use Composer\Semver\VersionParser; -use Composer\TestCase; +use Composer\Test\TestCase; class CompletePackageTest extends TestCase { diff --git a/tests/Composer/Test/Package/RootAliasPackageTest.php b/tests/Composer/Test/Package/RootAliasPackageTest.php index 8124ca865..a5fe9172d 100644 --- a/tests/Composer/Test/Package/RootAliasPackageTest.php +++ b/tests/Composer/Test/Package/RootAliasPackageTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Package; use Composer\Package\Link; use Composer\Package\RootAliasPackage; -use Composer\TestCase; +use Composer\Test\TestCase; use Prophecy\Argument; class RootAliasPackageTest extends TestCase diff --git a/tests/Composer/Test/Plugin/PluginInstallerTest.php b/tests/Composer/Test/Plugin/PluginInstallerTest.php index 26fc63efa..aa1f9ddbb 100644 --- a/tests/Composer/Test/Plugin/PluginInstallerTest.php +++ b/tests/Composer/Test/Plugin/PluginInstallerTest.php @@ -10,7 +10,7 @@ * file that was distributed with this source code. */ -namespace Composer\Test\Installer; +namespace Composer\Test\Plugin; use Composer\Composer; use Composer\Config; @@ -20,7 +20,7 @@ use Composer\Package\Loader\JsonLoader; use Composer\Package\Loader\ArrayLoader; use Composer\Plugin\PluginManager; use Composer\Autoload\AutoloadGenerator; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; class PluginInstallerTest extends TestCase diff --git a/tests/Composer/Test/Question/StrictConfirmationQuestionTest.php b/tests/Composer/Test/Question/StrictConfirmationQuestionTest.php index a69d1aeef..1f0dad72b 100644 --- a/tests/Composer/Test/Question/StrictConfirmationQuestionTest.php +++ b/tests/Composer/Test/Question/StrictConfirmationQuestionTest.php @@ -10,7 +10,7 @@ * file that was distributed with this source code. */ -namespace Composer\Question\Test; +namespace Composer\Test\Question; use Composer\Question\StrictConfirmationQuestion; use PHPUnit\Framework\TestCase; diff --git a/tests/Composer/Test/Repository/ArrayRepositoryTest.php b/tests/Composer/Test/Repository/ArrayRepositoryTest.php index bd19b979c..1c7972c96 100644 --- a/tests/Composer/Test/Repository/ArrayRepositoryTest.php +++ b/tests/Composer/Test/Repository/ArrayRepositoryTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository; use Composer\Repository\ArrayRepository; use Composer\Repository\RepositoryInterface; -use Composer\TestCase; +use Composer\Test\TestCase; class ArrayRepositoryTest extends TestCase { diff --git a/tests/Composer/Test/Repository/ArtifactRepositoryTest.php b/tests/Composer/Test/Repository/ArtifactRepositoryTest.php index d919d180b..506a033c4 100644 --- a/tests/Composer/Test/Repository/ArtifactRepositoryTest.php +++ b/tests/Composer/Test/Repository/ArtifactRepositoryTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository; use Composer\Repository\ArtifactRepository; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\IO\NullIO; use Composer\Config; use Composer\Package\BasePackage; @@ -42,7 +42,7 @@ class ArtifactRepositoryTest extends TestCase ); $coordinates = array('type' => 'artifact', 'url' => __DIR__ . '/Fixtures/artifacts'); - $repo = new ArtifactRepository($coordinates, new NullIO(), new Config()); + $repo = new ArtifactRepository($coordinates, new NullIO()); $foundPackages = array_map(function (BasePackage $package) { return "{$package->getPrettyName()}-{$package->getPrettyVersion()}"; @@ -58,7 +58,7 @@ class ArtifactRepositoryTest extends TestCase { $absolutePath = __DIR__ . '/Fixtures/artifacts'; $coordinates = array('type' => 'artifact', 'url' => $absolutePath); - $repo = new ArtifactRepository($coordinates, new NullIO(), new Config()); + $repo = new ArtifactRepository($coordinates, new NullIO()); foreach ($repo->getPackages() as $package) { $this->assertSame(strpos($package->getDistUrl(), strtr($absolutePath, '\\', '/')), 0); @@ -69,7 +69,7 @@ class ArtifactRepositoryTest extends TestCase { $relativePath = 'tests/Composer/Test/Repository/Fixtures/artifacts'; $coordinates = array('type' => 'artifact', 'url' => $relativePath); - $repo = new ArtifactRepository($coordinates, new NullIO(), new Config()); + $repo = new ArtifactRepository($coordinates, new NullIO()); foreach ($repo->getPackages() as $package) { $this->assertSame(strpos($package->getDistUrl(), $relativePath), 0); diff --git a/tests/Composer/Test/Repository/ComposerRepositoryTest.php b/tests/Composer/Test/Repository/ComposerRepositoryTest.php index 38b459730..3e29e8023 100644 --- a/tests/Composer/Test/Repository/ComposerRepositoryTest.php +++ b/tests/Composer/Test/Repository/ComposerRepositoryTest.php @@ -16,7 +16,7 @@ use Composer\IO\NullIO; use Composer\Repository\ComposerRepository; use Composer\Repository\RepositoryInterface; use Composer\Test\Mock\FactoryMock; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Package\Loader\ArrayLoader; use Composer\Semver\VersionParser; diff --git a/tests/Composer/Test/Repository/CompositeRepositoryTest.php b/tests/Composer/Test/Repository/CompositeRepositoryTest.php index d9f8b70e3..978587133 100644 --- a/tests/Composer/Test/Repository/CompositeRepositoryTest.php +++ b/tests/Composer/Test/Repository/CompositeRepositoryTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository; use Composer\Repository\CompositeRepository; use Composer\Repository\ArrayRepository; -use Composer\TestCase; +use Composer\Test\TestCase; class CompositeRepositoryTest extends TestCase { diff --git a/tests/Composer/Test/Repository/FilesystemRepositoryTest.php b/tests/Composer/Test/Repository/FilesystemRepositoryTest.php index 841a54d7b..be8b0d0a9 100644 --- a/tests/Composer/Test/Repository/FilesystemRepositoryTest.php +++ b/tests/Composer/Test/Repository/FilesystemRepositoryTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository; use Composer\Repository\FilesystemRepository; -use Composer\TestCase; +use Composer\Test\TestCase; class FilesystemRepositoryTest extends TestCase { diff --git a/tests/Composer/Test/Repository/PathRepositoryTest.php b/tests/Composer/Test/Repository/PathRepositoryTest.php index 7f1532a00..a9594257c 100644 --- a/tests/Composer/Test/Repository/PathRepositoryTest.php +++ b/tests/Composer/Test/Repository/PathRepositoryTest.php @@ -15,7 +15,7 @@ namespace Composer\Test\Repository; use Composer\Package\Loader\ArrayLoader; use Composer\Repository\PathRepository; use Composer\Semver\VersionParser; -use Composer\TestCase; +use Composer\Test\TestCase; class PathRepositoryTest extends TestCase { @@ -25,11 +25,10 @@ class PathRepositoryTest extends TestCase ->getMock(); $config = new \Composer\Config(); - $loader = new ArrayLoader(new VersionParser()); $versionGuesser = null; $repositoryUrl = implode(DIRECTORY_SEPARATOR, array(__DIR__, 'Fixtures', 'path', 'with-version')); - $repository = new PathRepository(array('url' => $repositoryUrl), $ioInterface, $config, $loader); + $repository = new PathRepository(array('url' => $repositoryUrl), $ioInterface, $config); $repository->getPackages(); $this->assertEquals(1, $repository->count()); @@ -42,11 +41,10 @@ class PathRepositoryTest extends TestCase ->getMock(); $config = new \Composer\Config(); - $loader = new ArrayLoader(new VersionParser()); $versionGuesser = null; $repositoryUrl = implode(DIRECTORY_SEPARATOR, array(__DIR__, 'Fixtures', 'path', 'without-version')); - $repository = new PathRepository(array('url' => $repositoryUrl), $ioInterface, $config, $loader); + $repository = new PathRepository(array('url' => $repositoryUrl), $ioInterface, $config); $packages = $repository->getPackages(); $this->assertEquals(1, $repository->count()); @@ -64,11 +62,10 @@ class PathRepositoryTest extends TestCase ->getMock(); $config = new \Composer\Config(); - $loader = new ArrayLoader(new VersionParser()); $versionGuesser = null; $repositoryUrl = implode(DIRECTORY_SEPARATOR, array(__DIR__, 'Fixtures', 'path', '*')); - $repository = new PathRepository(array('url' => $repositoryUrl), $ioInterface, $config, $loader); + $repository = new PathRepository(array('url' => $repositoryUrl), $ioInterface, $config); $packages = $repository->getPackages(); $names = array(); @@ -93,7 +90,6 @@ class PathRepositoryTest extends TestCase ->getMock(); $config = new \Composer\Config(); - $loader = new ArrayLoader(new VersionParser()); $versionGuesser = null; // realpath() does not fully expand the paths @@ -103,7 +99,7 @@ class PathRepositoryTest extends TestCase // PHP Bug https://bugs.php.net/bug.php?id=73797 $relativeUrl = ltrim(substr($repositoryUrl, strlen(realpath(realpath(getcwd())))), DIRECTORY_SEPARATOR); - $repository = new PathRepository(array('url' => $relativeUrl), $ioInterface, $config, $loader); + $repository = new PathRepository(array('url' => $relativeUrl), $ioInterface, $config); $packages = $repository->getPackages(); $this->assertEquals(1, $repository->count()); diff --git a/tests/Composer/Test/Repository/Pear/ChannelReaderTest.php b/tests/Composer/Test/Repository/Pear/ChannelReaderTest.php index 27b7af2a3..e766065a7 100644 --- a/tests/Composer/Test/Repository/Pear/ChannelReaderTest.php +++ b/tests/Composer/Test/Repository/Pear/ChannelReaderTest.php @@ -17,7 +17,7 @@ use Composer\Repository\Pear\DependencyConstraint; use Composer\Repository\Pear\DependencyInfo; use Composer\Repository\Pear\PackageInfo; use Composer\Repository\Pear\ReleaseInfo; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Semver\VersionParser; use Composer\Semver\Constraint\Constraint; use Composer\Package\Link; diff --git a/tests/Composer/Test/Repository/Pear/ChannelRest10ReaderTest.php b/tests/Composer/Test/Repository/Pear/ChannelRest10ReaderTest.php index 263a80420..4aa7bbba2 100644 --- a/tests/Composer/Test/Repository/Pear/ChannelRest10ReaderTest.php +++ b/tests/Composer/Test/Repository/Pear/ChannelRest10ReaderTest.php @@ -12,7 +12,7 @@ namespace Composer\Test\Repository\Pear; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Test\Mock\RemoteFilesystemMock; class ChannelRest10ReaderTest extends TestCase @@ -31,7 +31,7 @@ class ChannelRest10ReaderTest extends TestCase $reader = new \Composer\Repository\Pear\ChannelRest10Reader($rfs); - /** @var $packages \Composer\Package\PackageInterface[] */ + /** @var \Composer\Package\PackageInterface[] $packages */ $packages = $reader->read('http://test.loc/rest10'); $this->assertCount(2, $packages); diff --git a/tests/Composer/Test/Repository/Pear/ChannelRest11ReaderTest.php b/tests/Composer/Test/Repository/Pear/ChannelRest11ReaderTest.php index 562e000c8..04e48426e 100644 --- a/tests/Composer/Test/Repository/Pear/ChannelRest11ReaderTest.php +++ b/tests/Composer/Test/Repository/Pear/ChannelRest11ReaderTest.php @@ -12,7 +12,7 @@ namespace Composer\Test\Repository\Pear; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Test\Mock\RemoteFilesystemMock; class ChannelRest11ReaderTest extends TestCase @@ -27,7 +27,7 @@ class ChannelRest11ReaderTest extends TestCase $reader = new \Composer\Repository\Pear\ChannelRest11Reader($rfs); - /** @var $packages \Composer\Package\PackageInterface[] */ + /** @var \Composer\Package\PackageInterface[] $packages */ $packages = $reader->read('http://test.loc/rest11'); $this->assertCount(3, $packages); diff --git a/tests/Composer/Test/Repository/Pear/PackageDependencyParserTest.php b/tests/Composer/Test/Repository/Pear/PackageDependencyParserTest.php index dd566055a..0ca9259d9 100644 --- a/tests/Composer/Test/Repository/Pear/PackageDependencyParserTest.php +++ b/tests/Composer/Test/Repository/Pear/PackageDependencyParserTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository\Pear; use Composer\Repository\Pear\DependencyConstraint; use Composer\Repository\Pear\PackageDependencyParser; -use Composer\TestCase; +use Composer\Test\TestCase; class PackageDependencyParserTest extends TestCase { diff --git a/tests/Composer/Test/Repository/PearRepositoryTest.php b/tests/Composer/Test/Repository/PearRepositoryTest.php index c484820b6..b1a3c0b5e 100644 --- a/tests/Composer/Test/Repository/PearRepositoryTest.php +++ b/tests/Composer/Test/Repository/PearRepositoryTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository; use Composer\Repository\PearRepository; -use Composer\TestCase; +use Composer\Test\TestCase; /** * @group legacy diff --git a/tests/Composer/Test/Repository/RepositoryFactoryTest.php b/tests/Composer/Test/Repository/RepositoryFactoryTest.php index e6d811fe9..e54624415 100644 --- a/tests/Composer/Test/Repository/RepositoryFactoryTest.php +++ b/tests/Composer/Test/Repository/RepositoryFactoryTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository; use Composer\Repository\RepositoryFactory; -use Composer\TestCase; +use Composer\Test\TestCase; class RepositoryFactoryTest extends TestCase { diff --git a/tests/Composer/Test/Repository/RepositoryManagerTest.php b/tests/Composer/Test/Repository/RepositoryManagerTest.php index a5739f32d..3774dd268 100644 --- a/tests/Composer/Test/Repository/RepositoryManagerTest.php +++ b/tests/Composer/Test/Repository/RepositoryManagerTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository; use Composer\Repository\RepositoryManager; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; class RepositoryManagerTest extends TestCase diff --git a/tests/Composer/Test/Repository/Vcs/FossilDriverTest.php b/tests/Composer/Test/Repository/Vcs/FossilDriverTest.php index f9e73b5eb..cbb4342e9 100644 --- a/tests/Composer/Test/Repository/Vcs/FossilDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/FossilDriverTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Repository\Vcs\FossilDriver; use Composer\Config; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\Platform; diff --git a/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php index 7547855bf..8d711e8f0 100644 --- a/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/GitBitbucketDriverTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Config; use Composer\Repository\Vcs\GitBitbucketDriver; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; /** diff --git a/tests/Composer/Test/Repository/Vcs/GitHubDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitHubDriverTest.php index 35e2f64c8..ba9c6d4f7 100644 --- a/tests/Composer/Test/Repository/Vcs/GitHubDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/GitHubDriverTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Downloader\TransportException; use Composer\Repository\Vcs\GitHubDriver; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Config; diff --git a/tests/Composer/Test/Repository/Vcs/GitLabDriverTest.php b/tests/Composer/Test/Repository/Vcs/GitLabDriverTest.php index ced826672..a5eb799f2 100644 --- a/tests/Composer/Test/Repository/Vcs/GitLabDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/GitLabDriverTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Repository\Vcs\GitLabDriver; use Composer\Config; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Prophecy\Argument; @@ -251,7 +251,7 @@ JSON; public function testGetSource_GivenPublicProject() { - $driver = $this->testInitializePublicProject('https://gitlab.com/mygroup/myproject', 'https://gitlab.com/api/v4/projects/mygroup%2Fmyproject', true); + $driver = $this->testInitializePublicProject('https://gitlab.com/mygroup/myproject', 'https://gitlab.com/api/v4/projects/mygroup%2Fmyproject'); $reference = 'c3ebdbf9cceddb82cd2089aaef8c7b992e536363'; $expected = array( diff --git a/tests/Composer/Test/Repository/Vcs/HgDriverTest.php b/tests/Composer/Test/Repository/Vcs/HgDriverTest.php index 441ce19c2..11143b476 100644 --- a/tests/Composer/Test/Repository/Vcs/HgDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/HgDriverTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Repository\Vcs\HgDriver; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Config; diff --git a/tests/Composer/Test/Repository/Vcs/PerforceDriverTest.php b/tests/Composer/Test/Repository/Vcs/PerforceDriverTest.php index 02a6e89e5..a5e5d4b4c 100644 --- a/tests/Composer/Test/Repository/Vcs/PerforceDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/PerforceDriverTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Repository\Vcs\PerforceDriver; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Config; use Composer\Util\Perforce; diff --git a/tests/Composer/Test/Repository/Vcs/SvnDriverTest.php b/tests/Composer/Test/Repository/Vcs/SvnDriverTest.php index 1106c9df4..029d20160 100644 --- a/tests/Composer/Test/Repository/Vcs/SvnDriverTest.php +++ b/tests/Composer/Test/Repository/Vcs/SvnDriverTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Repository\Vcs; use Composer\Repository\Vcs\SvnDriver; use Composer\Config; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\Util\Filesystem; use Composer\Util\Platform; diff --git a/tests/Composer/Test/Repository/VcsRepositoryTest.php b/tests/Composer/Test/Repository/VcsRepositoryTest.php index 61e29be37..0cab2f8bb 100644 --- a/tests/Composer/Test/Repository/VcsRepositoryTest.php +++ b/tests/Composer/Test/Repository/VcsRepositoryTest.php @@ -12,7 +12,7 @@ namespace Composer\Test\Repository; -use Composer\TestCase; +use Composer\Test\TestCase; use Symfony\Component\Process\ExecutableFinder; use Composer\Package\Dumper\ArrayDumper; use Composer\Repository\VcsRepository; diff --git a/tests/Composer/TestCase.php b/tests/Composer/Test/TestCase.php similarity index 99% rename from tests/Composer/TestCase.php rename to tests/Composer/Test/TestCase.php index 656bf061b..656a477e6 100644 --- a/tests/Composer/TestCase.php +++ b/tests/Composer/Test/TestCase.php @@ -10,7 +10,7 @@ * file that was distributed with this source code. */ -namespace Composer; +namespace Composer\Test; use Composer\Semver\VersionParser; use Composer\Package\AliasPackage; diff --git a/tests/Composer/Test/Util/ConfigValidatorTest.php b/tests/Composer/Test/Util/ConfigValidatorTest.php index 157eba92e..8b6ac5132 100644 --- a/tests/Composer/Test/Util/ConfigValidatorTest.php +++ b/tests/Composer/Test/Util/ConfigValidatorTest.php @@ -14,7 +14,7 @@ namespace Composer\Test\Util; use Composer\IO\NullIO; use Composer\Util\ConfigValidator; -use Composer\TestCase; +use Composer\Test\TestCase; /** * ConfigValidator test case diff --git a/tests/Composer/Test/Util/ErrorHandlerTest.php b/tests/Composer/Test/Util/ErrorHandlerTest.php index cb16a1e13..52de96af4 100644 --- a/tests/Composer/Test/Util/ErrorHandlerTest.php +++ b/tests/Composer/Test/Util/ErrorHandlerTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Util; use Composer\Util\ErrorHandler; -use Composer\TestCase; +use Composer\Test\TestCase; /** * ErrorHandler test case diff --git a/tests/Composer/Test/Util/FilesystemTest.php b/tests/Composer/Test/Util/FilesystemTest.php index ef3ab5bbe..9f684dbfb 100644 --- a/tests/Composer/Test/Util/FilesystemTest.php +++ b/tests/Composer/Test/Util/FilesystemTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Util; use Composer\Util\Filesystem; -use Composer\TestCase; +use Composer\Test\TestCase; class FilesystemTest extends TestCase { diff --git a/tests/Composer/Test/Util/ProcessExecutorTest.php b/tests/Composer/Test/Util/ProcessExecutorTest.php index 4a18c24e7..e98898417 100644 --- a/tests/Composer/Test/Util/ProcessExecutorTest.php +++ b/tests/Composer/Test/Util/ProcessExecutorTest.php @@ -13,7 +13,7 @@ namespace Composer\Test\Util; use Composer\Util\ProcessExecutor; -use Composer\TestCase; +use Composer\Test\TestCase; use Composer\IO\BufferIO; use Symfony\Component\Console\Output\StreamOutput; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 908861cf5..aaf431f0f 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -17,4 +17,4 @@ if (function_exists('date_default_timezone_set') && function_exists('date_defaul } require __DIR__.'/../src/bootstrap.php'; -require __DIR__.'/Composer/TestCase.php'; +require __DIR__.'/Composer/Test/TestCase.php'; From 86f59348f5fa308d3b9a911a8d03c30272c71e64 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Mon, 12 Nov 2018 15:24:28 +0100 Subject: [PATCH 43/43] Fix TestCase import --- tests/Composer/Test/FactoryTest.php | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Composer/Test/FactoryTest.php b/tests/Composer/Test/FactoryTest.php index 34d4518bb..6704e5b15 100644 --- a/tests/Composer/Test/FactoryTest.php +++ b/tests/Composer/Test/FactoryTest.php @@ -12,7 +12,6 @@ namespace Composer\Test; -use PHPUnit\Framework\TestCase; use Composer\Factory; class FactoryTest extends TestCase