Jordi Boggiano
ff74d0e686
Fix lock file generation with dev-master aliases to be compatible with Composer 1, fixes #9337
2020-10-27 20:50:26 +01:00
Nils Adermann
7bc2112f2b
InstallerTest: Add a test for partial updates
...
Needs to take constraints of locked packages into account
2020-10-27 17:02:31 +01:00
Nils Adermann
b5c0e68bc7
PoolBuilder: test case ensuring versions matching locked constraints get loaded
2020-10-27 16:52:31 +01:00
Jordi Boggiano
568d9206cc
Fix tests
2020-10-27 14:04:36 +01:00
Jordi Boggiano
4b8c2aa121
Fix default version to be semver parseable, fixes #9342
2020-10-25 22:22:19 +01:00
Jordi Boggiano
5bdb0cfff5
Merge pull request #9339 from Seldaek/fix-plugin-order
...
Fix plugin install order for plugins modifying downloads
2020-10-25 21:28:38 +01:00
Jordi Boggiano
2d4e1e0dce
Make sure Transaction sorts operations correctly to begin with
2020-10-25 14:06:45 +01:00
johnstevenson
2a913c7a68
Improve proxy error messages for streams
2020-10-24 18:20:31 +01:00
Jordi Boggiano
62eff8e979
Tweaks to new proxying code, refs #9324
2020-10-24 10:36:39 +02:00
johnstevenson
d47261eb93
Refactor proxy handling for Composer2
2020-10-23 21:38:29 +01:00
Nils Adermann
e868996bdd
Validate: Warn about providing or replacing packages you require
2020-10-23 22:02:13 +02:00
Jordi Boggiano
8564dd8dac
Allow Url::sanitize to escape URLs without scheme
2020-10-23 13:27:46 +02:00
johnstevenson
8feb83b22b
Remove duplicate StreamContextFactory ssl options
...
Added in Dec 2014 (commit 8dad846
), superseded in Jan 2016 (pr #4759 )
2020-10-23 13:25:17 +02:00
Jordi Boggiano
4d2f41a415
Merge pull request #9318 from naderman/validate-provide-replace-requirement
...
Validate: Warn about providing or replacing packages you require
2020-10-23 10:35:26 +02:00
Jordi Boggiano
447416a357
Fix typo
2020-10-22 16:16:02 +02:00
Nils Adermann
6409ed0fc2
Validate: Warn about providing or replacing packages you require
2020-10-22 11:28:19 +02:00
Jordi Boggiano
492bece6e2
Merge pull request #9317 from naderman/test-provider-satisfy-self
...
Test: Verify require for package provided or replaced by pkg itself is used
2020-10-22 10:46:05 +02:00
Nils Adermann
1d6c0865ca
Test: Verify replacing a package required by the same package satisfies the dep
2020-10-22 10:32:04 +02:00
Nils Adermann
290450214e
Test: Verify require for package provided by pkg itself is used
2020-10-22 10:26:28 +02:00
Nils Adermann
c0236c5ed2
Move slow integration test to separate fixtures directory and add to slow group
2020-10-22 10:14:17 +02:00
Nils Adermann
c37dce0bb3
Remove unnecessary hhvm conflict rules from test
2020-10-22 10:02:09 +02:00
Nils Adermann
2468cd20dd
Update test case for github issue 7665 to have correct output
2020-10-22 09:44:16 +02:00
Nils Adermann
e11f52c041
Add a test to reproduce github issue #7665
2020-10-22 09:44:16 +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
Jordi Boggiano
4d83783641
Fix test to avoid network usage
2020-08-23 16:03:00 +02:00
Oleg Andreyev
e745e59656
updated repositories-priorities4.test
2020-08-22 20:11:15 +03:00
Oleg Andreyev
f262feebec
fixing error message for higher repository priority, when higher repo has only a dev-branch
2020-08-22 20:07:13 +03:00
Lars Strojny
3e750b69f4
Fix name
2020-08-18 16:31:46 +02:00
Lars Strojny
a83588f568
The proper fix
2020-08-18 16:30:47 +02:00
Lars Strojny
99fd5c7b49
Add tests
2020-08-18 16:05:40 +02:00
Jordi Boggiano
4d20e6f5d6
Move Version util to Platform namespace, fix CS nitpicks, make regexes case insensitive for robustness, refs #9093
2020-08-13 15:48:41 +02:00
Jordi Boggiano
7e1ef19a5a
Expand library version checking capabilities ( closes #9093 )
2020-08-13 15:48:41 +02:00
Wissem Riahi
657ae5519e
Add support for TAR in Artifact packages ( #9105 )
2020-08-12 20:30:58 +02:00
Jordi Boggiano
00f712a7c4
Revert "Allow specifying a version requirement for CLDR"
2020-07-30 21:00:43 +02:00
Jordi Boggiano
7bcde1481d
Fix git downloader syntax for windows cmd when updating packages, fixes #9089
2020-07-30 14:38:48 +02:00
Lars Strojny
5a02ea6a96
Check that class exists
2020-07-30 14:29:48 +02:00
Lars Strojny
404dea61c2
Allow specifying a version requirement for the relevant CLDR
2020-07-29 19:32:53 +02:00
Jordi Boggiano
d8fa746433
Merge pull request #9058 from Seldaek/zip-cleanup
...
Clean up Zip Util to be more strict about what is a valid package archive
2020-07-21 17:17:12 +02:00
Wissem Riahi
c353ac835c
Add exception for multiple composer.json files ( #3 )
2020-07-21 17:10:26 +02:00
Jordi Boggiano
22367a68f9
Avoid loading same packages multiple times
2020-07-17 16:16:58 +02:00
Jordi Boggiano
23339e44b8
Fix alias tests to use default-branches
2020-07-17 16:15:19 +02:00
Yanick Witschi
6ba0f3adf9
Merge branch 'master' into filter-packages
...
* master: (59 commits)
Update deps
Reuse repository manager and others directly from the Composer instance, refs #9057
Fix usage of create-project with local filesystem repos
Fix return value
Add support for multiple --repository additions in create-project, and make --add-repository delete the lock file, fixes #8853
Remove cygwin php handling in UAC elevation
Clean up a little to make impl less invasive and to handle replacers/providers
Supply event dispatcher in Create Project Command
Avoid attempting to use /etc/xdg as base config home, fixes #9053 , refs #9045
Create an issue @ Docker repository on tag
Mark transaction classes internal, refs #8827
Prepare 1.10.9 release
Remove highest/lowest builds for 1.10 maintenance branch
Fix bitbucket detection of redirects to login page, fixes #9041
Fix doc comment
Fixed spelling mistake
Add Windows UAC elevation to self-update command
GitLab: clarify interactive auth prompt
Improve support for XDG and default to XDG config dir if both that and ~/.composer are available, fixes #9045
Fix #9033 - inconsistent behavior with minor-only flag
...
2020-07-17 14:30:12 +02:00
Jordi Boggiano
433968de17
Fix usage of create-project with local filesystem repos
2020-07-17 11:30:03 +02:00
Jordi Boggiano
942562c382
Clean up Zip Util to be more strict about what is a valid package archive, fixes #8931
2020-07-16 17:36:46 +02:00
Jordi Boggiano
212fbc516e
Fix test issues
2020-07-02 08:12:25 +02:00
Nils Adermann
3d2d33dd58
Solver: Add missing rules and replace some with %A for pcre length limit
2020-06-26 22:11:13 +02:00
Nils Adermann
de3931c742
Revert "Remove unnecessary duplicate rule output from expected test result"
...
This reverts commit c78eb49b5e
.
2020-06-26 22:03:18 +02:00
Nils Adermann
c78eb49b5e
Remove unnecessary duplicate rule output from expected test result
2020-06-26 21:51:02 +02:00
Nils Adermann
2cfb60e683
Solver: Add test case for github issue 7051
2020-06-26 21:51:02 +02:00
Jordi Boggiano
bee91155a1
Fix guessing of default branch when HEAD is a non-feature-branch
2020-06-26 16:16:16 +02:00
Jordi Boggiano
05dacbdabb
Rename DEV_MASTER_ALIAS to DEFAULT_BRANCH_ALIAS
2020-06-25 08:56:14 +02:00
Jordi Boggiano
74d89d7110
Get rid of default branch handling in version guesser as it is way too time intensive at every initialization
2020-06-24 21:16:16 +02:00
Yanick Witschi
ea0ce9dd7d
Merge branch 'master' into filter-packages
2020-06-22 18:38:16 +02:00
Jordi Boggiano
6d2b5c1950
Add missing class
2020-06-19 17:58:21 +02:00
Jordi Boggiano
7a37e78a30
Speed up installer tests by avoiding lots of bootstrapping and git processes
2020-06-19 17:56:13 +02:00
Jordi Boggiano
d19f5db568
Fix tests to use default-branch prop
2020-06-19 16:06:38 +02:00
Jordi Boggiano
6349764c2d
Fix root package handling of default-branch
2020-06-19 15:34:28 +02:00
Jordi Boggiano
6f0e5996de
Treat default branch name as a non-feature-branch no matter what it is called
2020-06-19 14:12:44 +02:00
Jordi Boggiano
f70d527f4f
Fix git tests
2020-06-17 17:53:00 +02:00
Jordi Boggiano
04381c70fe
Merge branch '1.10'
2020-06-17 17:37:39 +02:00
Jordi Boggiano
fb7fc4a4ca
Fix git tests
2020-06-17 16:59:43 +02:00
Jordi Boggiano
93d4cf6f91
Add --no-show-signature where git supports it, fixes #8966
2020-06-17 16:37:06 +02:00
Jordi Boggiano
83c64a9d19
Reuse operation formatting logic in downloaders
2020-06-17 12:33:02 +02:00
Jordi Boggiano
e5fe35d554
Update test description
2020-06-17 09:24:25 +02:00
Jordi Boggiano
c8731598cc
Merge branch '1.10'
2020-06-16 17:16:42 +02:00
Jordi Boggiano
ee58f25c00
Fix ZipDownloaderTest
2020-06-16 14:00:25 +02:00
Jordi Boggiano
3af617efe8
Parallelize zip extraction using async unzip processes
2020-06-16 14:00:20 +02:00
Jordi Boggiano
0dad963cd8
Add executeAsync to ProcessExecutor and allow Loop class to wait on it in addition to HttpDownloader
2020-06-16 14:00:19 +02:00
Jordi Boggiano
a797ee1322
Fix inline aliases not being loaded when extracting dev requirements, fixes #8954
2020-06-16 13:50:29 +02:00
Michael Chekin
6d9bf42655
Additional Util\RemoteFileSystem tests ( #8960 )
...
* RemoteFilesystemTest: simplifying some mock expectations calls
- will($this->returnValue()) to willReturn()
- will($this->returnCallBack()) to willReturnCallback()
* RemoteFilesystemTest: extracting identical mocks for IOInterface into a separate getIOInterfaceMock() method
* RemoteFilesystemTest: converting protected helper methods to private.
* RemoteFilesystemTest: moving getConfigMock() private method after the public methods (with other private methods)
* adding RemoteFileSystemTest::testCopyWithRetryAuthFailureFalse() unit test.
* Allow optional injecting of AuthHelper into RemoteFilesystem constructor.
* adding RemoteFileSystemTest::testCopyWithSuccessOnRetry() unit test.
* using backward compatible @expectedException in RemoteFilesystemTest.php
* RemoteFilesystemTest: extracting RemoteFilesystem with mocked method creation into a separate method.
* RemoteFilesystemTest: extracting AuthHelper with mocked method creation into a separate method.
2020-06-16 09:35:33 +02:00
Graham Campbell
fa799970ad
Replace whitelist with allow list
2020-06-07 22:15:09 +01:00
Jordi Boggiano
2fa58ccf96
Reduce amount of packages loaded by avoiding extensions of the constraint beyond the root constraint
2020-06-06 17:18:42 +02:00
Jordi Boggiano
4b9b499ce5
Fix issue loading aliases and fix markPackageNameForLoading when called twice in a row for same package it would overwrite the constraint the second time
2020-06-06 17:16:54 +02:00
Jordi Boggiano
b7f1550896
Add test covering replacer unfixing
2020-06-06 15:20:14 +02:00
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