1
0
Fork 0
Commit Graph

2585 Commits (0db443ba5f3a0a19081f7944ba988a32db2e7490)

Author SHA1 Message Date
Jordi Boggiano 589aa351a8
Change Uninstalling to Removing in lock operations 2020-03-11 16:44:08 +01:00
Jordi Boggiano a7a975ec1c
Alias dev-master/trunk/default to 9999999-dev instead of normalizing the version to that, fixes #8323 2020-03-11 15:04:18 +01:00
Jordi Boggiano 97e2a249e8
Merge branch 'master' into 2.0 2020-03-11 09:34:55 +01:00
Jordi Boggiano ffac8646fc
Fix tests 2020-03-11 09:34:40 +01:00
Jordi Boggiano 3e82542812
Fix test 2020-03-10 17:11:19 +01:00
Jordi Boggiano c033644f8b
Present lock changes alphabetically, with uninstalls first, then all install/updates mixed 2020-03-10 16:08:40 +01:00
Jordi Boggiano 24a5a0dacb
Skip invalid PSR-0/4 classes from optimized autoloader, fixes #8403 2020-03-10 15:40:45 +01:00
Jordi Boggiano d63eb8179e
Merge branch 'master' into 2.0 2020-03-10 14:05:33 +01:00
Jordi Boggiano 6d3d7c39ac
Merge pull request #8621 from remorhaz/master
Fix incorrect --no-dev handling of replaced packages
2020-02-28 23:49:09 +01:00
Jordi Boggiano 9cab8c10cc
Merge branch 'master' into 2.0 2020-02-28 13:31:56 +01:00
Jordi Boggiano 0b9c658bef
Add plugin-api-version used to generate a lock file in itself 2020-02-28 10:21:24 +01:00
remorhaz 8df263a756 Test added for issue #8622 fix 2020-02-26 17:39:54 +02:00
Jordi Boggiano 0ad322e51f
Fix tests 2020-02-14 16:55:21 +01:00
Jordi Boggiano bc002ae1fb
Merge branch 'master' into 2.0 2020-02-14 15:42:17 +01:00
Nils Adermann d665ea7ea9
After update and install commands display how many packages want funding 2020-02-14 10:08:36 +01:00
Nils Adermann 5c4f524d6a
Add funding field to composer.json
You can specify a list of funding options each with a type and URL. The
type is used to specify the kind of funding or the platform through
which funding is possible.
2020-02-14 10:08:35 +01:00
Jordi Boggiano 2d8a8ed7e3
Add InstalledRepository to clean up some concepts and usages, remove BaseRepository 2020-02-13 21:44:24 +01:00
Jordi Boggiano c5c6d44a0b
Refactor away some unnecessary RepositorySet usages 2020-02-13 17:51:22 +01:00
Jordi Boggiano 44d1e15294
Simplify suggester output when updating, refactor suggest command to reuse SuggestedPackagesReporter and make smarter defaults, fixes #6267 2020-02-13 16:13:29 +01:00
Jordi Boggiano 5d8dc48bd4
Fix test on windows 2020-02-13 10:05:42 +01:00
Nils Adermann 4bb314e4af
Merge pull request #8566 from Seldaek/installer-events
Restore installer events and add a PRE_POOL_CREATE hook for plugins
2020-02-12 15:26:14 +01:00
Jordi Boggiano 23efda9155
Try to fix windows build 2020-02-12 15:11:59 +01:00
Jordi Boggiano d52ce3c37f
Replace pre/post-dependencies-solving by a pre-operations-exec event happening only on install from lock 2020-02-12 14:35:31 +01:00
Jordi Boggiano 71855e6430
Restore PRE/POST_DEPENDENCY_SOLVING events 2020-02-12 10:41:03 +01:00
Jordi Boggiano 4d74f5ba95
Fix exclude-from-classmap handling to avoid foo matching foo* directories, fixes #8563, refs #8575 2020-02-12 10:23:03 +01:00
Jordi Boggiano c7ba751319
Merge commit 'refs/pull/8575/head' of github.com:composer/composer 2020-02-12 10:11:58 +01:00
Jordi Boggiano 7e142b5d6b
Use Upgrading for package installs too 2020-02-11 17:51:02 +01:00
Jordi Boggiano 02433c3659
Merge pull request #8565 from glaubinix/t/create-project-add-repository
Create project: add option to add the repository to the composer.json
2020-02-11 13:47:34 +01:00
Jordi Boggiano 9609729de7
Change update to upgrade for package update operations which are upgrades, refs #8594 2020-02-11 13:43:38 +01:00
Jordi Boggiano fc5682ed9f
Fix build 2020-02-11 11:41:31 +01:00
Jordi Boggiano be8dd528b8
Merge remote-tracking branch 'origin/master' into 2.0 2020-02-11 11:33:52 +01:00
Jordi Boggiano 31068b7bed
Merge pull request #8594 from IonBazan/downgrading-dry-run
Distinguish between updates and downgrades in dry-run
2020-02-11 10:49:09 +01:00
Ion Bazan 11ae757e99 fix risky tests 2020-02-11 17:27:56 +08:00
Ion Bazan a180f48921 Distinguish between updates and downgrades in dry-run 2020-02-11 16:35:35 +08:00
Stephan Vock 2a564a9f36 Create project: add option to add the repository to the composer.json 2020-02-10 16:46:28 +00:00
Jordi Boggiano 5843a282bc
Merge pull request #8562 from adrianosferreira/fix-archive-format-cli
Uses config data from Composer object whenever possible on ArchiveCommand
2020-02-10 17:26:26 +01:00
Adriano Ferreira 97d077c43b Uses config data from Composer object whenever possible on ArchiveCommand
It was previously blindly getting a new instance from the factory thus ignoring what is on Composer object config data.
2020-02-10 13:15:58 -02:00
Jordi Boggiano 21ab2f85bb
Fix 7.4 build 2020-02-07 23:21:48 +01:00
Jordi Boggiano 589abb06a3
PHPStan fixes 2020-02-07 23:10:10 +01:00
Jordi Boggiano 45ecbae8f5
Merge branch 'master' into 2.0 2020-02-07 22:20:51 +01:00
Ion Bazan a9bace37f6 fix windows build 2020-02-07 15:18:18 +08:00
Ion Bazan 58b34d13e8 fix risky tests (without any assertion) 2020-02-07 14:35:07 +08:00
Ion Bazan db32d6bc18 do not use env 2020-02-07 13:07:01 +08:00
Ion Bazan a2137d5263 use Symfony PHPUnit Bridge 2020-02-07 12:22:22 +08:00
Jeroen Versteeg cabf373bf4 Added test for exclude-from-classmap (see issue #8563) 2020-02-04 12:57:26 +01:00
Jordi Boggiano 006c3de542
Fix tests and make TTY usage on ProcessExecutor cleaner 2020-01-31 16:33:34 +01:00
Jordi Boggiano 2f4ea3a463
Fix show command, refactor RepositorySet constructor 2020-01-30 20:21:17 +01:00
Jordi Boggiano 189d5adab0
Fix reporting of replace conflicts to not mention provides 2020-01-30 17:13:12 +01:00
Jordi Boggiano ec90c17e3b
Fix conflict order to be more accurate 2020-01-30 15:55:37 +01:00
Jordi Boggiano 1e68555e0a
Sanitize URLs in getRepoName and centralize the Url sanitization process 2020-01-30 15:50:46 +01:00
Jordi Boggiano c41df325d8
Remove RepositorySet from Solver and remove getPool from RepositorySet 2020-01-30 15:23:22 +01:00
Jordi Boggiano f982a10447
Update after rebase 2020-01-30 14:52:47 +01:00
Jordi Boggiano 1d4cdb60d0
Improve error reporting for conflicts/replaces of various kinds, fixes #7254 2020-01-30 14:43:56 +01:00
Jordi Boggiano 6c9d9e775c
Clean up and deduplicate the output of RULE_LEARNED 2020-01-30 14:43:56 +01:00
Jordi Boggiano e6029d725a
Add individual test checking for clashes between requirements at root and transitive dependency level 2020-01-30 14:43:55 +01:00
Jordi Boggiano 3fc7e10c5c
Improve error reporting of solver issues, refs #7779
Fixes #8525
Fixes #6513
2020-01-30 14:43:54 +01:00
Jordi Boggiano 8a41f1a5ca
Allow providers which are selected to be installed in place of existing packages which do not satisfy requirements, fixes #6753 2020-01-30 14:09:55 +01:00
Jordi Boggiano 3f48acf56a
Add test checking references update to latest and remove TODO 2020-01-28 16:01:17 +01:00
Jordi Boggiano 292d4b3c8f
Make sure a lock file is always written and things work well even without any dependencies in the require/require-dev 2020-01-28 15:14:58 +01:00
Jordi Boggiano 7e6fe585bc
Merge branch 'master' into 2.0 2020-01-28 14:22:25 +01:00
Jordi Boggiano fb93036a70
Fix putenv to avoid leaving the environment in a dirty state 2020-01-28 14:22:11 +01:00
Jordi Boggiano 8584d15e8c
Merge branch 'master' into 2.0 2020-01-28 14:04:27 +01:00
Adriano Ferreira acc040f745 Append the bin dir on each listener iteration
The "composer install" can create the vendor/dir folders and be used as a script item on composer.json. Having another script running after it that relies on vendor/bir binaries (such as phpunit) will cause it to not find the binary. This fix addresses the issue by trying to append the path on each script iteration.
2020-01-20 08:11:08 -02:00
Nils Adermann 0b4e8952f6 PHP5 disallows require as a function name, use requireName analog to fixPackage 2020-01-19 23:28:00 +01:00
Nils Adermann 5bdc0fc9c5 Request jobs replaced by root require / fixed package
The only type of request job remaining was "install" which is really a
root requirement. The only other kind of input for the solver is now a
set of fixed packages.

Rules have been updated to account for only two kinds of former job
reason: FIXED or ROOT_REQUIRE. The job property has always been
redundant and has been removed, since reasonData suffices.

Problem reasons are always rules, so the unnecessary wrapping in an
array has been removed.

We now only ever generate a single rule per root require or fixed
package, so there is no need for the solver to special handle disabling
"jobs" anymore, the rule can just be disabled as usual.

For consistency special handling of rules for jobs in problems has been
integrated into the rule class like all other rule reasons. As part of
this change the error message for root requirements has been improved a
bit to make it clearer where the package installation request came from.

The word job has also been removed from operations, which are called
operations, not jobs.
2020-01-19 23:21:07 +01:00
Jordi Boggiano 921a97457d
Add PoolBuilder test harness for writing .test files 2020-01-19 19:46:16 +01:00
Jordi Boggiano 1d31190472
Keep track of unacceptable fixed packages for later to use in error reporting and make sure the pool state is consistent 2020-01-17 15:48:31 +01:00
Jordi Boggiano ebe910c3a5
Tweak test to follow changes 2020-01-17 15:16:01 +01:00
Jordi Boggiano b5e34ca767
Fix remove tests 2020-01-17 14:57:33 +01:00
Jordi Boggiano 6f44350c01
Remove problem reporting for locked package not being found, needs to be fixed in #7779 later 2020-01-17 14:01:01 +01:00
Jordi Boggiano de189c1b80
Fix deps=high build 2020-01-17 11:56:23 +01:00
Jordi Boggiano 7a4d3e6f25
Fix SolverTest 2020-01-15 15:03:11 +01:00
Jordi Boggiano dd556f989b
Use LockArrayRepository instead of RepositoryInterface to clearly indicate which type of repo it is in some places 2020-01-15 14:56:58 +01:00
Jordi Boggiano 6c24e85e54
Merge pull request #8528 from Seldaek/repo-prio-fix
Avoid loading packages found in a higher prio repo entirely from lower prio repos
2020-01-15 14:55:25 +01:00
Jordi Boggiano f68731e663
Remove package/repo priority concept as it is enforced by the pool builder now 2020-01-15 14:52:44 +01:00
Jordi Boggiano 30b6a41035
Extract MetadataMinifier util 2020-01-15 12:58:30 +01:00
Jordi Boggiano 47a94b3a88
Ensure packages that exist in a higher prio repo never get loaded in lower prio repos, fixes #5076 2020-01-15 12:02:12 +01:00
Jordi Boggiano 4a7d42604f
Fix tests 2020-01-14 16:27:16 +01:00
Jordi Boggiano 40f5806a7c
Fix ComposerRepo issue 2020-01-14 16:20:31 +01:00
Jordi Boggiano f91859ceff
Fix expectation 2020-01-14 15:46:58 +01:00
Jordi Boggiano a5b178084c
Merge branch 'master' into 2.0 2020-01-14 15:39:35 +01:00
Jordi Boggiano 78217e2313
Merge branch '1.9' 2020-01-14 12:52:32 +01:00
Jordi Boggiano a2dadb91bf
Return two packages in PathRepository when on a feature branch, one for feature branch and one for the source branch it came from, fixes #8498, fixes #8477 2020-01-14 12:52:20 +01:00
Jordi Boggiano a902279a5b
Merge branch '1.9' 2020-01-14 09:32:27 +01:00
Maximilian Bösing 3791a574a2
Provide partial packages names if available, closes #8516, fixes #8526 2020-01-14 09:31:57 +01:00
Jordi Boggiano ee3fd0f745
Merge remote-tracking branch 'adrianosferreira/package-install-method-cli'
Fixed formatting, and handling of config command to be preferred-install.foo value

Refs #8517
2020-01-13 18:18:18 +01:00
Jordi Boggiano f203b3eb41
Merge remote-tracking branch 'adrianosferreira/add-suggest-in-json-by-cli' 2020-01-13 17:36:10 +01:00
Jordi Boggiano c43137db3f
Merge branch '1.9' 2020-01-13 15:50:39 +01:00
Jordi Boggiano 818e16238f
Merge pull request #8510 from glaubinix/t/abandon-archived
VcsRepositories: mark archived repositories as abandoned
2020-01-13 13:47:33 +01:00
Jordi Boggiano 4e667f891b
Fix 5.3 build 2020-01-13 13:45:04 +01:00
Jordi Boggiano 23359f2db6
Merge branch 'master' into 2.0 2020-01-13 13:35:52 +01:00
Jordi Boggiano 3d72b56ed6
Merge branch '1.9' 2020-01-13 13:30:52 +01:00
Jordi Boggiano d3f1c664d4
Avoid formatting output from external processes, fixes #8524 2020-01-13 13:30:46 +01:00
Ondrej Mirtes 7d4d4622ab
ProcessExecutor - do not format output from executed processes 2020-01-13 13:20:04 +01:00
Jordi Boggiano 2bd817acf9
Merge pull request #8444 from Toflar/remove-filters-from-pool
Removed the filters from the pool
2020-01-13 12:47:22 +01:00
Adriano Ferreira 607d491921 Implemented way to add packages into suggest through CLI 2020-01-10 09:13:36 -02:00
Adriano Ferreira 5ea6fd0bcb Implemented way to use preferred-install for defining granular preferences through CLI
Currently, preferred-install accepts the hash of patterns as the value in the composer.json. I've followed the same approach as used in extra and platform for letting the user define install preferences through CLI in the format: `composer config preferred-install my-organization/stable-package.dist`.
2020-01-07 14:25:57 -02:00
Stephan Vock 731d94a2a3 VcsRepositories: mark archived repositories as abandoned 2020-01-04 17:01:27 +00:00
Markus Staab 3d8c1ebad5 implemented @putenv composer script
@putenv supports setting environment variables in a x-OS compatible way
2019-12-21 19:26:29 +01:00
Jordi Boggiano 082422f334
Merge pull request #8458 from johnstevenson/noproxy
Rewrite NoProxyPattern to include IPv6
2019-12-13 12:11:50 +01:00
Jordi Boggiano f6b3f12107
Merge branch 'master' into 2.0 2019-12-07 21:10:14 +01:00
Jordi Boggiano 8449a113b3
Fix build 2019-12-07 21:09:26 +01:00
Sergii Bondarenko bb127aa3e7 Resolves #8461: [ZipDownloader] Print `unzip` exit code when the command is failed 2019-12-03 15:30:08 +04:00
johnstevenson 00da9b125d Tidy and fix tests 2019-11-30 15:45:54 +00:00
johnstevenson 74ba9decdf Rewrite NoProxyPattern to include IPv6
This includes two breaking changes:
- the hostname is not resolved in the case of an IP address.
- a hostname with a trailing period (FQDN) is not matched.

This brings the basic implementation in line with curl behaviour, with
the addition of full IP address and range matching (curl does not
differentiate between IP addresses host names).

The NO_PROXY environment variable can be set to either a comma-separated
list of host names that should not use a proxy, or single asterisk `*`
to match all hosts.

- Port numbers can be included by prefixing the port with a colon `:`.
- IP addresses can be used, but must be enclosed in square brackets
`[...]` if they include a port number.
- IP address ranges can specified in CIDR notation, separating the IP
address and prefix-length with a forward slash `/`.
2019-11-29 20:39:08 +00:00
Yanick Witschi 02b6dc876f Fixed phpstan issues 2019-11-27 17:57:24 +01:00
Yanick Witschi d1dc367d86 Removed the filters from the pool 2019-11-27 17:57:24 +01:00
Jordi Boggiano 88eb61c1d8
Fix 5.3 syntax 2019-11-23 13:18:09 +01:00
Nils Adermann a732ea5dd8 Display source/dist refs if updates do not change the version
We now output an update when only a source or dist ref changes even if
it's a stable version so in these cases the output needs to contain the
ref to make it clear to users what changed
2019-11-23 12:33:58 +01:00
Jordi Boggiano 88b051c96b
Merge branch 'master' into 2.0
Update deps
2019-11-23 12:27:41 +01:00
Jordi Boggiano 67e170eaa8
Merge branch '1.9' 2019-11-23 12:25:23 +01:00
Jordi Boggiano 89f6b2c54c
Merge pull request #8418 from glaubinix/f/github-authentication-behaviour
Git: fix authentication handling for private GitHub repositories
2019-11-23 12:24:41 +01:00
Stephan Vock b847115617 Git: fix authentication handling for private GitHub repositories 2019-11-23 12:02:06 +01:00
Jordi Boggiano 438c45e991
Change UpdateOperation::show to match what the installers output, fixes the dry-run output to be more like real output 2019-11-14 15:41:23 +01:00
Jordi Boggiano 006985a0ea
Execute all operations at once which lets us download all packages in parallel then install only once all downloads succeeded, fixes #2847
This also changes the PRE/POST_PACKAGE_INSTALL/UPDATE/UNINSTALL events to have less information available on them, repositorySet, request and policy are gone
2019-11-14 15:21:28 +01:00
Nils Adermann aa6bc75af2 Add a test case for transactions to verify correct sorting 2019-11-08 17:51:18 +01:00
Nils Adermann 3cbe91983c Display Locking instead of Installing for lock file install operations 2019-11-08 16:57:52 +01:00
Nils Adermann 25de5218c3 Reunify lock and local repo transaction code and apply the same sorting 2019-11-08 15:56:46 +01:00
Nils Adermann ff5ec54f04 Correctly use install and update commands in our installer tests 2019-11-08 12:31:26 +01:00
Nils Adermann 97ec2d7b61 Merge remote-tracking branch 'github-composer/2.0' into solve-without-installed
* github-composer/2.0: (63 commits)
  Fix PSR warnings for optimized autoloader, refs #8397, refs #8403
  Prepare 1.9.1 changelog
  Output a hint that maybe you are not in the right directory, fixes #8404
  Fix PSR warnings for optimized autoloader, refs #8397, refs #8403
  Fix tests for PSR-fix in optimized autoloader, refs #8397
  Fix tests for PSR-fix in optimized autoloader, refs #8397
  Change PSR-fix for optimized autoloader to only warn for now, refs #8397
  Fix output of dump-autoload command to avoid interfering with warnings, refs #8397
  Remove credentials from git remotes in cache and vendor dirs
  Avoid overwriting credentials with existing ones from git repos, refs #8293
  Fix github auth to try https with pwd also, fixes #8356
  Fix gitlab support for basic-auth fallback from ssh URLs
  Avoid clearing the error output during removeDirectory execution, losing git error output, fixes #8351
  Move test file parsing into try/catch block to avoid phpunit swallowing errors
  make optimized autoloader respect PSR standards
  Validate composer show with --tree and --path options set (#8390)
  Don't show root warning for docker containers
  Added phpdoc for ComposerAutoloaderInit$SHA1::getLoader() (#8393)
  Validate schema name, type and version
  Fix require command to allow working on network mounts, fixes #8231
  ...
2019-11-08 12:27:13 +01:00
Nils Adermann bd6b4e433c Use JsonFile::JSON_PRETTY_PRINT instead of php const for PHP 5.3 compat 2019-11-07 22:09:24 +01:00
Nils Adermann 737a613a50 Use array() instead of [] for PHP 5.3 compat 2019-11-07 22:01:37 +01:00
Nils Adermann 26da52227e Clean up the Solver tests, no more installed repo input and new sorting
The solver now only calculates a lock file transaction which does not
need to be sorted in order of dependencies. This is only necessary for
the local repo transaction generated without the solver during install
2019-11-07 21:51:53 +01:00
Nils Adermann e308f043b9 Fully switch to spl_object_hash in lock transaction
The pool builder tries to be minimal so it's fine for present/locked
packages not be assigned a solver/pool id. Adding a test to verify
correct creation of uninstall jobs
2019-11-07 21:18:09 +01:00
Nils Adermann c50d236378 Correctly load branch aliases from lock file
Root aliases are also stored in the lock file, so on install do not read
them from composer.json.
2019-11-07 20:40:28 +01:00
Nils Adermann 2d37bb4116 Outated lock files now trigger an error requesting removal rather than being ignored silently 2019-11-07 17:38:16 +01:00
Nils Adermann 6925005ac9 Implement update mirrors/nothing/lock as its own installer mode
These special commands no longer (ab)use the partial update mechanism
but rather create a special install request for all current lock file
contents and later override any modified code references to the
originals. This leads to up to date remote metadata but no other
changes.
2019-11-07 17:35:44 +01:00
johnstevenson 7e649fac41 Fix Windows test regression from commit 149250a
Commit: 149250ab92

ProcessExecutor::escape handled a false value inconsistently across
platforms, returning an emtpy string on Windows, otherwise `''`. This
is fixed to return `""` on Windows.

The GitDownloaderTest code has been appropriately updated.
2019-11-07 12:50:42 +00:00
Andreas Möller f7f7883a5e
Fix: Xdebug vs xdebug 2019-11-03 14:08:14 +01:00
Jordi Boggiano 0ea06de286
Merge branch 'master' into 2.0 2019-11-01 16:41:48 +01:00
Jordi Boggiano 502b68967a
Fix tests for PSR-fix in optimized autoloader, refs #8397 2019-11-01 15:31:55 +01:00
Jordi Boggiano c3f034e33b
Fix tests for PSR-fix in optimized autoloader, refs #8397 2019-11-01 15:13:28 +01:00
Jordi Boggiano 3a0d05c148
Merge remote-tracking branch 'and800/fix-autoload-opts' 2019-10-30 16:22:44 +01:00
Jordi Boggiano f867c407c7
Merge branch 'master' into 2.0 2019-10-30 15:40:26 +01:00
Jordi Boggiano a0690525b5
Merge branch '1.9' 2019-10-30 15:25:57 +01:00
Jordi Boggiano 149250ab92
Remove credentials from git remotes in cache and vendor dirs
This only removes the credentials if they are managed by composer auth.json or equivalent, if the credentials were present in the package URL to begin with they might remain

Refs #8293
Fixes #3644
Closes #3608
2019-10-30 15:24:53 +01:00
Jordi Boggiano bc2a1d762a
Merge branch 'master' into 2.0 2019-10-30 08:54:44 +01:00
Nils Adermann eaae360ce6 Correcting lock files in test cases and updating output 2019-10-30 00:55:11 +01:00
Nils Adermann e6e317bc27 Fix test configurations, missing lock files, invalid ones
aliased alias test is failing because double alias is improperly
resolved now
2019-10-30 00:40:36 +01:00
Nils Adermann 94d45a980c Update lock syntax in tests and verify installed version does not impact lock generation
Particularly the test

tests/Composer/Test/Fixtures/installer/partial-update-downgrades-non-whitelisted-unstable.test

is interesting because it verifies that an older version will be
installed on update if the new one is only present in the installed repo
or vendor dir. This was the cause of a lot of weird edge cases and
unreliable update behavior in Composer v1
2019-10-30 00:32:23 +01:00
Nils Adermann 0ff07015a1 Only load package info from lock file for fixed packages
As a result some lock file packages are no longer in the pool, so the
former installed map, now present map cannot use package ids anymore

Need to revisit some more code later to simplify this, todo notes left
2019-10-30 00:24:25 +01:00
Nils Adermann 48ae45e5fe Correct github issue test to include a lock file, still fails because of real bug now 2019-10-29 23:16:38 +01:00
Nils Adermann 5c129be5e7 Partial updates without a lock file are no longer possible, update test 2019-10-29 23:12:54 +01:00
Nils Adermann 0873c4099b Merge branch '1.9'
* 1.9:
  Move test file parsing into try/catch block to avoid phpunit swallowing errors
2019-10-29 23:09:53 +01:00
Nils Adermann 6a335a459c Move test file parsing into try/catch block to avoid phpunit swallowing errors 2019-10-29 23:08:03 +01:00
Nils Adermann 4481cc4a88 Allow an install request for a package name which is already fixed
Ensures packages get loaded from locked repo correctly. We may not want
to support this particular use-case at all, but for now it fixes the
existing test, so we may want to revisit this later.
2019-10-29 22:28:36 +01:00
Andriy Maletsky ec293adabc make optimized autoloader respect PSR standards 2019-10-29 20:36:29 +02:00
Markus Staab e47aa38ad4 Added phpdoc for ComposerAutoloaderInit$SHA1::getLoader() (#8393) 2019-10-29 14:08:33 +01:00
Jordi Boggiano 78b8c365cd
Merge branch '1.9' 2019-10-24 15:05:45 +02:00
Jordi Boggiano 18dad48fa6
Merge pull request #8363 from sincilite/feature/error-reporting-for-missing-path
Improve error reporting for missing path in Repository Path
2019-10-24 11:34:55 +02:00
johnstevenson 8d9b822413 Add messages to junction tests to see failures 2019-10-21 11:09:17 +02:00
Arnout Boks 22caa0f097 Add tests for installer with lock: false
https://github.com/composer/composer/issues/8354
2019-10-20 10:51:59 +02:00
Mike van Rooyen 6b56ddae2a Remove unused variable 2019-10-08 20:49:44 +01:00
Mike van Rooyen daedb4a74f Remove extra line in method following CS-Fixer 2019-10-08 16:08:11 +01:00
Mike van Rooyen e62478ab89 Test to check there is a RuntimeException thrown when a path repository doesn't exist 2019-10-08 15:48:04 +01:00
zakonnic f159eb724a Add test for double gap in php-file 2019-09-20 17:08:00 +03:00
Nils Adermann 995b4f923e Fix more tests which were lacking lock files for partial updates, display fix jobs in problems 2019-09-07 09:32:06 +02:00
Nils Adermann 3989a1b8ee Restore dev package extraction
New approach is to use only the solved set of packages as input and then
to resolve with only the non-dev requirements and to mark everything as
dev that is not part of the result set, rather than transitioning a
temporary local repo state by uninstalling dev packages.
2019-09-07 08:52:10 +02:00
Nils Adermann 33ff67abf3 Update tests for new output and for required lock file on partial update 2019-09-07 07:53:31 +02:00
Nils Adermann a114e26841 Correctly load aliases in lockedRepository to fix alias install output 2019-09-07 07:43:23 +02:00
Nils Adermann 3e0e5dc1fa Fix test expectation: Install and update operations are now alphabetical 2019-09-07 07:17:41 +02:00
Nils Adermann c16ab6174e Fix tests: Alias install now always right after origin package, partial update requires lock file 2019-09-07 07:16:43 +02:00
Nils Adermann b700aa3d62 Sort local repo transaction as topological as possible 2019-09-07 06:05:02 +02:00
Nils Adermann f5e18250e6 Merge remote-tracking branch 'github-composer/2.0' into solve-without-installed
* github-composer/2.0: (48 commits)
  Fix missing use/undefined var
  Split up steps on VCS downloaders to allow doing network operations before touching the filesystem on GitDownloader, fixes #7903
  Fix use statement
  Deduplicate findHeaderValue code
  Add install-path to the installed.json for every package, fixes #2174, closes #2424
  Remove unnecessary config from phpstan
  Make sure the directory exists and will not block installation later when downloading
  Avoid wiping the whole target package if download of the new one fails, refs #7929
  Only empty dir before actually installing packages, fixes #7929
  Improve output when installing packages
  Show best possible version in diagnose command
  Remove extra arg
  Allow path repos to point to their own source dir as install target, resulting in noop, fixes #8254
  Fix use of decodeJson
  Fix update mirrors to also update transport-options, fixes #7672
  Fix updating or URLs to include dist type and shasum, fixes #8216
  Fix origin computation
  Improve handling of non-standard ports for GitLab and GitHub installs, fixes #8173
  Load packages from the lock file for check-platform-reqs if no dependencies have been installed yet, fixes #8058
  Fix error_handler return type declaration
  ...
2019-09-07 02:55:21 +02:00
Nils Adermann 06d11f2f38 Fix calculation of lock transaction updates and start updating output in tests 2019-09-07 02:33:50 +02:00
Nils Adermann f1e4ccbe1d Fix handling of reference updates and root references 2019-09-07 01:58:12 +02:00
Jordi Boggiano a403ee9b0e
Fix tests for reals 2019-08-29 15:23:58 +02:00
Jordi Boggiano 6fee17f16c
Fix tests, refs #8292 2019-08-29 15:09:26 +02:00
Jordi Boggiano 53d2ab2253
Split up steps on VCS downloaders to allow doing network operations before touching the filesystem on GitDownloader, fixes #7903 2019-08-29 11:37:23 +02:00
Jordi Boggiano 63da7c6b2d
Add install-path to the installed.json for every package, fixes #2174, closes #2424 2019-08-02 21:39:42 +02:00
Jordi Boggiano 8dfadd99d1
Merge branch '2.0' into fix/unused 2019-08-02 16:38:53 +02:00
Jordi Boggiano 1002fb12fc
Merge branch 'master' into 2.0 2019-08-02 13:26:03 +02:00
Jordi Boggiano 300a888470
Merge pull request #7995 from Seldaek/plugin-deactivation
Plugin deactivation/uninstall support
2019-08-01 18:11:49 +02:00
Jordi Boggiano 3ef27cabd6
Merge pull request #7999 from Seldaek/store_dev
Store dev mode in installed.json, fixes #3008
2019-08-01 17:59:09 +02:00
Jordi Boggiano 362ebe4f68
Fix update mirrors to also update transport-options, fixes #7672 2019-07-31 18:43:18 +02:00
Jordi Boggiano db6882b57f
Fix updating or URLs to include dist type and shasum, fixes #8216 2019-07-31 18:36:27 +02:00
Jordi Boggiano 0fe200d6d9
Fix origin computation 2019-07-31 18:01:08 +02:00
Jordi Boggiano 6c4357a7ed
Merge branch 'master' into 2.0 2019-07-31 17:50:01 +02:00
Jordi Boggiano 26a3e12c96
Merge pull request #7994 from aschempp/feature/zip-util
Extract the ZIP utility functions from ArtifactRepository
2019-07-30 11:36:10 +02:00
Jordi Boggiano 14f2a6dd9a
Fix remove command not working with escaped slashes (e.g. foo\/bar), fixes #8249 2019-07-30 09:48:49 +02:00
Jordi Boggiano 555fa5bae2
Merge pull request #8239 from carusogabriel/improve-redability-foreach
Make usage of foreach to improve readability
2019-07-30 07:24:43 +02:00
Jordi Boggiano 6ecff8e71d
Merge pull request #8241 from carusogabriel/remove-assignment
Remove override assignment
2019-07-29 18:08:15 +02:00
Jordi Boggiano 70c0d20772
Merge pull request #8242 from carusogabriel/remove-unused-private-methods
Remove unused private methods
2019-07-29 18:07:13 +02:00
Jordi Boggiano d9c2f00891
Merge pull request #8240 from carusogabriel/remove-unused-private-properties
Remove unused private properties
2019-07-29 18:06:55 +02:00
Jordi Boggiano 79e4ff4373
Merge pull request #8186 from freality/script_event_originating
allow Composer\Script\Event to reference originating event
2019-07-29 16:46:06 +02:00
Jordi Boggiano 369e8a2247
Fix indenting 2019-07-29 16:44:50 +02:00
Gabriel Caruso 1d05d4171c
Remove unused private methods 2019-07-24 03:13:53 +02:00
Gabriel Caruso 4cb2b303ec
Remove override assignment 2019-07-24 02:57:08 +02:00
Gabriel Caruso 6c8ddd4d57
Remove unused private properties 2019-07-24 02:53:53 +02:00
Gabriel Caruso b4fc3b7eef
Make usage of foreach to improve readability
Instead of count and comparing, we can simple use a foreach.
2019-07-24 02:39:40 +02:00
Adam Žurek b935d1c812 fixed phpstan error 2019-07-12 18:34:12 +02:00
Nils Adermann 9053d74282 Merge branch '2.0' into solve-without-installed
* 2.0: (101 commits)
  SVN: hide passwords for debug output
  Free $solver asap
  fixes #8179
  [minor] Fixed a typo in the CHANGELOG.md.
  Update deps
  Update changelog
  Revert "Allow overriding self-update target file with envvar COMPOSER_SELF_UPDATE_TARGET" Revert "Add docs for COMPOSER_SELF_UPDATE_TARGET, refs #8151"
  Add docs for COMPOSER_SELF_UPDATE_TARGET, refs #8151
  Fix display of HHVM warning appearing when HHVM is not in use, fixes #8138
  Read classmap-authoritative and apcu-autoloader from project config when installing via create-project, fixes #8155
  Use possessive quantifiers
  Update xdebug-handler to 1.3.3
  fixes #8159
  Allow overriding self-update target file with envvar COMPOSER_SELF_UPDATE_TARGET
  flag should come before script name
  use full command name, not abbreviated/alias
  modify text
  Document the alternatives to disable the default script timeout
  Anchor pattern
  Fix URL resolution for Composer repositories
  ...
2019-06-27 14:35:36 +02:00
Nils Adermann d2fa1e1319 Merge branch 'master' into 2.0
* master: (48 commits)
  SVN: hide passwords for debug output
  Free $solver asap
  fixes #8179
  [minor] Fixed a typo in the CHANGELOG.md.
  Update deps
  Update changelog
  Revert "Allow overriding self-update target file with envvar COMPOSER_SELF_UPDATE_TARGET" Revert "Add docs for COMPOSER_SELF_UPDATE_TARGET, refs #8151"
  Add docs for COMPOSER_SELF_UPDATE_TARGET, refs #8151
  Fix display of HHVM warning appearing when HHVM is not in use, fixes #8138
  Read classmap-authoritative and apcu-autoloader from project config when installing via create-project, fixes #8155
  Use possessive quantifiers
  Update xdebug-handler to 1.3.3
  fixes #8159
  Allow overriding self-update target file with envvar COMPOSER_SELF_UPDATE_TARGET
  flag should come before script name
  use full command name, not abbreviated/alias
  modify text
  Document the alternatives to disable the default script timeout
  Anchor pattern
  Fix URL resolution for Composer repositories
  ...
2019-06-27 14:08:00 +02:00
Nils Adermann e022c07370 Merge branch '1.8'
* 1.8:
  SVN: hide passwords for debug output
2019-06-27 14:06:49 +02:00
Stephan Vock 8da046e4e9 SVN: hide passwords for debug output 2019-06-23 18:59:36 +01:00
Ken Love b51cfce8e6 return the upper-most event in chain 2019-06-13 14:51:27 -04:00
Jordi Boggiano 79a300eaac
Merge branch '1.8' 2019-06-07 16:58:37 +02:00
Jordi Boggiano fbb964888d
Merge branch '1.8' 2019-06-07 13:12:21 +02:00
pfofi c751914410 Fix URL resolution for Composer repositories
Composer was unable canonicalize URLs in non-HTTP(S) Composer
repositories. For example it was not possible to use a `providers-url`
in a repository loaded via the `file://` scheme.

See also: #8115
2019-05-10 13:55:31 +02:00
Rob Bast 080b0f27e9 add missing testcase 2019-05-08 15:58:02 +02:00
ShiraNai7 a2b647a99e Handle absolute phar:// paths in autoload_static.php 2019-04-11 20:23:31 +02:00
Jordi Boggiano 2b421a94cb
Merge branch '1.8' 2019-04-09 13:05:02 +02:00
Rob Bast 25e3f6d4b9 expand regex and testcases 2019-04-04 08:31:26 +02:00
Rob Bast 971528916b fix regex for heredoc/nowdoc
* take into account relaxed changes introduced in php 7.3
  * see: 4887357269
* allow " as well as ', which was introduced in php 5.3

closes #8080
2019-04-03 10:46:35 +02:00
Patrick Reimers dd1e80a38f
Add tests for wrong package name. 2019-03-05 10:53:43 +01:00
Andreas Schempp 0e2215dc6c Added full unit test coverage 2019-03-04 11:08:59 +01:00
Patrick Reimers 5d14a95543
Add test for warning on deprecated naming 2019-03-01 20:11:20 +01:00
Jordi Boggiano 60df892517
Store dev mode in installed.json, fixes #3008 2019-02-21 12:46:02 +01:00
Jordi Boggiano 8fe2b9ec69
Fix test 2019-02-20 13:41:43 +01:00
Jordi Boggiano 3fc9ede24b
Add plugin callbacks for deactivation and uninstall, fixes #3000 2019-02-18 18:14:46 +01:00
Jordi Boggiano 1b7e957cc1
Add EventDispatcher::removeListener to allow deregistration of listeners 2019-02-18 18:12:38 +01:00
Jordi Boggiano 169fb2347a
Avoid issues with git signatures when running tests 2019-02-18 17:00:57 +01:00
Jordi Boggiano 936933fa66
Fix cache tests 2019-02-18 14:12:01 +01:00
Jordi Boggiano 0caa616e6c
Fix test warnings 2019-02-18 14:03:23 +01:00
Jordi Boggiano 799717f102
Tweak and fix some more phpstan reports 2019-02-18 13:05:14 +01:00
CZechBoY a062cd1a31
added phpstan on level 0 2019-02-18 13:05:14 +01:00
Jordi Boggiano fb3d0981c0
Fix test suite 2019-02-18 12:35:24 +01:00
Jordi Boggiano 0fd74d1cc4
Fix PerforceDownloader, fixes #7979 2019-02-18 12:28:21 +01:00
Nils Adermann 10ada7bf82 Refactor Installer class into separate install and update processes
- Introduce separate Lock and LocalRepo transactions, one for changes
  to the lock file, one for changes to locally installed packages based
  on lock file
- Remove various hacks to keep dev dependencies updated and
  incorporated the functionality into the transaction classes
- Remove installed repo, there are now local repo, locked repo and
  platform repo
- Remove access to local repo from solver, only supply locked packages
- Update can now be run to modify the lock file but not install packages
  to local repo
2019-02-11 01:00:02 +01:00
Nils Adermann 287419f6a0 Merge branch 'master' into 2.0
* master:
  Follow up to #7946 test: add solver flag to assert path execution
  Fix tests
  Make sure config command output is also output on --quiet so that warnings can be hidden, fixes #7963
  Recognize composer-plugin-api as a platform package, fixes #7951
  Quote wildcards to avoid issues in some shells, fixes #7960
  Avoid dumping null values for dist reference/shasum and source reference, fixes #7955
  Soften hard exit after revert of composer file
  Make unixy proxy code POSIX compatible
  Update aliases.md
  Same but for Problem.php
  Better error message for present but incompatible versions
  Fix inconsistent casing
  Don't do (new Foo())->bar() - not 5.3-compatible
  Support identifying the HHVM version when not running with HHVM
2019-02-10 20:28:24 +01:00
Nils Adermann 0619fbed58 Merge branch '1.8'
* 1.8:
  Follow up to #7946 test: add solver flag to assert path execution
2019-02-10 20:28:05 +01:00
Nils Adermann 29ff6a40ae Follow up to #7946 test: add solver flag to assert path execution 2019-02-10 20:26:47 +01:00
Jordi Boggiano 28b51ccfc5 Merge branch '1.8' 2019-02-10 20:24:43 +01:00
Jordi Boggiano c66bb0b1d0 Fix tests 2019-02-10 13:07:42 +01:00
Jordi Boggiano ff246e3e85 Merge branch '1.8' 2019-02-10 12:59:38 +01:00
Jordi Boggiano f2cc666c2c
Merge pull request #7913 from fredemmott/hhvm-version
Support identifying the HHVM version when not running with HHVM
2019-02-08 16:13:32 +01:00
Nils Adermann 728e57b9e0 Merge branch 'master' into 2.0
* master:
  Fix solver problem exceptions with unexpected contradictory "Conclusions"
  Also load config into IO if not freshly created
  Only load configuration into IO if IO is available
  Fix defaultRepos fallback does not use auth config
  Add warning/info msg when tweaking disable-tls setting to avoid confusion, fixes #7935
2019-02-05 15:35:51 +01:00
Nils Adermann fdcae616b0 Merge branch '1.8'
* 1.8:
  Fix solver problem exceptions with unexpected contradictory "Conclusions"
  Also load config into IO if not freshly created
  Only load configuration into IO if IO is available
  Fix defaultRepos fallback does not use auth config
2019-02-05 15:32:52 +01:00
Nils Adermann 6b2edeae56 Fix solver problem exceptions with unexpected contradictory "Conclusions"
This 5 character fix comes with a solver test as well as a functional
installer test essentially verifying the same thing. The solver test is
more useful when working on the solver. But the functional test is less
likely to be accidentally modified incorrectly during refactoring, as
every single package, version and link in the rather complex test
scenario is essential, and a modified version of the test may very well
still result in a successful installation but no longer verify the bug
described below.

Background:

In commit 451bab1c2c from May 19, 2012 I
refactored literals from complex objects into pure integers to reduce
memory consumption. The absolute value of an integer literal is the id
of the package it refers to in the package pool. The sign indicates
whether the package should be installed (positive) or removed (negative),

So a major part of the refactoring was swapping this call:

$literal->getPackageId()

For this:

abs($literal)

Unintentionally in line 554/523 I incorrectly applied this change to the
line:

$this->literalFromId(-$literal->getPackageId());

It was converted to:

-abs($literal);

The function literalFromId used to create a new literal object. By using
the abs() function this change essentially forces the resulting literal
to be negative, while the minus sign previously inverted the literal, so
positive into negative and vice versa.

This particular line is in a function meant to analyze a conflicting
decision during dependency resolution and to draw a conclusion from it,
then revert the state of the solver to an earlier position, and attempt
to solve the rest of the rules again with this new "learned" conclusion.

Because of this bug these conclusions could only ever occur in the
negative, e.g. "don't install package X". This is by far the most likely
scenario when the solver reaches this particular line, but there are
exceptions.

If you experienced a solver problem description that contained a
statement like "Conclusion: don't install vendor/package 1.2.3" which
directly contradicted other statements listed as part of the problem,
this could likely have been the cause.
2019-02-03 16:33:55 +01:00
Fred Emmott bac2ef3dfd
Don't do (new Foo())->bar() - not 5.3-compatible 2019-02-01 11:20:34 -08:00
Fred Emmott 1b196720bf
Support identifying the HHVM version when not running with HHVM
hhvm-nightly (and the next release) are no longer able to execute
Composer. Support executing Composer with PHP to install dependencies
for hack projects.

The goal is for this to be temporary, until Hack identifies a new
package manager, given that Composer does not aim to be a multi-language
package manager.

fixes #7734
2019-01-29 09:48:15 -08:00
Jordi Boggiano 71193132a3 Fix test 2019-01-29 14:22:20 +01:00
Jordi Boggiano 4517c00d40 Merge branch 'master' into 2.0 2019-01-29 14:01:28 +01:00
Jordi Boggiano 79af9d45af Merge branch '1.8' 2019-01-29 13:49:25 +01:00
Jordi Boggiano acea4a4d4d Warn on invalid package name or require/provide/.., fixes #7874 2019-01-29 13:46:23 +01:00
Jordi Boggiano 98a15bc93c Add output for metapackage installs/updates/.. fixes #7586 2019-01-29 11:38:18 +01:00
Jordi Boggiano b89720b52a Merge branch 'master' into 2.0 2019-01-28 18:00:52 +01:00
Jordi Boggiano 81de5f82aa Merge branch '1.8' 2019-01-28 17:57:31 +01:00
Sascha Egerer 1845adcfbd Fix update whitelist pattern resolving and add more tests 2019-01-28 17:34:24 +01:00
Sascha Egerer 50cb5fe3da Update all whitelist matching root dependencies
The update command can receive a pattern like `vendor/prefix-*`
to update all matching packages.
This has not worked if multiple packages, depending on each other,
where matched to the given pattern. No package has been updated
in this case as only the first package matching the pattern was
added to the whitelist.
2019-01-28 17:34:08 +01:00
Nils Adermann 386382503d Add a test for autoloading if a package is only required via replacing name 2019-01-28 17:08:51 +01:00
Den Girnyk 3b6b63784f Fix: Keep replaced packages for autoload dumping with --no-dev 2019-01-28 17:02:32 +01:00
Jordi Boggiano 2200043a43
Merge pull request #7900 from Great-Antique/fix-dumpautoload-no-dev-packages-resolving
Fix: Keep replaced packages for autoload dumping with --no-dev
2019-01-28 15:52:43 +01:00
Jordi Boggiano b7d1f87848 Fix tests 2019-01-28 15:44:21 +01:00
Jordi Boggiano 0b928b2a42 Merge branch 'master' into 2.0 2019-01-28 14:33:10 +01:00
Jordi Boggiano f54237159d Cleanups 2019-01-18 12:14:47 +01:00
Den Girnyk 5b78ea529a
Fix: Keep replaced packages for autoload dumping with --no-dev 2019-01-18 11:45:35 +02:00
Jordi Boggiano 3dfcae99a9 Add parallel download capability to FileDownloader and derivatives 2019-01-18 08:39:03 +01:00
Jordi Boggiano fd5c5ff6bc Fix implementation of whatProvides for older provider-only repos 2019-01-14 17:29:24 +01:00
Jordi Boggiano b47330adf1 Refactor ComposerRepository to work with combined repos having lazy providers and partial packages 2019-01-14 17:29:24 +01:00
Jordi Boggiano e8c6948770 Deduplicate link instances between versions of a given package 2019-01-14 17:29:24 +01:00
Jordi Boggiano 64384f8b15 Fix tests 2019-01-14 17:29:24 +01:00
Jordi Boggiano fd11cf3618 Port/extract most behavior of RemoteFilesystem to CurlDownloader 2019-01-14 17:29:23 +01:00
Jordi Boggiano 09fd239f24 Fix factory test 2019-01-14 17:29:23 +01:00
Jordi Boggiano 1cd9f4f9db Disable request_fulluri by default for HTTPS connections 2019-01-14 17:29:23 +01:00
Jordi Boggiano f946d8eb5a More RemoteFilesystem usage removals and some repository/vcs driver refactorings 2019-01-14 17:29:23 +01:00
Jordi Boggiano 713bc4de1d Minor fixes and updated the rest of the code/tests to use HttpDownloader 2019-01-14 17:29:23 +01:00
fancyweb a9d6068c57 feat(buffer-io): add the possibility to set user inputs for interactive questions 2019-01-05 11:59:33 +01:00
Jordi Boggiano bf33eec912 Fix tests 2018-12-03 10:59:04 +01:00
Jordi Boggiano 411dd51f20 Merge branch 'master' into 2.0 2018-12-03 10:41:19 +01:00
Jordi Boggiano 85ec111dee Merge remote-tracking branch 'dmanners/add-chat-option-for-support' 2018-11-26 19:47:13 +01:00
Jérôme Deuchnord b0b00ad1fa Call a script recursively with extra parameters (#7720)
* Added support for calling scripts recursively (fixes #7562)
2018-11-26 12:35:41 +01:00
Jordi Boggiano 2e0f31106a Merge remote-tracking branch 'origin/master' into 2.0 2018-11-12 16:01:07 +01:00
Jordi Boggiano 5a56bb6971 Remove BC event and constraint classes 2018-11-12 15:57:44 +01:00
Jordi Boggiano 86f59348f5
Fix TestCase import 2018-11-12 15:24:28 +01:00
Gabriel Caruso 2a13bb2649 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
2018-11-12 15:23:32 +01:00
Jordi Boggiano ceb3a7a8e8 Merge branch '1.7' 2018-10-31 18:32:39 +01:00
Jordi Boggiano 42dca2aff5 Remove weird binary file from repo 2018-10-31 18:29:32 +01:00
Jordi Boggiano 2528654c53 Merge branch '1.7' 2018-10-31 18:13:39 +01:00
Jordi Boggiano 9e6a0bff71
Merge pull request #7658 from fooman/fix-non-zip-file-with-zip-ext
Fix regression for artifact repository
2018-10-31 16:12:55 +01:00
Alexey Kopytko aa6d138bdc Check for the actual warning description 2018-10-30 15:56:24 +01:00
Alexey Kopytko 20107dbf77 Ensure that a missing SSL/TLS protection warning does not pollute STDOUT
Fixes #7737
2018-10-30 15:56:24 +01:00
Stephan Vock 819f487b38 Bitbucket: switch to v2 API 2018-10-19 14:31:17 +02:00
David Manners 96347fbea1 composer/composer#7384: add chat to support options
- update schema documents to note that chat is allowed,
 - validate that chat must be a string and a url similar to forum options
2018-10-14 11:15:25 +00:00
Kristof Ringleff, Fooman add71388ca Add failing artifact 2018-10-01 23:03:51 +13:00
Nils Adermann 902cb290e7 Only load package versions which fit the root composer.json constraints 2018-09-12 16:48:17 +02:00
Nils Adermann 81bb8f81ad Set all package ids only once the pool is created
They all get set in one place only and at a specific time when nothing
else will possibly change them anymore
2018-09-12 14:31:40 +02:00
Nils Adermann 5c491ecc9b
Merge pull request #7625 from naderman/repository-set
Separate RepositorySet from Package Pool, load only metadata of packages directly required
2018-09-12 14:22:01 +02:00
Nils Adermann 96c812fb24 Properly buffer installer test output to display as errors if necessary 2018-09-12 13:27:10 +02:00
Nils Adermann c0f19f6c57 Move construction of pool from repo set into a pool builder
Pool construction depends on the install request now, so only required
packages get loaded, add some structure for future asynchronously
loading composer repositories
2018-09-12 11:49:09 +02:00
Nils Adermann b6e2d60c9e Create the pool in the installer before giving it to the solver 2018-09-11 15:49:08 +02:00
Nils Adermann 1228bcdffc Internalize pool creation in repository set, store root aliases in set
The pool is still exposed too early in a few places which will require
further refactoring
2018-09-11 13:34:18 +02:00
Nils Adermann 6ef65e5319 Add a new RepositorySet class and restrict pool usage to the solver
Breaking change for the plugin interface so bumping the version of
composer-plugin-api to 2.0.0

First step for a refactoring of the package metadata loading mechanism
2018-09-10 15:27:54 +02:00
Gabriel Caruso 71c8735e11 Use combined assignment operators 2018-09-10 14:24:41 +02:00
Gabriel Caruso a17f051e29 Remove useless parentheses 2018-09-10 14:24:24 +02:00
Christophe Coevoet 8c3898aa57 Update tests for replace conflicts
This reverts the test changes done in b4698568d2 to the original tests added
in 1425bb7fc3.
2018-08-27 12:14:34 +02:00
Jordi Boggiano bf125295df Fix escaping of URLs in Perforce and Subversion drivers 2018-08-25 18:48:56 +02:00
Jordi Boggiano 3d01ef28fa Revert "Do not dump source and dist for metapackages"
The source/dist reference is needed to operate composer outdated and other functionality

Fixes #7546

This reverts commit 42739e7959.
2018-08-22 09:45:54 +02:00
Alexander Kurilo e1a6bd5ff1 Make JSON formatter test clearer 2018-08-10 08:54:34 +02:00
Alexander Kurilo 5a22a4f1f3 Make surrogate sequences in JSON work on PHP 5.3
Fixes #7510
2018-08-10 08:54:27 +02:00
Rafael Kassner 42739e7959 Do not dump source and dist for metapackages 2018-07-29 16:16:02 +02:00
Jordi Boggiano ff59bbdab0 CS fixer 2018-07-24 14:32:52 +02:00
Jordi Boggiano c5fa3bdde0 Migrate to repo.packagist.org for package metadata 2018-07-24 09:30:06 +02:00
Jordi Boggiano 16af52be8a Merge remote-tracking branch 'origin/1.6' 2018-07-20 11:39:44 +02:00
Théo FIDRY 87646ae689
Hide suggest reason when there is not one 2018-06-09 15:18:21 +01:00
Jordi Boggiano 0a27ca7b65 Make sure circular dependencies do not break the autoload dumper, refs #7316, refs #7348 2018-06-06 14:51:52 +02:00
Jordi Boggiano eedbd218f5 Make sure circular dependencies do not break the autoload dumper, refs #7316, refs #7348 2018-05-31 17:02:04 +02:00
Jordi Boggiano 46f973e213 Merge branch '1.6' 2018-05-15 16:07:05 +02:00
Philipp Fritsche b0be87177d
Filter dev-dependencies from "dump-autoload --no-dev" , fixes #4343 2018-05-08 02:57:26 +02:00
Jordi Boggiano 4ebb747e12 Merge branch '1.6' 2018-05-04 11:18:18 +02:00
Jordi Boggiano 78ae0a97f7 Terminate quoted strings 2018-05-04 11:02:12 +02:00
Jordi Boggiano 3b9d6769bf Fix class names in comments being parsed in short_open_tags files, fixes #7289 2018-05-04 11:02:12 +02:00
Jordi Boggiano 464daeebe2 Merge branch '1.6' 2018-05-03 17:38:09 +02:00
Jordi Boggiano 43e33be79f Fix regression in 036fc44c25, fixes #7268 2018-05-03 17:30:33 +02:00
Jordi Boggiano 38866ba310 Merge remote-tracking branch 'johnstevenson/external-xdebug' 2018-04-13 15:38:27 +02:00
Jordi Boggiano c917865fe9 Fix handling of dev versions and consolidate logic, refs #7119 2018-04-13 13:55:02 +02:00
Jordi Boggiano 24ad6307a7 Merge remote-tracking branch 'austris-argalis/issue-7085' 2018-04-13 13:11:46 +02:00
Jordi Boggiano ea78712822 Merge branch '1.6' 2018-04-13 10:52:23 +02:00
Edwin Rodríguez 9dc6222288 Allow using fossil dependency in a fossil repository, fixes #7125, closes #7126 2018-04-13 09:00:03 +02:00
Jordi Boggiano 35ebb8b93f Merge branch '1.6' 2018-04-12 19:22:50 +02:00
Filippo Tessarotto 277f32d388 Lock _readme: remove outdated hashtag link part, closes #7096 2018-04-12 18:00:01 +02:00
Jordi Boggiano 2bd34c0534 Merge branch '1.6' 2018-04-12 17:01:00 +02:00
Jordi Boggiano 9041622b86 Fix version guessing regression and a few other issues, fixes #7127 2018-04-12 15:16:39 +02:00
Jordi Boggiano bfa01285c2 Merge branch '1.6' 2018-04-12 10:25:03 +02:00
Jordi Boggiano 066351c5b9 Remove use of deprecated getMock method 2018-04-12 10:24:56 +02:00
Jordi Boggiano 036fc44c25 Make sure aliased packages are removed correctly from the repository, fixes #7167 2018-04-12 09:51:01 +02:00
Petr /Peggy/ Sládek 8d06832077 Update ClassMapGenerator to work better with symlinks, fixes #7252, closes #7251 2018-04-12 09:37:26 +02:00
johnstevenson ed97c2116c Use external XdebugHandler library 2018-03-08 19:20:16 +00:00
austris argalis 8a5645ffda Wording: Downgrading instead of Updating #7085 2018-02-16 00:38:41 +02:00
Jordi Boggiano 16dcb04e1d Merge branch '1.6' 2018-01-24 10:28:44 +01:00
Jordi Boggiano a1bf6890d5 Fix ConsoleIO tests 2018-01-24 10:28:39 +01:00
Jordi Boggiano 96d07e6753 Merge branch '1.6' 2018-01-22 16:44:24 +01:00
Jordi Boggiano 842a7ea922 Fix dev-master not being normalized correctly for the root package, fixes #7007 2018-01-22 16:44:17 +01:00
Jordi Boggiano ad8b44a4c8 Merge branch '1.6' 2018-01-22 15:42:56 +01:00
Jordi Boggiano ea9b7ecbb0
Merge pull request #6982 from carusogabriel/phpstan
Fixes from PHPStan level 0
2018-01-22 14:50:43 +01:00
Jean-Baptiste 595cf4432c Fix Test RepositoryFactory 2018-01-22 14:06:56 +01:00
Martin Hujer bbee0d7c6c Validation warns if script description for nonexistent script is present
Fixes #7010
2018-01-17 19:15:06 +01:00
Gabriel Caruso 3d262bd637 Fixes from PHPStan level 0
More fixes from PHPStan level 0
2018-01-14 11:44:15 -02:00
Tomas Klinkenberg 60106edd32 Added a test to confirm issue #6994.
Added a encapsulated group to the replacement parameter of the `preg_replace` for GitLab in `\Composer\Util\Url::updateDistReference()`. This fixes #6994.
2018-01-09 17:57:22 +01:00
Jordi Boggiano e6114b2ca7 Fix support for replacing dist refs in gitlab URLs and add support for gitlab/github enterprise too 2018-01-05 15:20:30 +01:00
Gabriel Caruso 2ad6f611d7 Allow bin key to receive string 2018-01-02 07:00:55 -02:00
Andreas Möller 79828f7543
Enhancement: Assert that key is removed when value is null 2017-12-28 21:11:54 +01:00
Andreas Möller 6059acf0a3
Fix: Remove unused parameter and field 2017-12-27 13:20:12 +01:00
Jordi Boggiano 50665aa18d Simplify check for current revision, refs #6684 2017-12-19 17:50:02 +01:00
Jordi Boggiano 93cd9d874b Merge remote-tracking branch 'RobberPhex/git-repo' 2017-12-19 15:47:58 +01:00
John Stevenson 02fbbd5a42 Skip MockedZipDownloader tests if zip is missing (#6917)
* Skip MockedZipDownloader tests if zip is missing
2017-12-19 11:07:09 +01:00
Jordi Boggiano a1c5754b1f Make sure tests run non-interactively 2017-12-18 17:18:59 +01:00
Jordi Boggiano c8aea719b1 CS fixes 2017-12-18 16:02:48 +01:00
Jordi Boggiano 0a9abeef88 Merge branch '1.5' 2017-12-17 15:05:08 +01:00
Renoir Boulanger 9f723ba381 Support GitLab repositories w/ port over HTTPs
When we have self-hosted GitLab, over HTTPs, on a different port.

rel composer/composer#6894
2017-12-17 13:59:08 +01:00
Alessandro Lai 54adf0b61e Add regression test about VersionGuesser pretty_version handling 2017-12-17 13:49:07 +01:00
Gabriel Caruso 885da4c8ef Refactoring tests 2017-12-03 02:41:58 -02:00
Gabriel Caruso afc9a7643e Use PHPUnit\Framework\TestCase instead of PHPUnit_Framework_TestCase 2017-11-30 13:44:43 -02:00
Gabriel Caruso a4b220273e Refactoring Tests (#6849) 2017-11-30 15:58:10 +01:00
Jordi Boggiano 6256e17149 Merge branch '1.5' 2017-11-30 15:19:19 +01:00
Jordi Boggiano 5ba6d7d436 Fix pretty guessed versions to show nicely on numeric branches, refs #6845 2017-11-30 15:19:11 +01:00
Alessandro Lai 3cf31da414 Fix root package not having a pretty version when detecting from VCS, fixes #6845, closes #6847 2017-11-30 15:07:08 +01:00
Jordi Boggiano eab826b00b Merge branch '1.5' 2017-11-29 16:37:49 +01:00
Jordi Boggiano 45cd26b2df Fix test and actually check that we get hasAuthentication called for different domains 2017-11-29 16:37:00 +01:00
Jordi Boggiano 9850621c6b
Merge pull request #6788 from GawainLynch/symfony-4
Symfony 4
2017-11-28 18:30:31 +01:00
Jordi Boggiano 0b3bc4ccb9 Merge branch '1.5' 2017-11-28 18:09:36 +01:00
johnstevenson b0922b95af Report multiple inis in php.ini specific messages
Where systems use multiple ini files it is perhaps more useful to
suggest running `php --ini` to see their locations, rather than showing
the loaded php.ini (if one exists).
2017-11-28 18:09:08 +01:00
Nils Adermann 7dffe79a0f Update tests of solver problem message to match new message 2017-11-16 12:41:41 +01:00
Robert Lu 3ce71a55bf fix unittest 2017-11-07 13:54:52 +08:00
Gawain Lynch f74c6f4620
Update tests to handle optional QuestionHelper::setInputStream() availability 2017-11-06 16:32:29 +01:00
Gawain Lynch 157075b996
Migrate ConsoleIO::select to use QuestionHelper and ChoiceQuestion 2017-11-06 16:29:55 +01:00
Jordi Boggiano 26a50b3762 Merge branch '1.5' 2017-11-03 19:53:36 +01:00
Jordi Boggiano 4ab34c22fa
Merge pull request #6740 from croensch/master
also support NO_PROXY
2017-11-03 19:50:28 +01:00
Jérôme Vasseur 71c2ecbace Fix platform package detection in VersionParser 2017-11-03 19:48:52 +01:00
Jordi Boggiano 9a99e86ebc Rename NonRoot to Transitive, refs #6674 2017-11-03 14:35:04 +01:00
Jordi Boggiano 9df22654c3 Merge remote-tracking branch 'grasmash/issue-6661-whitelist-all-deps' 2017-11-03 14:20:38 +01:00
croensch 6da92e98ac also support NO_PROXY
since WINDOWS can only have one case and that is usually upperase
2017-10-12 16:35:05 +02:00
Matthew Grasmick 776977f597 Fixing method name. 2017-09-11 13:53:56 -04:00
Vladimir Reznichenko c8615358cb SCA with PHP Inspections (EA Extended) 2017-09-11 19:40:43 +02:00
Matthew Grasmick 11db6f90c2 Cleaning up comments 2017-09-11 12:56:51 -04:00
Matthew Grasmick 3826e51caa Renaming some methods and props. 2017-09-11 12:38:54 -04:00
Matthew Grasmick ad465aa769 Updating var names. 2017-09-11 11:47:33 -04:00
Matthew Grasmick 21722f6e42 Fixing test version constraints. 2017-09-11 11:32:19 -04:00
Matthew Grasmick f29e98cdf9 Fixes #6661: Allow a given package and its dependencies (including siblings) to be updated. 2017-09-11 11:16:15 -04:00
Jordi Boggiano dae575c197 Merge branch '1.5' 2017-09-11 16:09:36 +02:00
Deamon 3d753b117b add test on remove mainkey at end of file 2017-09-11 16:07:13 +02:00
Jordi Boggiano a8df30c09b Merge branch '1.5' 2017-09-11 12:16:16 +02:00
Mikk Tendermann 2a89d37651 fix gitlab not telling visibilty if user is not logged in 2017-09-11 10:37:32 +02:00
Christian Ramelow f178c340e9 Fixed tests. 2017-09-01 20:47:13 +02:00
Christian Ramelow 39d8104897 Introduces a new method `copy()`.
Some packages, e. g. `tm/tooly-composer-script`, are using the composer classes to e. g. create symlinks or perform other file operations. While there's only a `copyThenRemove()` method this commit introduces a new `copy()` method. `copy()` behaves the same as the copy part of `copyThenRemove()` did with one exception: it returns `true` on success and `false` on failure. Copying a directory may lead to a `false`, while the whole directory or some of its files couldn't been copied. To ensure backwards compatibility `copyThenRemove()` calls `copy()` now. This commit also adds the necessary tests.
2017-08-31 20:19:43 +02:00
Jordi Boggiano e33d00f98e Fix gitlab tests 2017-08-18 14:14:15 +02:00
Jordi Boggiano f420d31233 Fix application test 2017-08-08 10:43:26 +02:00
Jordi Boggiano a6c4fb2dcf Fix gitlab tests 2017-08-08 10:26:35 +02:00
Jordi Boggiano c89f6338c2 CS tweaks, refs #6592 2017-08-08 10:11:35 +02:00
Helmut Januschka ae42e4f8a3 php 5 2017-08-07 22:00:14 +02:00
Helmut Januschka bc4a7834ba php 5 being php5 :/ 2017-08-07 21:56:02 +02:00
Helmut Januschka b847270d08 rename test method 2017-08-07 21:47:41 +02:00
Helmut Januschka b486056066 add tests for gitlab paging 2017-08-07 21:46:43 +02:00
Jordi Boggiano b07be842a0 Remove feature-branches option as it is misnamed and duplicates the non-feature-branches option, refs #6475 2017-08-07 18:14:04 +02:00
Jordi Boggiano 6832eacb01 Update GitLab API usage to v4, fixes #6453 2017-08-07 13:13:24 +02:00
Jordi Boggiano 65d49bf811 Merge branch '1.4' 2017-08-07 10:04:46 +02:00
Jordi Boggiano d2b102ecb9 Merge remote-tracking branch 'svenmuennich/pr/fix-require-command' into 1.4 2017-08-07 09:25:24 +02:00
Sergey Shcherbin 118abacd14 Fix for time format in GitBitbucketDriver test 2017-08-06 12:40:47 +02:00
Jordi Boggiano 34dbde3873 Merge branch '1.4' 2017-07-03 17:00:48 +02:00
Sven Münnich d51ef83a43 Fix case insensitivity of ‘require’ command
When currently executing the `require` command for a package that is already listed in `require(-dev)`, one must use the exact same, case matching package name as written in `composer.json`. That is, if one changes the case of a character in the package name, the `require` command will add a new entry to `require(-dev)`, instead of updating the existing one.

This commit fixes the described behaviour to make it consistent with other commands like `update` that are already case insensitive.
2017-07-03 12:11:24 +02:00
Rob Bast 422a9adb07
images related to new trusty images 2017-06-22 15:20:19 +02:00
Jordi Boggiano ef47d8bf05 Merge pull request #6486 from WilHall/feature/htaccess-protect-option
Add htaccess-protect option for disabling the creation of .htaccess files
2017-06-17 15:39:56 +02:00
Jordi Boggiano 91a4e76958 Merge pull request #6460 from bmax/master
Cache: clear cache using removeDirectory
2017-06-17 15:28:05 +02:00
Brandon Max 24b8fea48a Cache: clear cache using removeDirectory 2017-06-16 16:25:11 -04:00
Wil Hall f0924fb878 Add htaccess-protect option for disabling the creation of .htaccess files 2017-06-15 11:06:13 -04:00
Jordi Boggiano 7cee8e385f Merge branch '1.4' 2017-06-15 16:28:08 +02:00
Jordi Boggiano cc9234562d Merge pull request #6475 from NamelessCoder/featurebranches
Add support for feature-branches setting
2017-06-15 15:49:10 +02:00
Claus Due 965f1f42d1 Add support for feature-branches setting
A negative list of non-feature-branches names
is already supported - this patch adds a list of
branches names which *will* be considered as
feature branches.

Allows changing the currently hardcoded set of
expected feature branch names, from:

* master|trunk|default|develop

To any set of names or patterns that you desire.
2017-06-11 19:02:51 +02:00
Sergey Shcherbin 292882f0d0 Fix for time format in GitBitbucketDriver test 2017-06-07 22:29:15 +03:00
Nils Adermann b1110df873 Merge pull request #6371 from balbuf/balbuf/move-all-plugins
Move all plugins and their dependencies to the front
2017-05-24 13:23:09 +02:00
Stephen Beemsterboer 06bb6c7530 Move plugins with no dependencies to the front, followed by plugins with their dependencies 2017-05-23 20:28:32 -04:00
Remi Collet 741c8d63fb fix test for Symfony 3.2 2017-05-22 08:16:45 +02:00
Remi Collet 95d82f6fde fix test for json-schema 5.2 2017-05-22 08:01:51 +02:00
Martin Hasoň 88ec172bd8 Fix CS 2017-05-19 15:14:47 +02:00
Martin Hasoň d1ba698291 Fix PHP 5.3 compatibility 2017-05-19 12:36:19 +02:00
Martin Hasoň 3c5bfcf1e9 Register github repository type 2017-05-19 11:40:42 +02:00
Jordi Boggiano a6627d55b7 Fix build 2017-05-16 23:50:15 +02:00
Jordi Boggiano ce56fc4ab6 Merge pull request #6381 from deeky666/pass-vsc-driver-options
Forward GitLab driver options to remote filesystem
2017-05-16 23:36:30 +02:00
Jordi Boggiano c917c52f81 Message tweak, refs #6341 2017-05-16 22:45:47 +02:00
AjiYakin 8858b27ced Warn identical names w/ different capitalization - extract zip archive
Warn about identical names with different capitalization on zip archive
extract failure (Not a directory)

Issue #5938
2017-05-16 22:43:04 +02:00
Steve Müller 1d29fa04b1 forward GitLab driver options to remote filesystem 2017-04-26 16:59:50 +02:00
Rob Bast e2eb8f2201
support for gitlab subgroups, closes #6349 2017-04-24 10:51:47 +02:00
Stephen 6c4800b8d2 Update corresponding test for plugin moving 2017-04-22 16:43:07 -04:00
Jordi Boggiano e3a23c0047 Merge branch '1.4' 2017-04-20 13:43:12 +02:00
Jordi Boggiano 75416c69b4 Merge pull request #6340 from derrabus/remove-control-chars-from-suggest
Remove ANSI control characters from suggested packages output
2017-04-19 17:49:46 +02:00
Alexander M. Turek 20050dd984 Remove console formatting as well. 2017-04-19 17:24:47 +02:00
Jordi Boggiano 3c1e7a67cf Merge branch '1.4' 2017-04-19 13:37:25 +02:00
Jordi Boggiano 9b3c9e0c26 Fix tests 2017-04-19 13:34:57 +02:00
Jordi Boggiano 123e8956c7 Merge pull request #6337 from theotonge/bugfix-5989
Fix for https://github.com/composer/composer/issues/5989
2017-04-19 13:34:43 +02:00
Alexander M. Turek 401ef69ae3 Remove ANSI control characters from suggested packages output. 2017-04-11 15:20:40 +02:00
Theo Tonge c077df0d80 Fix for https://github.com/composer/composer/issues/5989
Enforce yes/no answers for Confirmation Questions
2017-04-10 21:33:30 +01:00
Jordi Boggiano 2c03dab4c3 Merge branch '1.4' 2017-04-10 18:47:30 +02:00
Jordi Boggiano be201924cd Revert "Changes the query string parameter `sha` to `ref` to reflect the GitLab API"
Fixes #6344, refs #6198

This reverts commit 8a496cd2a7.
2017-04-10 18:46:38 +02:00
Nicole Cordes d834fcfac5 Change commitHash to match real life examples 2017-04-03 12:00:31 +01:00
Nicole Cordes c0f5a64e81 Use long array sysntax for PHP 5.3 compatibility 2017-03-31 17:09:04 +02:00
Nicole Cordes c2fe198ebc Re-add unit test for FETCH_HEAD parsing 2017-03-31 15:37:39 +02:00
Nicole Cordes 313e6b914d Fix Git branch parsing for detached HEAD on a commit
Current versions of Git output the commit hash as detached HEAD instead
of FETCH_HEAD. The VersionGuesser should be able to handle commit hashes
as well as FETCH_HEAD to detect the correct branch of a commit.
2017-03-31 15:02:50 +02:00
Jordi Boggiano 61511cfed6 Fix CS issues, refs #6159 2017-03-30 09:29:48 +02:00
Jordi Boggiano 0a337e7c75 Merge remote-tracking branch 'gza/fix_unzip_on_win_php56' 2017-03-30 09:15:26 +02:00
Jose Miguel Pérez Ruiz 4ba3c741f5 Fix Init Command to accept author names with Unicode combining diacritical marks 2017-03-17 21:58:57 +01:00
Jose Miguel Pérez Ruiz b2f62bc06c Fix Init Command to accept author names with Unicode combining diacritical marks 2017-03-16 01:43:54 +01:00
Guillaume ZITTA f89e01d622 switch first / fallback order 2017-03-14 23:43:48 +01:00
Jordi Boggiano 843877cd6d Fix hg version guessing, fixes #6236, fixes #6235 2017-03-08 17:12:13 +01:00
Filippo Tessarotto 04b1ddb79f VersionGuesser test for HG 2017-03-08 16:10:12 +01:00
Jordi Boggiano 122e422682 CS fixes 2017-03-08 15:16:44 +01:00
Jordi Boggiano ddef9923b0 Merge branch '1.3' 2017-03-08 10:33:46 +01:00
Sjoerd Adema 8a496cd2a7 Changes the query string parameter `sha` to `ref` to reflect the GitLab API
Updated the unit test to reflect the change
Fixes #6198
2017-03-08 10:27:58 +01:00
Jordi Boggiano f200343cf2 Fix gitlab driver issues not asking for auth when token is missing, and not falling back properly to git driver 2017-03-08 10:26:08 +01:00
Jordi Boggiano 44ea284ab9 Merge remote-tracking branch 'stefangr/implement_bitbucket_api_v2' 2017-03-07 14:43:16 +01:00
Jordi Boggiano c61a1c7523 Merge branch '1.3' 2017-03-07 10:02:15 +01:00
Jordi Boggiano 260b85882f Merge remote-tracking branch 'dzuelke/installmsgs' into 1.3 2017-03-07 10:01:02 +01:00
rubenrua 4e1887a721 Improve memory usage resolving dependencies
It is known that composer update takes a lot of memory: #5915, #5902,

I am playing with a profiler (@blackfireio) to make a demo in my local
PHP meetup (@phpvigo) and I found out a way to use less memory. These
are my first tests:

* Private project using PHP 5.6:
  * Memory: from 1.31GB to 1.07GB
  * Wall Time: from 2min 8s to 1min 33s

* symfony-demo using PHP 7.1 in my old mac book:
  * Memory: from 667MB to 523MB
  * Wall Time: from  5min 29s to 5min 28s

Not use an array inside conflict rules is this improvement main idea:

```php
<?php
//Memory 38MB
gc_collect_cycles();
gc_disable();

class Rule
{
    public $literals;

    public function __construct(array $literals)
    {
        $this->literals = $literals;
    }
}

$rules = array();

$i = 0;
while ($i<80000){ //
    $i++;

    $array = array(-$i, $i);
    $rule = new Rule($array);
    $rules[] = $rule;
}
```

```php
<?php
//Memory 11.1MB
gc_collect_cycles();
gc_disable();

class Rule2Literals
{
    public $literal1;
    public $literal2;

    public function __construct($literal1, $literal2)
    {
        $this->literal1 = $literal1;
        $this->literal2 = $literal2;
    }
}

$rules = array();

$i = 0;
while ($i<80000){ //
    $i++;

    $rule = new ConflictRule(-$i, $i);
    $rules[] = $rule;
}
```

More info https://github.com/composer/composer/pull/6168
2017-02-20 18:52:17 +00:00
Guillaume ZITTA abf06913a2 remove useless expect (already done by docstring) 2017-02-14 17:37:40 +01:00
Guillaume ZITTA 921ffe741f Cleaner fallback Algorithm 2017-02-13 15:54:55 +01:00
Jordi Boggiano 20c16f18f5 Merge branch '1.3' 2017-01-27 18:01:50 +01:00
Jordi Boggiano f3d0e4660d Fix urlencoding of gitlab dots, fixes #6064 2017-01-27 18:01:24 +01:00
David Zuelke 2d36324e99 streamline install progress messages 2017-01-24 20:51:37 +01:00
Stefan Grootscholten 5dbdefdd72 Implement ordering in requesting tags and branches.
Update unit test with latest changes.
2017-01-22 15:55:17 +01:00
Stefan Grootscholten 7ae4ed1ec8 Improve fetching single files via bitbucket API.
The former implementation used the 'src' endpoint which returned some meta data as well.
This has been replaced with the 'raw' endpoint which does not return the meta data and does not need an extra JSON decode step.
2017-01-22 14:35:37 +01:00
Stefan Grootscholten d25c483231 Implement Bitbucket API version 2.0 (where applicable). 2017-01-22 14:35:37 +01:00
Stefan Grootscholten 512750a20e Add more tests to cover the new functionality. 2017-01-22 14:35:37 +01:00
Stefan Grootscholten a4af559ca8 Store access-token for re-use
Store the Bitbucket access-token (and the expiration time) so it can be re-used within the time it is valid.
The Bitbucket::requestToken and Bitbucket::getToken now only return the access-token and not all other parameters it receives from the Bitbucket API.
2017-01-22 14:35:37 +01:00
jbixler dac51c7f4b Add ignore filters option to archive command 2017-01-11 16:21:44 -06:00
Christophe Coevoet 1cb0ec7911 Resolve references in ComposerSchemaTest 2017-01-03 11:57:35 +01:00
johnstevenson 2b8ad7dc2a Clear xdebug version if restart fails, fixes #5995 2016-12-27 18:46:21 +00:00
Jordi Boggiano 2782d37a15 Merge pull request #5992 from AnrDaemon/fix-git-skips-proper
Properly skip GitDownloaderTest if git is not available
2016-12-24 01:47:04 +01:00
AnrDaemon 1d2a949e3e Properly fix git excludes.
Mindless copy-paste never gets old. Sorry. This is fixed proper this time.
2016-12-24 03:19:50 +03:00
AnrDaemon 810e70d234 Fix __DIR__/getcwd() inconsistency. 2016-12-23 21:57:00 +03:00
Jordi Boggiano df5fd3ba09 Cache executable finder calls 2016-12-23 15:01:05 +01:00
AnrDaemon ab70601700 Skip git-related tests if no git found. 2016-12-22 20:14:57 +03:00
johnstevenson 3928f1f3be Set xdebug version in environment, fixes #5967 2016-12-15 21:20:41 +00:00
Jordi Boggiano a1b468ea50 Fix git shortening, it is sunday.. 2016-12-11 17:04:24 +01:00
Jordi Boggiano 98c5f825e0 Fix tests and regression in @ref script handling 2016-12-11 16:37:55 +01:00
Jordi Boggiano 4d77ffcb4a Merge branch 'simplify-output' 2016-12-11 16:24:01 +01:00
Jordi Boggiano 4d082f77b8 Simplify composer output to take less lines 2016-12-07 01:09:06 +01:00
Jordi Boggiano e54c7478ee Attempt at fixing support for git 2.11, refs #5942 2016-12-07 01:02:55 +01:00
Jordi Boggiano 1dcb2b5758 Merge remote-tracking branch 'nicolas-grekas/apcu' 2016-12-07 00:21:13 +01:00
Jordi Boggiano e9d04f2b2d Merge branch '1.2' 2016-12-06 17:04:39 +01:00
Hans-Joachim Michl 817b2747c7 Fix #5672
This fixes the issue reported in #5672.
It just makes sure the ZendGuard encoded files can be autoloaded correctly.
2016-12-06 17:02:27 +01:00
Dries Vints 2ab7df5566 Do not add newlines to output 2016-12-06 16:53:46 +01:00
Nicolas Grekas 6d4e60b991 Add --apcu-autoloader option to enable APCu caching of found/not-found classes 2016-12-06 11:21:44 +01:00
Jordi Boggiano f3f063e3e2 Merge pull request #5888 from alcohol/array-default
use array as default value
2016-12-01 14:24:41 +01:00
Rob Bast 873f17261c
try to fix test instead of guarding implementation 2016-12-01 14:03:20 +01:00
Jordi Boggiano 8a2f597db3 Fix tests 2016-11-30 23:56:43 +01:00
Jordi Boggiano 91e7372c6e Backport update packagist default repo to be packagist.org 2016-11-30 22:57:11 +01:00
johnstevenson c1058cf37c Fix XdebugHandler test 2016-11-21 11:52:56 +00:00
johnstevenson 379fb70ad9 Use random name for tmp ini and delete after use
Thanks to Patrick Rose for reporting this issue.
2016-11-20 10:59:05 +00:00
Jordi Boggiano 8ad6385ffb Merge remote-tracking branch 'fabpot/more-debug' 2016-11-06 18:18:52 +01:00
Jordi Boggiano 43903a3979 Merge branch '1.2' 2016-11-06 17:38:53 +01:00
Jordi Boggiano 98a599d6c3 Merge pull request #5843 from stof/enforce_map_types
Enhance the json schema with validation for map objects
2016-11-06 17:02:38 +01:00
Jordi Boggiano 9801d831ed Merge pull request #5852 from fabpot/io-fix
Remove usage of echo when executing Composer script
2016-11-06 16:49:08 +01:00
Jordi Boggiano d6499b7c4a Merge pull request #5748 from kassner/hgdriver-bitbucket
HgDriver does not identify bitbucket mercurial repos correctly
2016-11-06 12:36:13 +01:00
Fabien Potencier 103624d4ed Remove usage of echo when executing Composer script 2016-11-05 22:10:39 -07:00
Christophe Coevoet 1882f9a502 Enhance the json schema with validation for map objects 2016-11-03 13:19:20 +01:00
Jordi Boggiano 208086d8e3 Merge remote-tracking branch 'channelgrabber/GitSpeedIncrease' 2016-11-03 12:08:28 +01:00
Jordi Boggiano adee0ff132 Fix tests 2016-11-03 11:30:35 +01:00
Jordi Boggiano e38ebefc7e Update packagist default repo to be packagist.org 2016-11-03 11:00:40 +01:00
Fabien Potencier 57ec0d1815 added more information in the output 2016-10-29 11:37:23 -07:00
Richard Heelin c2f6c61f56 Updated the tests to match the new command that is executed 2016-10-21 15:49:27 +01:00
Jordi Boggiano d9328ed5ae Merge pull request #5753 from alcohol/use-rfc3339-in-arraydumper
bring arraydumper in line with json schema spec and packagist
2016-10-12 16:51:59 +02:00
Konstantin.Myakshin dc70b40d34 Use implode instead of join 2016-10-11 16:52:29 +03:00
Jordi Boggiano d1867d5859 Merge branch '1.2' 2016-10-10 18:21:22 +02:00
Jordi Boggiano 5ee22f25ba Rework JSON matching to use a properly recursive pattern, fixes #5771 2016-10-10 18:20:53 +02:00
Jordi Boggiano 092dec9596 Add failing test for #5771 2016-10-10 18:12:24 +02:00
Jordi Boggiano 183398fe5e Merge pull request #5717 from berlinger-rarents/fix/5584_anon_redirect_bitbucket
prevent (prompt for) bitbucket auth when it redirected
2016-10-10 14:11:24 +02:00
Jordi Boggiano c540dace8c Merge pull request #5765 from fabpot/remove-obsolete-code
removed obsolete code
2016-10-08 11:28:19 +02:00
Jordi Boggiano 4cd6eabdba Merge branch '1.2' 2016-10-08 11:27:52 +02:00
Fabien Potencier 2853e82400 removed obsolete code 2016-10-06 11:56:54 -07:00
Christophe Coevoet d5810c8a36 Fix namespace for tests for consistency 2016-10-05 10:45:22 +02:00
Rob Bast a45ae5f585
fix test 2016-10-04 13:23:25 +02:00
Rafael Kassner 34ec5fba58 Code review fixes 2016-10-03 13:35:48 +02:00
Rafael Kassner 44634a689d HgDriver does not identify bitbucket mercurial repos correctly 2016-10-03 13:17:07 +02:00
Yanick Witschi 4a769a785c Reduce calls on Rule::getHash() 2016-09-30 17:25:41 +02:00
Roel Arents d338a95174 use seldaek's bitbucket repo for unit tests instead of 3rd party 2016-09-29 17:29:09 +02:00
Jordi Boggiano 117e09ca48 Merge pull request #5728 from alcohol/pool-priority-matters
add a test that asserts pool priority matters
2016-09-29 08:01:00 +02:00
berlinger-rarents 8845ea467a try bitbucket downloads first time without auth
also add tests for #5584
2016-09-28 19:08:24 +02:00
Rob Bast 9cbcda9ae6
add test that asserts pool priority matters
also switch assertEquals for assertSame
2016-09-28 09:34:08 +02:00
Rob Bast 9f2bd34c87
test copied from #5724 2016-09-27 17:39:44 +02:00
Rob Bast b4fd19aae4
add test exposing the problem 2016-09-27 14:45:19 +02:00
Jordi Boggiano 048a801fce Merge pull request #5698 from johnstevenson/restart2
Simplify XDebugHandler restart process
2016-09-23 16:35:12 +02:00
johnstevenson e9a97004c5 Simplify XdebugHandler restart process 2016-09-23 13:50:54 +01:00
Rob Bast 4213fbc8c6
does not apply for hhvm 2016-09-23 13:27:15 +02:00
Rob Bast 181b172e77
test cases for #5701 2016-09-23 12:22:45 +02:00
Rob Bast 1cf4ecd648 remove env variable after test assertion 2016-09-21 11:48:32 +02:00
Fabien Potencier e83f7c2929 Fix process timeout when set to 0 2016-09-21 11:48:10 +02:00
Rob Bast 2ef9cde060
remove env variable after test assertion 2016-09-21 11:34:28 +02:00
Fabien Potencier 2c77fd6801 Fix process timeout when set to 0 2016-09-20 18:25:05 -07:00
Jordi Boggiano 68861c48ed Merge branch '1.2' 2016-09-17 13:27:39 +02:00
SpacePossum 2ae0800cd3 Remove useless concat. 2016-09-16 14:50:34 +02:00
Jordi Boggiano 20ee689bb4 Upgrade json-schema to allow v3 and upgrade other deps 2016-09-14 18:06:37 +02:00
Jordi Boggiano 2ffa1148a9 Merge branch '1.2' 2016-09-12 19:06:26 +02:00
Den Girnyk 41eb297248 Add tests 2016-09-12 17:20:58 +02:00
Jordi Boggiano 285c4a1ac6 Merge branch '1.2' 2016-09-12 16:56:32 +02:00
Jordi Boggiano ff7daf0bd4 Fix handling of paths on windows when cwd is root of drive, fixes #5554 2016-09-12 16:56:04 +02:00
Jordi Boggiano f0f932fca4 Fix classmap test on windows 2016-09-10 12:52:23 +02:00
Jordi Boggiano f63f1ff95f Merge remote-tracking branch 'davidolrik/master' 2016-09-10 12:32:00 +02:00
Jordi Boggiano 70ccac6ba2 Merge pull request #5532 from zomberg/class_map_generator_test
Added test for 'dump' method of ClassMapGenerator class
2016-09-10 12:28:36 +02:00
Jordi Boggiano 994211523c Merge remote-tracking branch 'johnstevenson/restart' 2016-09-10 12:09:29 +02:00
Jordi Boggiano 6ec8b2bfd6 Update locker tests 2016-09-10 11:41:07 +02:00
Jordi Boggiano 788f32ac93 Allow running test suite with osx tar, fixes #5662 2016-09-10 11:38:52 +02:00
johnstevenson 0256f62b3b Fix and rationalize tests 2016-09-06 20:17:18 +01:00
johnstevenson 589b1d6fa2 Fix hhvm not running tests in a separate process 2016-09-06 16:35:56 +01:00
johnstevenson 896d1d71f8 Use ConsoleOutput to determine color support 2016-09-06 14:57:18 +01:00
johnstevenson e381abeec0 Simplify argv handling 2016-09-03 19:00:41 +01:00
Jordi Boggiano 3e010fc332 Merge pull request #5591 from ianlet/master
Use https url of the repository instead of ssh given gitlab project is public
2016-09-02 19:03:55 +02:00
Matthew "Juniper" Barlett ac41bb0615 Fix for issue #5631
- Add " ( and ) as valid characters in author name
- Add relavent unit tests
2016-09-02 18:59:10 +02:00
Jordi Boggiano edddae42db Revert default change from #5603 2016-08-30 15:20:20 +02:00
John Whitley 4479b8a690 Squashed commit of the following:
commit 3994b556dcffcde7b1801c8bc712f3127e8f8e7c
Author: John Whitley <john.whitley@berea.eu>
Date:   Tue Aug 16 09:02:53 2016 +0100

    https://github.com/composer/composer/issues/5600

    This alters the default flag for loadOptions in
    \Composer\Package\Loader\ArrayLoader to true; and alters the assumption
    of the test to reflect this change.

    **Rationale**

    The `\Composer\Package\Loader\ArrayLoader` test (defined in
    tests/Composer/Test/Package/Loader/ArrayLoaderTest.php) assumed that a
    new `\Composer\Package\Loader\ArrayLoader` instance would be always
    created with the optional flag loadOptions set to true.

    ```php
    $this->loader = new \Composer\Package\Loader\ArrayLoader(null, true);
    ```

    This change alters the general case to reflect the default assumption as
    defined in the test.

commit b75fc4ad7238bc50f724bd29446ccbc33e82c34c
Author: John Whitley <john.whitley@berea.eu>
Date:   Mon Aug 15 16:55:27 2016 +0100

    Altered the test for ArrayLoader to use the default loadConfig flag, and to test the true and false states for the loadConfig flag
2016-08-30 15:20:15 +02:00
David Jack Wange Olrik 2c84be47c2 Add support for seamless execution of local binaries
Projects that add binaries to `vendor-bin` can now execute those via the same command as projects that consume them without installing them first.

In list overview local commands have a `(local)` tag to distinguish them from commands installed in `vendor-bin`.

Local binaries take precedence over `vendor-bin` which takes precedence over binaries in path.
2016-08-21 16:57:19 +02:00
Jad Bitar 8625efd551 Fix support for testing exit code
The `$sectionData` was being overwritten, causing its assertion 
(`$this->assertSame()`) to fail.
2016-08-15 00:30:20 -04:00
ianlet 5874132857 return https url of the repository given gitlab project is public 2016-08-11 23:00:18 -04:00
johnstevenson 586eb3bb41 Restart with xdebug disabled 2016-08-08 18:30:56 +01:00
Vyacheslav Pavlov 108560b9c4 Clean up temp files after a test. 2016-07-21 16:37:26 +03:00
Vyacheslav Pavlov 03995d6caa Added test for 'dump' method of ClassMapGenerator class 2016-07-20 23:33:37 +03:00
Jordi Boggiano 066550054b Fix tests 2016-07-12 17:12:50 +01:00
Jordi Boggiano 334d0cce6b Make sure we do not clone from local mirror if mirroring failed 2016-07-02 23:52:10 +01:00
Jordi Boggiano 8ffe224c0d Merge remote-tracking branch 'stefangr/fix_minor_bitbucket_oauth_issues' 2016-07-02 17:43:07 +01:00
Jordi Boggiano 4998ee27b3 Re-use mirror code from the git driver, refs #5384 2016-07-02 17:20:51 +01:00
Jordi Boggiano 55e90093a4 Merge remote-tracking branch 'marvil07/faster-git-clones-using-cache' 2016-07-02 16:43:19 +01:00
Jordi Boggiano 59596ff012 Make sure we do not overwrite binaries but only re-create missing ones, refs #5127 2016-07-02 16:35:09 +01:00
Jordi Boggiano 88d5b74c74 Merge remote-tracking branch 'j0k3r/re-install-binaries' 2016-07-02 16:15:33 +01:00
Stefan Grootscholten 9b00713a67 Update unit test for Bitbucket util 2016-07-02 17:03:01 +02:00
bohwaz be013e5572 Fossil VCS tests 2016-06-25 13:09:49 +12:00
Jordi Boggiano 894b53c115 Merge pull request #5454 from pierredup/type-search
Added type option to search
2016-06-21 17:03:13 +02:00
Pierre du Plessis 6a557e45b8 Added --type option to search 2016-06-21 16:38:52 +02:00
Jordi Boggiano 39c2c8c30a Add test for password escaping 2016-06-21 11:01:09 +01:00
Marco Villegas 869b3ef954 New test to check git download behavior with cache. 2016-06-18 19:39:09 -05:00
Marco Villegas cb6cfa9635 Isolate config setup to make it reusable at GitDownloaderTest. 2016-06-18 19:39:09 -05:00
Stefan Grootscholten 78fcb5a366 Add support section to composer data for bitbucket repositories. 2016-06-17 17:35:43 +02:00
Stefan Grootscholten ccfd9018b8 Add unit tests for the GitBitbucketDriver class. 2016-06-11 17:33:58 +02:00
Stefan Grootscholten 2d52531365 Add unit tests for the Bitbucket class. 2016-06-11 17:33:58 +02:00
Jordi Boggiano 73d9a4717d Update list of ciphers /cc @cs278 2016-06-11 11:19:58 +01:00
Michele Locati 097003b5bb
Add test case for strict types declaration 2016-06-01 10:00:37 +02:00
Marco Villegas b5c55d5167 Adjust GitDownloaderTest to include for the new getVersion() method in Git. 2016-05-30 11:58:25 -05:00
Luis Faceira 1d733ba21a GitDownloaderTest uses temp dir as composer home config
When creating a DownloaderMock a home config dir is
ensured to exist, so that no test fails for lack of it
that on a regular run would be set by the Factory
2016-05-29 12:36:19 -05:00
Jordi Boggiano 57ae6d97b6 Merge branch '1.1' 2016-05-17 12:06:36 +01:00
ReenExe 53fc30fe56 clear code 2016-05-17 13:34:54 +03:00
Andreas Möller a3b49ae44f
Enhancement: Assert that no warning is issued when using exact version constraint for unstable package 2016-05-17 09:25:04 +02:00
Tomáš Markacz c30dd16e32 add missing validation for rss chanel section in composer schema 2016-05-16 23:24:00 +02:00
Lucas CHERIFI 7e34d9ab97 Typo fix ;-) 2016-05-10 21:45:39 +02:00
Jordi Boggiano 13f4d2afd3 Fix #refs handling, fixes #5291 2016-05-10 17:19:09 +01:00
Jordi Boggiano 72362a085a Fix #refs handling, fixes #5291 2016-05-10 17:17:08 +01:00
Jordi Boggiano ed0a5ff2a6 Merge branch '1.1' 2016-05-08 17:36:17 +01:00
Hiraku NAKANO 8501bb71e2 Drop dependency on http://www.example.com 2016-05-08 17:36:10 +01:00
Jordi Boggiano 1aa31caec5 Clean up ApplicationTest 2016-05-06 00:33:19 +01:00
Jordi Boggiano cc793eff6f Clean up ApplicationTest 2016-05-06 00:28:45 +01:00
Jordi Boggiano b8974a3e13 Merge branch '1.1' 2016-05-05 14:10:14 +01:00
Jordi Boggiano 591cbcee12 Avoiding defining plugin commands using the local project plugins, refs #5277 2016-05-05 14:10:06 +01:00
Bilal Amarni 92207da83a add isProxyCommand() to BaseCommand 2016-05-05 13:56:44 +01:00
Jordi Boggiano d5ed45c3c7 Fix test 2016-05-05 13:37:01 +01:00
Jordi Boggiano 6146f7aded Take into account prefer-stable and dev packages when computing outdated, refs #5251 2016-04-28 22:38:38 +01:00
Jordi Boggiano b9bd021516 Fix test suite on <7 2016-04-28 21:19:26 +01:00
Jordi Boggiano ba909d8795 Avoid duplicate commands, and pass plugin to ctor args for capabilities, refs #3377 2016-04-28 21:12:26 +01:00
Jordi Boggiano 090295dbcb Adjust the CommandProvider to use plugin capabilities and test actual command creation, refs #3377 2016-04-28 20:37:54 +01:00
Jordi Boggiano a9df4acd7d Merge remote-tracking branch 'jderusse/plugin-with-commands' 2016-04-28 20:11:33 +01:00
Jordi Boggiano 135783299a Add support for editing top level properties and extra values, replaces #2415, fixes #1411, fixes #2384 2016-04-27 14:04:01 +01:00
Jordi Boggiano 5c9c910240 Target error capture more specifically 2016-04-24 15:55:55 +01:00
Jordi Boggiano e6c6d25b59 Fix tests 2016-04-24 15:55:03 +01:00
Jordi Boggiano 05fab170a7 Merge branch '1.0' 2016-04-24 14:41:02 +01:00
Jordi Boggiano f0d67923a5 Fix classmap generator over anonymous classes extending/implementing something, fixes #5239 2016-04-24 14:40:51 +01:00
Jordi Boggiano ac75680b1e Make sure the abandoned state is copied over even if the packages are installed already 2016-04-22 23:41:15 +01:00
Jordi Boggiano 8771119374 Merge branch '1.0' 2016-04-22 23:00:13 +01:00
Jordi Boggiano 6ce8477d04 Fix parsing of stabilities with AND/OR ops and no stability flags 2016-04-22 22:59:55 +01:00
Jordi Boggiano d8c94c2640 Merge remote-tracking branch 'curry684/home-expansion' 2016-04-22 20:37:05 +01:00
Jordi Boggiano 95e0347917 Merge branch '1.0' 2016-04-21 12:40:42 +01:00
Daniel Iancu 3bdb0ee5fd Fix addMainKey method of JsonManipulator with content having $n
This will store correctly passwords having a dolloar sign followed by a digit in the auth.json file.
If the content variable has "$n" (where n consists of digits) it will match as a replacement reference for preg_replace and thus it will get stripped because there's no such parenthesized pattern.
2016-04-20 22:34:39 +03:00
Jordi Boggiano 4de17cef6b Always resolve dev packages even when doing an update with --no-dev, fixes #5016 2016-04-20 12:34:04 +01:00
Jordi Boggiano 11daebcb3a Merge pull request #5210 from Seldaek/fix_partial_updates_from_dirty_state
Fix partial updates from a dirty state and apply exactly the locked state
2016-04-19 20:07:52 +01:00
Jordi Boggiano 47ea9d8ddc Merge branch '1.0' 2016-04-19 20:04:19 +01:00
Jordi Boggiano c7c8335b8b Fix updating of dev refs if they are not whitelisted 2016-04-19 20:03:14 +01:00