1
0
Fork 0
Commit Graph

2241 Commits (290450214e203c509304d39d2ffc6d776c7f1154)

Author SHA1 Message Date
Nils Adermann 290450214e Test: Verify require for package provided by pkg itself is used 2020-10-22 10:26:28 +02:00
Jordi Boggiano b74afd772b
Merge pull request #9309 from naderman/fix-solver-9290
MultiConflictRule conflict analysis handling on level 1 decisions
2020-10-21 18:40:03 +02:00
Nils Adermann 7b4cb9c370 Solver: Prevent infinite recursion in analyzeUnsolvableRule
In complex scenarios reasons for learned rules can themselves be learned
rules caused by other learned rules which had the some of the same
reasons. In this situation iterating over all problem rules requires
keeping track of which rules have previously been analyzed to avoid and
endless loop.

Side effect is that the sorting of problems including learned rules
changes slightly.
2020-10-21 17:11:13 +02:00
Nils Adermann 9641ad6025 SolverProblemException: Hide learnt rules on output
Results in too much error output which is not helpful. Very repetitive
and hard to understand. In issue 8903 even leads to endless recursion
bug.
2020-10-21 14:08:12 +02:00
Nils Adermann 853305063d Add test case for github issue 9290 2020-10-21 13:33:39 +02:00
Jordi Boggiano 99a5469b5e
More hints 2020-10-18 13:13:44 +02:00
Jordi Boggiano 4d005a9786
Merge pull request #9296 from mcaskill/bugfix/file-downloader-cache-keys
Fix availability of $urls in FileDownloader
2020-10-16 11:24:03 +02:00
Jordi Boggiano c01e3bd2f0
Make async test more robust 2020-10-16 11:23:03 +02:00
Chauncey McAskill fcc072fdb6 Add test to check processed URL and cache key 2020-10-15 23:46:12 -04:00
Nils Adermann fdde9e5933 On composer install we fix locked packages, but consider them locked for error reporting 2020-10-14 11:46:13 +02:00
Nils Adermann 74fb313c39 Separate locked packages from fixed packages in request
Locked packages are basically like removable fixed packages, so we still
only load one version, but we do not require their installation unless
something the user needs requires their use. So they automatically get
removed if they are no longer needed on any update.
2020-10-14 11:46:13 +02:00
Nils Adermann 73e24ea9fb Partial updates should remove all unused dependencies
Instead of marking locked packages as fixed, we change the pool builder
to load only the locked version and treat it like a fixed package, but
removing the actual request fix, makes the solver treat it as a regular
optional dependency. As a consequence locked packages may be removed on
a partial update of another package, but they cannot be updated.
2020-10-14 11:46:13 +02:00
Nils Adermann 85eb007f4f Transaction: Define a total order on packages to keep behavior on PHP8
So far the ordering of alias packages with the same name was undefined
so the actual order was determined by implementation of the sorting
algorithm in PHP. As of PHP8 sort is stable by default which changes the
outcome in some of our test cases.

With the fully defined total order the order can longer change depending
on sorting algorithm used and remains the same across PHP versions.
2020-10-14 11:13:51 +02:00
Jordi Boggiano 7ea6d5d2e7
Merge branch '1.10' 2020-10-13 16:00:04 +02:00
Nicolas Grekas 4feed8b85c Fix parsing "branch-version" 2020-10-13 15:43:12 +02:00
Jordi Boggiano d702fa0e1a
Add test to ensure root requirements do not get expanded by the pool builder 2020-10-13 15:14:20 +02:00
Jordi Boggiano 528030716e
Fix tests 2020-10-13 15:01:22 +02:00
Jordi Boggiano bafdf9f705
Merge branch '1.10' 2020-10-13 14:47:23 +02:00
Nicolas Grekas 893fbfcb89 Add support for "extra.branch-version" 2020-10-13 13:56:18 +02:00
Jordi Boggiano 24abd233ec
Merge branch 'master' into code-improvements 2020-10-13 12:23:13 +02:00
Jordi Boggiano 0775e261c5
Merge remote-tracking branch 'lstrojny/apcu-prefix' 2020-10-13 10:19:30 +02:00
Jordi Boggiano 09ef026d43
Remove OperationInterface::getReason, closes #9230, closes #9263 2020-10-12 12:31:54 +02:00
Jordi Boggiano 03b8c3db3f
Merge branch '1.10' 2020-10-08 14:38:41 +02:00
Jordi Boggiano 6698e0bafa
Merge remote-tracking branch 'naderman/version-guess-remotes' into 1.10 2020-10-08 14:01:25 +02:00
Nicolas Grekas f9913205dd Fix VcsRepositoryTest 2020-10-08 11:06:39 +02:00
Nils Adermann 89afb823b6 VersionGuesser: Add test for remote version guess 2020-10-07 15:21:04 +02:00
Nils Adermann 92722a9a4c VersionGuesser: Fix root package loader test which relies on git cmd in guesser 2020-10-07 15:11:08 +02:00
Nils Adermann db2f09a361 VersionGuesser: Update tests to match new git command generated 2020-10-07 14:25:55 +02:00
Simon Berger 80d71ccb3f Merged isset, unset and str_replace calls 2020-09-26 00:55:19 +02:00
Michael Telgmann a4509d28e7
Introduce constants for Composer\Package\Link types 2020-09-21 14:22:06 +02:00
Simon Berger 80a75e9959 Minor code improvements 2020-09-20 02:16:28 +02:00
Lars Strojny 0b6abf3b96
APCu prefix as a separate option 2020-09-16 10:49:00 +02:00
Lars Strojny de0085767c
Sanitize prefix 2020-09-15 12:39:22 +02:00
Lars Strojny dafd225a35
Allow to pass a string for apcu-autoloader to set the APCu prefix 2020-09-14 22:36:53 +02:00
Jordi Boggiano d942c65e0c
Fix more warnings 2020-09-11 11:32:09 +02:00
Jordi Boggiano 1593b67230
Fix warnings on higher phpunit versions 2020-09-11 11:01:32 +02:00
Simon Berger f3936b82cd Added test to cancel ProcessExecutor::asyncExecute 2020-09-08 11:33:41 +02:00
Nils Adermann 976fcd2eb4 PoolBuilderTest: Add case for multiple repositories and partial update with replace 2020-09-01 12:07:12 +02:00
Nils Adermann 6c4ed247dd Add a pool builder test for replaces across multiple repos 2020-08-31 16:00:49 +02:00
Nils Adermann 1385412748 Merge branch 'master' into filter-packages
* master:
  Add tests for edge cases of packages providing names which exist as real packages
  Add another test verifying that a package may provide an incompatible version of sth that actually exists
  Fix provider coexistence test, needs another requirement to install both
  Fix test filename to end with .test extension so it gets run
  Update config section to note required scope for GitLab tokens
  Fix pre/post-package-install/update/uninstall events receiving a partial list of operations, fixes #9079
  Also remove credentials from cache dirs in git/svn drivers, fixes #7439, refs #9155
  AuthHelper: Allow fall-through GitLab-specific HTTP headers for auth
  Sanitize repo URLs to mask HTTP auth passwords from cache directory
  Util/Zip: fix strpos args order
2020-08-28 14:52:58 +02:00
Nils Adermann 43093d0eeb Add tests for edge cases of packages providing names which exist as real packages 2020-08-28 14:50:28 +02:00
Nils Adermann 140665eadd Add another test verifying that a package may provide an incompatible version of sth that actually exists 2020-08-28 13:40:44 +02:00
Nils Adermann 85950f8e9a Fix provider coexistence test, needs another requirement to install both 2020-08-28 13:40:44 +02:00
Nils Adermann cf8ff2a75d Fix test filename to end with .test extension so it gets run 2020-08-28 13:40:44 +02:00
Nils Adermann c9201b8e40 PoolBuilderTest: Allow setting filter options for repositories 2020-08-28 13:07:11 +02:00
Nils Adermann fcb9ef4899 Allow defining multiple reppos in pool builder tests 2020-08-28 12:15:19 +02:00
Ayesh Karunaratne 931a1ff1f8
AuthHelper: Allow fall-through GitLab-specific HTTP headers for auth
Previously, `AuthHelper` consumed the authentication credentials for GitLab domains and added access tokens as GitLab-specific headers.
[Composer repositories now supported in GitLab](https://php.watch/articles/composer-gitlab-repositories) require standard Authorization headers with a personal access to function, which failed to work due to out GitLab-specific headers.

With this commit, AuthHelper checks if the password is an access token, and falls through to HTTP basic authentication even if the domain name is a GitLab domain name.
2020-08-27 12:13:28 +07:00
Jordi Boggiano 9a04ecefbf
Merge branch 'master' into filter-packages 2020-08-25 16:51:28 +02:00
Jordi Boggiano 6186c7f36f
Fix handling of root aliases in partial updates, fixes #9110 2020-08-25 11:05:28 +02:00
Jordi Boggiano 448daea696
Add support for detecting packages not matching only due to minimum stability 2020-08-23 16:48:07 +02:00