Merge branch '1.6'
commit
ad8b44a4c8
|
@ -284,8 +284,9 @@ VCS repository provides `dist`s for them that fetch the packages as zips.
|
||||||
* **BitBucket:** [bitbucket.org](https://bitbucket.org) (Git and Mercurial)
|
* **BitBucket:** [bitbucket.org](https://bitbucket.org) (Git and Mercurial)
|
||||||
|
|
||||||
The VCS driver to be used is detected automatically based on the URL. However,
|
The VCS driver to be used is detected automatically based on the URL. However,
|
||||||
should you need to specify one for whatever reason, you can use `fossil`, `git`,
|
should you need to specify one for whatever reason, you can use `git-bitbucket`,
|
||||||
`svn` or `hg` as the repository type instead of `vcs`.
|
`hg-bitbucket`, `github`, `gitlab`, `perforce`, `fossil`, `git`, `svn` or `hg`
|
||||||
|
as the repository type instead of `vcs`.
|
||||||
|
|
||||||
If you set the `no-api` key to `true` on a github repository it will clone the
|
If you set the `no-api` key to `true` on a github repository it will clone the
|
||||||
repository as it would with any other git repository instead of using the
|
repository as it would with any other git repository instead of using the
|
||||||
|
|
|
@ -75,7 +75,8 @@ class CreateProjectCommand extends BaseCommand
|
||||||
new InputOption('no-scripts', null, InputOption::VALUE_NONE, 'Whether to prevent execution of all defined scripts in the root package.'),
|
new InputOption('no-scripts', null, InputOption::VALUE_NONE, 'Whether to prevent execution of all defined scripts in the root package.'),
|
||||||
new InputOption('no-progress', null, InputOption::VALUE_NONE, 'Do not output download progress.'),
|
new InputOption('no-progress', null, InputOption::VALUE_NONE, 'Do not output download progress.'),
|
||||||
new InputOption('no-secure-http', null, InputOption::VALUE_NONE, 'Disable the secure-http config option temporarily while installing the root package. Use at your own risk. Using this flag is a bad idea.'),
|
new InputOption('no-secure-http', null, InputOption::VALUE_NONE, 'Disable the secure-http config option temporarily while installing the root package. Use at your own risk. Using this flag is a bad idea.'),
|
||||||
new InputOption('keep-vcs', null, InputOption::VALUE_NONE, 'Whether to prevent deletion vcs folder.'),
|
new InputOption('keep-vcs', null, InputOption::VALUE_NONE, 'Whether to prevent deleting the vcs folder.'),
|
||||||
|
new InputOption('remove-vcs', null, InputOption::VALUE_NONE, 'Whether to force deletion of the vcs folder without prompting.'),
|
||||||
new InputOption('no-install', null, InputOption::VALUE_NONE, 'Whether to skip installation of the package dependencies.'),
|
new InputOption('no-install', null, InputOption::VALUE_NONE, 'Whether to skip installation of the package dependencies.'),
|
||||||
new InputOption('ignore-platform-reqs', null, InputOption::VALUE_NONE, 'Ignore platform requirements (php & ext- packages).'),
|
new InputOption('ignore-platform-reqs', null, InputOption::VALUE_NONE, 'Ignore platform requirements (php & ext- packages).'),
|
||||||
))
|
))
|
||||||
|
@ -140,11 +141,12 @@ EOT
|
||||||
$input->getOption('no-progress'),
|
$input->getOption('no-progress'),
|
||||||
$input->getOption('no-install'),
|
$input->getOption('no-install'),
|
||||||
$input->getOption('ignore-platform-reqs'),
|
$input->getOption('ignore-platform-reqs'),
|
||||||
!$input->getOption('no-secure-http')
|
!$input->getOption('no-secure-http'),
|
||||||
|
$input->getOption('remove-vcs')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function installProject(IOInterface $io, Config $config, InputInterface $input, $packageName, $directory = null, $packageVersion = null, $stability = 'stable', $preferSource = false, $preferDist = false, $installDevPackages = false, $repository = null, $disablePlugins = false, $noScripts = false, $keepVcs = false, $noProgress = false, $noInstall = false, $ignorePlatformReqs = false, $secureHttp = true)
|
public function installProject(IOInterface $io, Config $config, InputInterface $input, $packageName, $directory = null, $packageVersion = null, $stability = 'stable', $preferSource = false, $preferDist = false, $installDevPackages = false, $repository = null, $disablePlugins = false, $noScripts = false, $keepVcs = false, $noProgress = false, $noInstall = false, $ignorePlatformReqs = false, $secureHttp = true, $removeVcs = false)
|
||||||
{
|
{
|
||||||
$oldCwd = getcwd();
|
$oldCwd = getcwd();
|
||||||
|
|
||||||
|
@ -195,9 +197,12 @@ EOT
|
||||||
}
|
}
|
||||||
|
|
||||||
$hasVcs = $installedFromVcs;
|
$hasVcs = $installedFromVcs;
|
||||||
if (!$keepVcs && $installedFromVcs
|
if (
|
||||||
|
!$keepVcs
|
||||||
|
&& $installedFromVcs
|
||||||
&& (
|
&& (
|
||||||
!$io->isInteractive()
|
$removeVcs
|
||||||
|
|| !$io->isInteractive()
|
||||||
|| $io->askConfirmation('<info>Do you want to remove the existing VCS (.git, .svn..) history?</info> [<comment>Y,n</comment>]? ', true)
|
|| $io->askConfirmation('<info>Do you want to remove the existing VCS (.git, .svn..) history?</info> [<comment>Y,n</comment>]? ', true)
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -108,6 +108,10 @@ class Problem
|
||||||
|
|
||||||
// handle php extensions
|
// handle php extensions
|
||||||
if (0 === stripos($job['packageName'], 'ext-')) {
|
if (0 === stripos($job['packageName'], 'ext-')) {
|
||||||
|
if (false !== strpos($job['packageName'], ' ')) {
|
||||||
|
return "\n - The requested PHP extension ".$job['packageName'].' should be required as '.str_replace(' ', '-', $job['packageName']).'.';
|
||||||
|
}
|
||||||
|
|
||||||
$ext = substr($job['packageName'], 4);
|
$ext = substr($job['packageName'], 4);
|
||||||
$error = extension_loaded($ext) ? 'has the wrong version ('.(phpversion($ext) ?: '0').') installed' : 'is missing from your system';
|
$error = extension_loaded($ext) ? 'has the wrong version ('.(phpversion($ext) ?: '0').') installed' : 'is missing from your system';
|
||||||
|
|
||||||
|
|
|
@ -677,7 +677,7 @@ class ComposerRepository extends ArrayRepository implements ConfigurableReposito
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO use scarier wording once we know for sure it doesn't do false positives anymore
|
// TODO use scarier wording once we know for sure it doesn't do false positives anymore
|
||||||
throw new RepositorySecurityException('The contents of '.$filename.' do not match its signature. This could indicate a man-in-the-middle attack. Try running composer again and report this if you think it is a mistake.');
|
throw new RepositorySecurityException('The contents of '.$filename.' do not match its signature. This could indicate a man-in-the-middle attack or e.g. antivirus software corrupting files. Try running composer again and report this if you think it is a mistake.');
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = JsonFile::parseJson($json, $filename);
|
$data = JsonFile::parseJson($json, $filename);
|
||||||
|
|
|
@ -24,7 +24,7 @@ use Composer\Util\Silencer;
|
||||||
*/
|
*/
|
||||||
class PlatformRepository extends ArrayRepository
|
class PlatformRepository extends ArrayRepository
|
||||||
{
|
{
|
||||||
const PLATFORM_PACKAGE_REGEX = '{^(?:php(?:-64bit|-ipv6|-zts|-debug)?|hhvm|(?:ext|lib)-[^/]+)$}i';
|
const PLATFORM_PACKAGE_REGEX = '{^(?:php(?:-64bit|-ipv6|-zts|-debug)?|hhvm|(?:ext|lib)-[^/ ]+)$}i';
|
||||||
|
|
||||||
private $versionParser;
|
private $versionParser;
|
||||||
|
|
||||||
|
|
|
@ -119,12 +119,14 @@ class RepositoryFactory
|
||||||
$rm->setRepositoryClass('package', 'Composer\Repository\PackageRepository');
|
$rm->setRepositoryClass('package', 'Composer\Repository\PackageRepository');
|
||||||
$rm->setRepositoryClass('pear', 'Composer\Repository\PearRepository');
|
$rm->setRepositoryClass('pear', 'Composer\Repository\PearRepository');
|
||||||
$rm->setRepositoryClass('git', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('git', 'Composer\Repository\VcsRepository');
|
||||||
|
$rm->setRepositoryClass('git-bitbucket', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('github', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('github', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('gitlab', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('gitlab', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('svn', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('svn', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('fossil', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('fossil', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('perforce', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('perforce', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('hg', 'Composer\Repository\VcsRepository');
|
$rm->setRepositoryClass('hg', 'Composer\Repository\VcsRepository');
|
||||||
|
$rm->setRepositoryClass('hg-bitbucket', 'Composer\Repository\VcsRepository');
|
||||||
$rm->setRepositoryClass('artifact', 'Composer\Repository\ArtifactRepository');
|
$rm->setRepositoryClass('artifact', 'Composer\Repository\ArtifactRepository');
|
||||||
$rm->setRepositoryClass('path', 'Composer\Repository\PathRepository');
|
$rm->setRepositoryClass('path', 'Composer\Repository\PathRepository');
|
||||||
|
|
||||||
|
|
|
@ -34,12 +34,14 @@ class RepositoryFactoryTest extends TestCase
|
||||||
'package',
|
'package',
|
||||||
'pear',
|
'pear',
|
||||||
'git',
|
'git',
|
||||||
|
'git-bitbucket',
|
||||||
'github',
|
'github',
|
||||||
'gitlab',
|
'gitlab',
|
||||||
'svn',
|
'svn',
|
||||||
'fossil',
|
'fossil',
|
||||||
'perforce',
|
'perforce',
|
||||||
'hg',
|
'hg',
|
||||||
|
'hg-bitbucket',
|
||||||
'artifact',
|
'artifact',
|
||||||
'path',
|
'path',
|
||||||
), array_keys($repositoryClasses));
|
), array_keys($repositoryClasses));
|
||||||
|
|
Loading…
Reference in New Issue