1
0
Fork 0
Commit Graph

2191 Commits (9a04ecefbf84a776d9897fe6efdf9142dd56c80f)

Author SHA1 Message Date
Jordi Boggiano f2befc46c9
Avoid storing duplicate packages when loading the same package twice 2020-06-05 17:13:39 +02:00
Jordi Boggiano 67a88880ec
Get rid of EmptyConstraint 2020-06-05 16:52:24 +02:00
Yanick Witschi c7f10bdd90
Fixed RuleTest 2020-06-05 16:52:24 +02:00
Yanick Witschi bde9502473
Made the constraint argument in Link mandatory 2020-06-05 16:52:24 +02:00
Yanick Witschi 63906171f0
Cleanup EmptyConstraint output 2020-06-05 16:52:24 +02:00
Yanick Witschi b935a76bc6
Removed already covered test 2020-06-05 16:52:24 +02:00
Yanick Witschi 8b4e834675
Added another poolbuilder test to show issue with constraint matching 2020-06-05 16:52:24 +02:00
Yanick Witschi 71fde80048
Fixed test 2020-06-05 16:52:24 +02:00
Yanick Witschi 29611a4d27
Fixed test descriptions 2020-06-05 16:52:24 +02:00
Yanick Witschi 8e2dd62d10
Fixed tests related to constraint changes 2020-06-05 16:52:24 +02:00
Yanick Witschi bca88bdd4b
Fixed PoolBuilder running endlessly when packages do not exist 2020-06-05 16:52:24 +02:00
Yanick Witschi 28f82032cd
And here's the key test :) 2020-06-05 16:52:24 +02:00
Yanick Witschi b87fc5bbfd
Added more poolbuilder test 2020-06-05 16:52:24 +02:00
Nils Adermann 43888cae8c
PoolBuilder: failing test for partial update with multiple deps 2020-06-05 16:52:24 +02:00
Nils Adermann 4f13875f3f
PoolBuilderTest: add new fixtures for partial updates with locked packages 2020-06-05 16:52:24 +02:00
Nils Adermann 85ea29d241
PoolBuilder failing test: do not load alternatives for pkg replaced by fixed pkg 2020-06-05 16:52:24 +02:00
Nils Adermann 208a735645
PoolBuilder Failing test: fixed package is not only pkg loaded for that name 2020-06-05 16:52:24 +02:00
Jordi Boggiano a4a617abb4
Reduce amount of Filesystem/ProcessExecutor instantiations, add lots of docblocks 2020-06-04 16:08:23 +02:00
Jordi Boggiano a66a939b76
Merge pull request #8937 from Seldaek/optim-rules
Optimize rule creation for alias packages
2020-06-03 14:17:13 +02:00
Jordi Boggiano fafa959933
Add test to assert prefer-lowest behavior when conflicting branches prevent absolute lowest version from being installed, closes #7408 2020-06-03 08:34:25 +02:00
Jordi Boggiano 5a4709c3d6
Optimize rule creation for alias packages
This mainly benefits projects running updates with minimum-stability: dev
2020-06-02 13:44:56 +02:00
Jordi Boggiano 1ea3111583
Use RULE_LEARNED instead of RULE_FIXED 2020-06-02 13:21:05 +02:00
Jordi Boggiano 5e5f9f8142
Remove unused RULE_INTERNAL_ALLOW_UPDATE 2020-06-02 11:22:35 +02:00
Jordi Boggiano c8efb50d39
Change the single requirement ignore from --ignore-platform-reqs=xx to --ignore-platform-req=xx to avoid BC issues 2020-06-02 11:22:09 +02:00
Jordi Boggiano 2ddf4346ef
Improve error reporting for RULE_PACKAGE_ALIAS 2020-06-02 10:35:04 +02:00
Jordi Boggiano 0ea9eafcaf
Add rules for aliased packages when an alias is added, fixes #8902 2020-06-02 10:07:20 +02:00
Jordi Boggiano dfccf8c091
Add failing test reproducing the problem of #8902 2020-06-02 10:00:09 +02:00
Jordi Boggiano 537402f814
Add tests for #8861 2020-06-01 16:01:43 +02:00
Jordi Boggiano e85da00dff
Add a way to ignore only some packages in --ignore-platform-reqs, and make the platform check ignore those packages which were ignored as requirements, fixes #8861 2020-06-01 15:43:24 +02:00
Jordi Boggiano 21e708f2c4
Remove upper bound PHP version checks from platform-check as there is not enough value added and it risks causing issues 2020-06-01 09:39:44 +02:00
Jordi Boggiano b72ac2d01a
Oops 2020-05-26 19:55:40 +02:00
Jordi Boggiano 863e7076ba
Bump to use composer/semver 3.x 2020-05-26 19:18:34 +02:00
Jordi Boggiano d72a07db06
Fix tests 2020-05-22 13:28:47 +02:00
Jordi Boggiano 4e1f8cf89d
Build tweaks 2020-05-20 16:20:54 +02:00
Jordi Boggiano 45d3e133a4
Avoid checking for unbounded constraints in platform checks 2020-05-19 17:15:08 +02:00
Jordi Boggiano 98e5f81a5f
Fix detection of fixed package problems to include more cases, fixes #8910 2020-05-19 12:17:25 +02:00
Jordi Boggiano 22622372bc
Fix complete test suite for v2 2020-05-06 13:23:52 +02:00
Jordi Boggiano f73c8c419c
Merge pull request #8869 from naderman/replace-semver-test
Adding a test to verify replace version overlap with unbound constraints and single versions
2020-05-06 10:53:45 +02:00
Jordi Boggiano dd0c8b4278
Merge pull request #8723 from helhum/fix-package-sorting
Fix package sorting
2020-05-06 10:47:01 +02:00
Nils Adermann ff0717ad66
Merge pull request #8859 from Seldaek/deduplicate-problems
Deduplicate require/conflict rules which are the same but for different versions of the same package
2020-05-05 16:19:07 +02:00
Jordi Boggiano 419567ba6d
Update VersionSelector to take all platform requirements into account when selecting packages 2020-05-04 21:16:41 +02:00
Nils Adermann d15447c454 Add test for replace version overlap 2020-05-04 11:24:11 +02:00
Michael Chekin c23670c3ec
Add Util\AuthHelper unit test coverage (#8863)
* Add AuthHelper::addAuthenticationHeader() test on missing authentication credentials.

* Add AuthHelper::addAuthenticationHeader() test on bearer password.

* Add AuthHelper::addAuthenticationHeader() test on Github token.

* Add AuthHelper::addAuthenticationHeader() test on Gitlab Oauth token.

* Add $authenticationDisplayMessage write expectation to AuthHelper::addAuthenticationHeader() tests.

* Add AuthHelper::addAuthenticationHeader() test on Gitlab private token.

* Add AuthHelper::addAuthenticationHeader() test on Bitbucket Oauth token.

* Add AuthHelper::addAuthenticationHeader() test on Bitbucket public urls.

* Add AuthHelper::addAuthenticationHeader() test on Basic Http Authentication.

* Add AuthHelper::isPublicBitBucketDownload() tests.

* Rename AuthHelperTest $credentials variable to $auth.

* Add AuthHelper::storeAuth() test for auto-store option.

* Add AuthHelper::storeAuth() test for user prompt and y(es) answer.

* Add AuthHelper::storeAuth() test for user prompt and n(o) answer.

* Add AuthHelper::storeAuth() test for user prompt with invalid answer.

* Add AuthHelper::promptAuthIfNeeded() test for Github authentication failure.

- add GitHub hard dependency mock (new GitHub(...) mock)

* Run AuthHelper::promptAuthIfNeeded() tests only with PHP > 5.3

* Run AuthHelper::promptAuthIfNeeded() tests only with PHP >= 5.4

* Run AuthHelper::promptAuthIfNeeded() tests only with PHP 5.4

* Exclude PHPStan analyses of '../tests/Composer/Test/Util/Mocks/*'

* Exclude AuthHelper::promptAuthIfNeeded() tests from current pull request.

* Extract repetitive AuthHelperTest authentication expectation into a method.
2020-05-04 09:48:23 +02:00
Helmut Hummel 7c891701e6 Fix package sorting
PackageSorter weighs the importance of a package
by counting how many times it is required by other packages.
This works by calculating the weight for each package name.

However currently the package index of the package array
is currently passed the weigh function, which basically
disables package sorting.

The reason for that is, that a package repository previously
returned the package list as associative array with  package name as keys,
but currently just as an array with integer keys.

Therefore we must extract the package name from the package
before passing it to the weigh function.
2020-05-03 16:31:47 +02:00
Jordi Boggiano 3a64acb53e
Make sure versions are ordered also in the satisfied by package lists 2020-05-01 15:54:01 +02:00
Jordi Boggiano 56a11b9c2c
Deduplicate require/conflict rules which are the same but for different versions of the same package, fixes #8851 2020-05-01 15:41:54 +02:00
Jordi Boggiano 74a63b4d6b
Merge branch '1.10' 2020-04-30 21:31:29 +02:00
Alessandro Lai 270c7c3262
Backport validation support for composer-runtime-api (#8842)
Fixes #8841
2020-04-28 16:04:00 +02:00
Michael Chekin b9be78b689
Additional Util\Bitbucket class test coverage (#8835) 2020-04-28 11:45:30 +02:00
Jordi Boggiano 6a6ea6057f
Handle provider/replacer packages and avoid checking extensions which are provided by packages, refs #8546 2020-04-24 13:38:50 +02:00
Jordi Boggiano d494df61ff
Make sure platform-check returns a non-0 exit code if it fails 2020-04-24 13:25:13 +02:00
Jordi Boggiano d89342dc43
Fix tests 2020-04-24 09:07:32 +02:00
Jordi Boggiano df0cada93f
Add test for #8669 2020-04-23 15:11:21 +02:00
Jordi Boggiano 34801239f1
Tweak problem wording slightly 2020-04-23 13:17:34 +02:00
Jordi Boggiano 8a1e9744a0
Fix tests 2020-04-23 10:29:22 +02:00
Jordi Boggiano 7049bbb714
Switch require_once to require for autoload_static as the once variant seems unnecessary 2020-04-22 17:05:37 +02:00
Jordi Boggiano 1000d49145
Fix error reporting when the root version changed since the last update, and does not match circular deps in lock file anymore 2020-04-22 14:02:09 +02:00
Jordi Boggiano 0d1922dc27
Add a Composer\Versions class which is available in all projects at runtime to query installed packages/versions 2020-04-22 12:10:09 +02:00
Jordi Boggiano bf39fab82d
Add test for root alias presence in lock 2020-04-21 23:01:20 +02:00
Jordi Boggiano 2c8a4a1b93
Add platform-check config option to disable platform_check.php generation, and disable it for Composer 2020-04-21 15:25:35 +02:00
Jordi Boggiano afa18f2092
Fix semver usage 2020-04-21 15:13:01 +02:00
Jordi Boggiano c9846d4d3c
Merge pull request #8812 from nicolas-grekas/ext-check
Optimize extension checks
2020-04-21 11:45:26 +02:00
Nils Adermann 75f4116417
Merge pull request #8811 from Seldaek/fix-transaction-order
Fix transaction order
2020-04-21 11:38:59 +02:00
Nicolas Grekas 6463ab9e49 Optimize extension checks 2020-04-21 09:35:34 +02:00
Yanick Witschi e23710f92d
Implemented php version check in autoload.php (#8546) 2020-04-21 08:59:36 +02:00
Jordi Boggiano ba9d4793bc
Fix transaction order 2020-04-20 22:24:00 +02:00
Jordi Boggiano 17ed09be2e
Add failing test showing that packages fail to be installed if they match a previous alias which was not removed yet 2020-04-20 21:50:06 +02:00
Jordi Boggiano 82502684b2
Allow testing for installed repo state 2020-04-20 21:44:15 +02:00
Jordi Boggiano 3f338ee8d9
Make sure versions are sorted before they get trimmed in error output 2020-04-19 15:51:30 +02:00
Jordi Boggiano 80a7c40c76
Shorten long lists of similar versions in problem output, fixes #8743 2020-04-15 16:47:44 +02:00
Carsten Brandt 3e8021ed06
Add package naming pattern to the composer.json JSON schema
fixes #8749
2020-04-15 13:43:05 +02:00
Jordi Boggiano 44a4429978
Remove PEAR installer/downloader/repos/..., fixes #8778 2020-04-15 00:24:13 +02:00
Jordi Boggiano 876136022b
Merge remote-tracking branch 'origin/1.10' 2020-04-13 12:41:30 +02:00
Jordi Boggiano 62fda2ed85
Reorg ComposerRepository to fix tests 2020-04-13 12:10:31 +02:00
Ayesh Karunaratne 280f02b4bc
Update HTTP URLs to their HTTPS if they already redirect automatically 2020-04-13 06:22:02 +07:00
Carsten Brandt 960fa4b205
Allow duplicate dashes in package names
fixes #8749
1.10 implementation of #8750
2020-04-10 19:01:06 +02:00
Jordi Boggiano b6bad4eef6
Add options to configure repository priorities 2020-04-09 13:39:06 +02:00
Jordi Boggiano 8930f1b824
Add color to lock operations and dry run output 2020-04-08 15:18:28 +02:00
Jordi Boggiano 64f907f93f
Fix handling of aliases to use consistent format everywhere 2020-04-08 12:31:02 +02:00
Markus Staab c30925e68d
extracted `VersionParser::DEV_MASTER_ALIAS` (#8742) 2020-04-07 15:49:07 +02:00
Jordi Boggiano 80505e745e
Fix phpstan issues 2020-04-07 14:40:51 +02:00
Adam Žurek 25cd2382cb
Raise phpstan level to 1 (#8027) 2020-04-07 14:13:50 +02:00
Jordi Boggiano e09dd9c10d
Detect packages which are only available in lock file and warn appropriately 2020-04-07 13:06:04 +02:00
Jordi Boggiano 8945936dbd
Deduplicate solver problems which list problems for dev-master AND 9999999-dev 2020-04-07 13:06:03 +02:00
Nils Adermann f38e969b02 Update test expected output to different formatting 2020-04-07 11:16:13 +02:00
Nils Adermann 80a5fdf398 Remove obsolete rules and their generation
The only automatic conflict we have results from packages using the same name
either by literally having the same name and being different versions or they
replace the same name, so

- removed all types of obsolete rules
- simplified rule generation significantly
- got rid of provide filtering in the pool
- fixed some language in error handling
2020-04-07 11:11:18 +02:00
Nils Adermann 4e3d989978 A package providing a name should not conflict with a package replacing it
Simplified whatProvides, mustMatchName is unused, removed unused
function from policy
2020-04-07 11:08:47 +02:00
Nils Adermann 8072ec9b7c Number 2: Adjust forgotten error message in test to new language 2020-04-02 16:31:30 +02:00
Nils Adermann ce0c2d44cd Adjust forgotten error message in test to new language 2020-04-02 16:20:54 +02:00
Nils Adermann 4fab2c7759 Error wording use "thus cannot" instead of "can thus not" 2020-04-02 16:02:17 +02:00
Nils Adermann 88e3f24b91
Fix description of test case 2020-04-02 15:42:42 +02:00
Nils Adermann 9858718ef6 Give a clearer error message explaining how to update a conflicting locked dependency 2020-04-02 15:32:02 +02:00
Jordi Boggiano 379baa1560
Merge pull request #8717 from naderman/t/pool-builder-allow-list
Move processing of partial update argument list into the pool builder
2020-04-02 12:53:02 +02:00
Nils Adermann f7b5cbd1fc Lock file should not contain new aliases for packages which were not updated 2020-04-02 01:12:34 +02:00
Nils Adermann 5ad93959cf PoolBuilder: On partial update of a new dep with mutual replace, unfix replacer
Test also verifies provider does not get uninstalled in partial update
for another package name
2020-04-02 00:54:49 +02:00
Nils Adermann 613450e58a PoolBuilder: properly clean up alias packages when unfixing packages
Prevent aliases to be duplicated: no need to apply root aliases from
composer.json on packages currently locked, they should have their
aliases in the lock file, otherwise request an update.
2020-04-02 00:08:53 +02:00
Nils Adermann 14000e7575 PoolBuilder: Ensure alias references get removed when unfixing a locked package
Use the last key + 1 for an index instead of count, since we unset elements somtimes
2020-04-01 16:40:45 +02:00
Nils Adermann c270d3cfa6 PoolBuilder: make io non-nullable, NullIO can be used instead 2020-04-01 15:27:51 +02:00
Nils Adermann 9fb09049ff Rename and document constants for partial update behavior 2020-03-30 16:21:27 +02:00
Jordi Boggiano 1b1d59ee6c
Make FileDownloader always download file first in vendor-dir/composer/$tmp instead of next to install path to avoid issues with custom installers not being loaded when downloading on first install, and use cleanup method properly 2020-03-28 20:38:50 +01:00