1
0
Fork 0
Commit Graph

8121 Commits (5bc5c174a68a98fa3779ee4ab8f9c85f64d6b78c)

Author SHA1 Message Date
John Stevenson ce19bcd992
Upgrade to xdebug-handler 2 (#9832)
This adds support for Xdebug3 modes and changes the default behaviour
from always restarting if Xdebug is loaded, to only restarting if Xdebug
is active.

Xdebug is considered active if it is loaded, and for Xdebug3, if it is
running in a mode other than `xdebug.mode=off`.
2021-05-21 16:47:29 +02:00
Jordi Boggiano 23d1de5d59
Merge branch '2.0' 2021-05-21 16:44:33 +02:00
Jordi Boggiano fee22972ea
Update basic docs on install/update, fixes #9754 2021-05-21 16:44:05 +02:00
Jordi Boggiano 6441e1f94f
Merge branch '2.0' 2021-05-21 15:01:18 +02:00
Jordi Boggiano 7d19930ca6
Fix minimum-stability validation to match what VersionParser::normalizeStability does, closes #9904 2021-05-21 15:00:48 +02:00
Jordi Boggiano 019d051e9e
Fix type 2021-05-21 14:50:30 +02:00
Jordi Boggiano 284ec95712
Document new methods and update the composer-runtime-api version to 2.1 2021-05-21 14:34:51 +02:00
Jordi Boggiano 82cffa17d3
Undo addition of initializeInstalled and remove inline copy of the data from the class 2021-05-21 14:34:51 +02:00
Jordi Boggiano 3fe4f84a76
Fix handling of metapackages with null paths, and handling of paths which do not have a shortest-path and require an absolute path to be addressed 2021-05-21 14:33:10 +02:00
Jordi Boggiano 518b44a810
Clean up dump code to avoid reimplementing var export, and remove DIRECTORY_SEPARATOR 2021-05-21 14:33:10 +02:00
Jordi Boggiano 5a69a1e483
Add InstalledVersions::getInstallPath($package) getter, and update phpdoc types 2021-05-21 14:33:10 +02:00
Jordi Boggiano 8335b49cf0
Rename dev-requirement to dev_requirement for consistency 2021-05-21 14:33:09 +02:00
Jochen Roth b6c9d34125
Add install-path and type to installedVersions.php and installed.php, add method to get installed packages by type
Issue https://github.com/composer/composer/issues/9648
2021-05-21 14:33:09 +02:00
Jordi Boggiano 31cc102850
Merge branch '2.0' 2021-05-21 14:32:06 +02:00
Frank Prins e83e92b2ae Ignore platform requirements like "ext-*" and "php" when validating the lock file as they don't get locked 2021-05-20 21:14:30 +02:00
Frank Prins 32b70142d9 Replace static anonymous function and replace it with normal anonymous function as static ones are only supported on PHP5.4 and up 2021-05-20 20:55:00 +02:00
Frank Prins f4d3a1e478 Detect missing packages that are a requirement or dev-requirement but not locked. 2021-05-20 20:44:53 +02:00
Nils Adermann 16279d328e
Merge pull request #9816 from Seldaek/install_deprecate
Deprecate InstalledVersions::getRawData in favor of getAllRawData
2021-05-20 16:54:33 +02:00
Jordi Boggiano 8a3f4a8400
Add secure-svn-domains config option to mark secure svn:// hostnames, fixes #9872 2021-05-20 16:27:58 +02:00
Jordi Boggiano 458bd41d8f
Update docs and add more helpful output to validate command, refs #9782 2021-05-20 16:11:51 +02:00
Jordi Boggiano 89c3045e2b
Merge remote-tracking branch 'BoShurik/schema' 2021-05-20 15:42:39 +02:00
Jordi Boggiano 991985792d
Merge branch '2.0' 2021-05-20 14:16:52 +02:00
Jordi Boggiano 251b852fd2
Make sure async processes fail the promise if they fail to start, fixes #9808 2021-05-20 14:15:14 +02:00
Jordi Boggiano 8427b6c8ed
Also make sure filesystem is up to date before generating binary links, refs #9627 2021-05-20 13:27:20 +02:00
Jordi Boggiano 9ba042ded8
Add Platform-PHP version to user-agent header to improve targetted-php stats (#9873) 2021-05-20 10:17:30 +02:00
Jordi Boggiano 5bf614a762
Merge branch '2.0' 2021-05-17 22:35:56 +02:00
Jordi Boggiano dd54f295fe
Fix progress output, and remove progress bar on CI env, fixes #9621, closes #9880 2021-05-17 22:34:32 +02:00
Jordi Boggiano 459a7d9623
Use a simpler suggested require version of * to keep things simple for extensions which are versioned like PHP, fixes #9483 2021-05-17 14:36:46 +02:00
Jordi Boggiano 0021758e0b
Merge branch '2.0' 2021-05-10 13:14:14 +02:00
Jordi Boggiano d56387edb7
Also handle throwable on supported php versions 2021-05-10 13:14:08 +02:00
Jordi Boggiano 649087d6de
Fix type issues with root package interface 2021-05-04 16:47:54 +02:00
Jordi Boggiano 22cc96682d
Merge branch '2.0' 2021-05-04 16:43:31 +02:00
Jordi Boggiano b268e20d9f
Fix invalid interface usage 2021-05-04 16:43:24 +02:00
Jordi Boggiano 7b77161b7e
Merge branch '2.0' 2021-05-04 16:29:32 +02:00
Jordi Boggiano 37f4f531d0
Avoid leaving the event stack in a dirty state if an event listener throws, fixes #9846 2021-05-04 16:18:38 +02:00
Jordi Boggiano a844fce23e
Fix handling of inline-update-constraints with refs or stability flags, fixes #9847 2021-05-04 14:14:57 +02:00
Jordi Boggiano a04202aa7d
Merge pull request #9864 from Seldaek/dev-versions-dx
Hint at a branch rename if we detect dev-master can not be found and condense dev-* versions in problem output
2021-05-04 13:38:33 +02:00
Jordi Boggiano 3380178798
Introduce a cross-platform safe version of is_readable to support UNC / wsl$ paths on Windows (#9861) 2021-05-04 13:25:52 +02:00
Jordi Boggiano 298246dccb
Also condense dev-* versions if there are many, refs #9850 2021-05-03 14:42:59 +02:00
Jordi Boggiano 9b7a8d4543
Hint at a branch rename if we detect dev-master can not be found but dev-main or dev-default exists, fixes #9850 2021-05-03 14:42:58 +02:00
Markus Staab bfea0f7d1e
BinaryInstaller: install full binaries on WSL when bin-compat=auto (#9855) 2021-05-02 16:50:42 +02:00
Jordi Boggiano 4842f213a1
Also make sure type is correct for preg_match 2021-04-30 10:07:28 +02:00
Jordi Boggiano 832f4007d6
Allow ints in source/dist reference 2021-04-30 09:40:58 +02:00
Jordi Boggiano 832af78e28
Add basic source/dist validation 2021-04-28 21:53:09 +02:00
Jordi Boggiano 40c7a725e1
Merge branch '2.0' 2021-04-27 13:06:49 +02:00
Jordi Boggiano 332c46af8b
Merge pull request from GHSA-h5h8-pc6h-jvvx
* Fix external process calls to avoid user input being able to pass extra parameters

* Tweak some fixes
2021-04-27 13:00:40 +02:00
Jordi Boggiano 083b73515d
Merge pull request from GHSA-h5h8-pc6h-jvvx
* Fix external process calls to avoid user input being able to pass extra parameters

* Tweak some fixes
2021-04-27 13:00:40 +02:00
Jordi Boggiano 2a50a9400f
Fix install step at the end of init command 2021-04-20 22:04:28 +02:00
Jordi Boggiano 1fd70de32d
Merge branch '2.0' 2021-04-20 22:03:43 +02:00
Jordi Boggiano 99d8e0ad09
Fix install step at the end of init command 2021-04-20 22:00:01 +02:00
Andreas Scheibel bb1bb022e4
"composer init --autoload" - Interactive generates PSR-4 autoloader in composer.json (#9829)
- Generates PSR-4 autoload entry in composer.json.
- Run dump-autoload, if no dependencies are set
2021-04-20 21:58:38 +02:00
Adam e291aa1d12
Allow PreFileDownloadEvent to carry transport options for metadata (#9831) 2021-04-19 13:55:52 +02:00
John Stevenson c3b76a8532
Upgrade to xdebug-handler 2 (#9832)
This adds support for Xdebug3 modes and changes the default behaviour
from always restarting if Xdebug is loaded, to only restarting if Xdebug
is active.

Xdebug is considered active if it is loaded, and for Xdebug3, if it is
running in a mode other than `xdebug.mode=off`.
2021-04-13 09:59:06 +02:00
Adam 180ba49f33
ComposerRepository::asyncFetchFile() does not pass the downloaded URL to PostFileDownloadEvent (#9827) 2021-04-11 13:59:18 +02:00
Markus Staab 7c602d8807
Added link to composer.org docs on ProcessTimedOutException (#9796) 2021-04-11 13:30:35 +02:00
Jordi Boggiano d75d79b452
Merge pull request #9822 from phenaproxima/post-file-download
Fire POST_FILE_DOWNLOAD event for metadata fetched by ComposerRepository
2021-04-09 14:53:20 +02:00
Jordi Boggiano 9a9c738f23
Add repository instance to Pre/PostFileDownloadEvent metadata 2021-04-09 11:21:14 +02:00
Jordi Boggiano 7dd95a768b
Clean stuff up and deprecate old usages for PostFileDownloadEvent 2021-04-09 11:21:13 +02:00
Phéna Proxima df0a2cdd0a Fire POST_FILE_DOWNLOAD event for metadata fetched by ComposerRepository. 2021-04-08 11:08:13 -04:00
Jordi Boggiano 549dabf878
Merge branch '2.0' 2021-04-08 12:06:38 +02:00
Jordi Boggiano e6cede4a61
Make sure update mirrors/--lock keeps the release date of the original reference when dev versions have newer commits, refs #9812 2021-04-08 11:54:39 +02:00
Jordi Boggiano 0ab4013788
Fix output listing some updates that do not really happen when updating mirrors/--lock, fixes #9812 2021-04-08 10:55:48 +02:00
Jordi Boggiano d519fb8a53
Add warning when loading plugins of type composer-installer as they are unlikely to function correctly and should be upgraded to the composer-plugin type 2021-04-08 10:40:55 +02:00
Jordi Boggiano f13282e555
Change default preferred-install to dist, add --prefer-install=auto|dist|source to allow specifying auto (#9603)
Fixes #9546
Fixes #9674
2021-04-07 16:04:42 +02:00
Jordi Boggiano a4eb2d4096
Merge branch '2.0' 2021-04-07 15:58:25 +02:00
Jordi Boggiano ddc3693725
Switch to composer/metadata-minifier, fixes #9727 2021-04-07 15:56:34 +02:00
Jordi Boggiano cf69f3194a
Fix doctype annotations 2021-04-07 15:56:34 +02:00
Adam 29befaa94b
Make ComposerRepository::configurePackageTransportOptions() protected. (#9818) 2021-04-07 15:56:15 +02:00
Jordi Boggiano 1179e4b481
Change root.dev-requirement to root.dev in installed.php as the root is not required per se, and this simply tracks the dev mode at install time 2021-04-07 13:42:22 +02:00
Jordi Boggiano cb2db16637
Merge branch '2.0' 2021-04-07 13:24:47 +02:00
Jordi Boggiano f5e6cc89cd
Deprecate InstalledVersions::getRawData in favor of getAllRawData 2021-04-07 13:23:34 +02:00
Jordi Boggiano 7ae3fbb81d
Fix doctype annotations 2021-04-07 13:22:48 +02:00
Jordi Boggiano 52a452c885
Improve InstalledVersions docs slightly 2021-04-07 12:44:23 +02:00
Jordi Boggiano 91136213d1
Merge branch '2.0' 2021-04-02 13:41:25 +02:00
Jordi Boggiano c3ae317a71
Support --no-dev combined with --locked in outdated/show commands, fixes #9788 2021-04-02 13:34:50 +02:00
Jordi Boggiano dca8bd7197
Merge branch '2.0' 2021-04-01 10:15:10 +02:00
Jordi Boggiano 18e268556d
Fix type warning on php8.1, refs #9770 2021-04-01 10:14:21 +02:00
Jordi Boggiano dc84dbbbf7
Fixed detection of hg version when localized, fixes #9753 2021-04-01 10:09:49 +02:00
Jordi Boggiano 53a974f9c9
Tweak virtualbox detection and improve it by detecting vbox additions, refs #9627 2021-04-01 09:48:07 +02:00
Jordi Boggiano 836ca051d3
Merge branch '1.10' into 2.0 2021-04-01 09:17:30 +02:00
Jordi Boggiano 96acad1e45
Update github token pattern to match their latest updates 2021-04-01 09:13:32 +02:00
BoShurik cc55b56dd7 Allow optional name and description fields for project type 2021-03-30 16:51:03 +03:00
vitman ecc8331312
Add dev mode env var for scripts run (#9793)
Co-authored-by: Vitali Tsyrkin <vitalit@playtika.com>
2021-03-27 13:23:46 +01:00
Jordi Boggiano bf73a20bc0
Merge branch '2.0' 2021-03-16 20:31:44 +01:00
Jordi Boggiano 63c086c208
Add source package name to debug info when enabling plugins 2021-03-16 20:31:19 +01:00
Jordi Boggiano 3b89a9c3b4
Also attempt working around Vagrant filesystem issues when installing plugins initially, refs #9627 2021-03-16 20:31:18 +01:00
Stephan 2f4b99eacd
MaxFileSizeException should reject download job (#9778) 2021-03-15 13:35:16 +01:00
Brandon Kelly 7652408829
Only call sapi_windows_set_ctrl_handler() for CLI requests (#9771) 2021-03-12 00:18:41 +01:00
Jordi Boggiano f10ae542ff
Always mark symlinked path packages for update even during partial updates to make sure they always reflect the current state on disk, fixes #9751 2021-03-10 14:26:42 +01:00
Jordi Boggiano 346356a4dd
Fix phpdoc 2021-03-10 13:44:42 +01:00
Jordi Boggiano 5d6f9b2528
Prefer @phpstan- annotations as that is what we run against 2021-03-10 10:52:16 +01:00
Jordi Boggiano b40b93bc7d
Merge branch '2.0' 2021-03-10 10:46:34 +01:00
Jordi Boggiano 414586ba05
Attempt working around Vagrant filesystem issues, added COMPOSER_RUNTIME_ENV env var (set to vagrant), fixes #9627 2021-03-10 10:45:40 +01:00
Jordi Boggiano 059b5b197d
Merge branch '2.0' 2021-03-09 23:27:32 +01:00
ochorocho 35210d99a9
Add --format json to search command (#9747)
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2021-03-09 23:06:02 +01:00
Jordi Boggiano 17747181d0
Clarify behavior of name in VCS repo, closes #9752 2021-03-09 23:00:17 +01:00
Jordi Boggiano c81562b343
Merge branch '1.10' into 2.0 2021-03-09 21:39:49 +01:00
Jordi Boggiano 54889ca109
Document GH token usage and also make sure we redact them in Process debug output, refs #9757 2021-03-09 21:37:43 +01:00
Ayesh Karunaratne dc83ba93f3
Update GitHub token pattern
GitHub is updating the format of auth tokens from `a-z0-9` to `A-Za-z0-9` ([notice](https://github.blog/changelog/2021-03-04-authentication-token-format-updates/)).
I'm not sure why `.` is allowed, but I dare not to remove it. In this PR, the token validation regex is updated to allow `A-Za-z0-9` instead of the current all lower-case `a-z` and disallowed `_`.
2021-03-09 17:17:35 +01:00
Jordi Boggiano 4940009f83
Bump phpstan to level 3 (#9734)
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
2021-03-09 15:49:40 +01:00
Jordi Boggiano 8392508e23
Merge branch '2.0' 2021-03-09 15:29:19 +01:00
Jordi Boggiano ab84916422
Fix unclear error when a package can be found in lock but not in the remote repo, fixes #9750 2021-03-09 15:01:23 +01:00
Jordi Boggiano de8a737015
Fix var shadowing 2021-03-09 14:13:28 +01:00
Jordi Boggiano 4a8e7daf56
Make sure that single files installed via file downloader get the executable bit set if they are a binary file, refs #9742 2021-03-09 14:13:19 +01:00
Jordi Boggiano 4bedd8379a
Fix php-proxying of binaries to avoid proxying phar files, fixes #9742 2021-03-09 14:12:32 +01:00
Jordi Boggiano e9d405ff18
Avoid using str_replace for dev-master replacement as that may be a valid part of a branch name, fixes #9739 2021-03-09 12:08:38 +01:00
Jordi Boggiano b451bcb1ac
Fix issue extracting archives into paths that already exist, fixes composer/installers#479 2021-03-09 11:53:52 +01:00
Jordi Boggiano bcd862c3dc
Add support for @php <abs path to binary from PATH>, fixes #9726 2021-03-09 10:38:46 +01:00
Jordi Boggiano d0b399b788
Merge branch '2.0' 2021-03-09 09:54:39 +01:00
John Stevenson 4f47a4c667
Proxy handling docs and tweaks (#9735) 2021-03-05 20:05:36 +01:00
John Stevenson 07f59a9162
Preserve file permissions on Windows self-update (#9733)
Windows file operations result in different file permissions depending
if the file is copied or moved. A copy operation applies permissions
from the destination folder (or file if it already exists and does not
use inheritance), while a move operation generally preserves the source
file permissions.

Windows PHP `rename` uses MoveFileEx so if the user is running as an
admin and the destination is in a common (non-user) location, then the
permission for other users will be replaced by the admin user. Likewise
for the UAC elevation feature, which uses the cmd.exe `move` command.

This fix uses copy and delete operations on Windows, so that other users
can continue to run composer.phar
2021-03-05 19:57:47 +01:00
John Stevenson dfc69140fe
Fix compiler on Windows (#9730) 2021-02-26 16:26:47 +01:00
Jordi Boggiano 4851f65318
Remove version argument from why and enforce it for why-not command, refs #9693 2021-02-25 19:54:15 +01:00
Jordi Boggiano 40800df6bd
Fix CS 2021-02-25 13:46:52 +01:00
Jordi Boggiano 52967c32cf
Remove unused var 2021-02-25 13:45:15 +01:00
Jordi Boggiano 48d02b479b
Fix output of PathDownloader during upgrades 2021-02-25 13:20:29 +01:00
Jordi Boggiano fd88b3d48d
Fix DownloaderInterface return types 2021-02-25 13:18:08 +01:00
Jordi Boggiano b3951b8804
Fix output of FileDownloader and related to avoid async issues 2021-02-25 12:03:09 +01:00
Jordi Boggiano 9809350753
Fix PathDownloader's remove implementation 2021-02-25 11:37:19 +01:00
Jordi Boggiano 67261e8d47
Make package removals async as well, refs #9618 2021-02-25 11:19:33 +01:00
Markus Staab a5fecc4720
Filesystem: added removeDirectoryAsync() and use it in ArchiveDownloader (#9618)
This turns half of the `rm -rf ...` executions during package installs async and therefore improves performance
2021-02-25 11:15:28 +01:00
Julian c78850ab98
Show a warning if require key changes for dependency (#9542)
Fixes #9516

Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2021-02-25 10:24:09 +01:00
Jordi Boggiano d806013091
Add more details when require/init fails to find a matching package due to the platform requirements 2021-02-25 09:33:58 +01:00
Jordi Boggiano d0aac44ed2
Auto-detect dev-mode in autoload-dump and deprecate dump-autoload --no-dev (#9714) 2021-02-24 21:17:05 +01:00
ochorocho 91b6ff27ac
Add --format option to `composer fund` command (#9678)
* Add --format option to `composer fund` command

Co-authored-by: Jochen Roth <jochen.roth@b13.com>
2021-02-24 17:21:10 +01:00
Jordi Boggiano 7c555b6382
Merge pull request #9682 from nicolas-grekas/installed-no-dev
Allow querying InstalledVersions::isInstalled() for no-dev packages
2021-02-24 17:16:28 +01:00
Jordi Boggiano 8da3b3b9be
List relevant conflicts in why/why-not, fixes #9693 2021-02-24 16:36:20 +01:00
Jordi Boggiano 09639a0cfc
Merge pull request #9670 from Ayesh/enums
Add support for autoloading Enums
2021-02-24 16:03:58 +01:00
Jordi Boggiano e3af4ee606
Include stdout as well as stderr if git stash/diff/.. fails, fixes #9720 2021-02-24 15:47:06 +01:00
Jordi Boggiano 7c910e6bfa
Revert autoload order fix, force bundled dependencies to be used over local dependencies, fixes #9721, fixes #9717 2021-02-24 14:55:13 +01:00
Jordi Boggiano bbd87934e9
Make sure we always pass a string to strtoupper 2021-02-23 20:02:33 +01:00
Jordi Boggiano 2597e195ef
Merge remote-tracking branch 'Sweetchuck/i9703-event-dispatcher-last-winner' 2021-02-23 15:25:57 +01:00
Jordi Boggiano d855986c39
Also allow backslashes to work on cmd.exe for plain executable paths, fixes #9707 2021-02-23 15:23:17 +01:00
Jordi Boggiano cf2128a889
Merge pull request #9713 from Seldaek/fix-unixy-proxy
Generate binary proxy in PHP if the target binary is detected as a PHP script
2021-02-23 14:15:44 +01:00
Jordi Boggiano 31d9f51572
Auto-detect mingw and assume it is interactive, fixes #9690 2021-02-23 13:11:00 +01:00
Jordi Boggiano b3b0cf629e
Generate binary proxy in PHP if the target binary is detected as a PHP script, so custom PHP processes can be used to call them via the bin proxy path, fixes #9325 2021-02-23 11:07:25 +01:00
Jordi Boggiano 057006da4f
Make sure @php path/to/bla gets executed as php path\to\bla on windows, fixes #6968 2021-02-23 08:57:35 +01:00
Jordi Boggiano 8f7597da22
Use a different way to suppress output than changing output verbosity in exec command, fixes #9711 2021-02-22 13:42:58 +01:00
Nicolas Grekas 7d4501816c Allow querying InstalledVersions::isInstalled() for no-dev packages 2021-02-18 13:15:26 +01:00
Jordi Boggiano 03e8cacd12
Merge pull request #9696 from Seldaek/fix_installed_versions_during_update
Fix installed versions usage issues when using it in plugins during a Composer update process
2021-02-18 10:37:22 +01:00
Jordi Boggiano d91fe67a80
Remove default branch alias from versions which are numeric, fixes #9705 2021-02-17 23:48:03 +01:00
Jordi Boggiano f7e8f7625f
Remove plugin installer hackery 2021-02-17 23:21:18 +01:00
Dávid Andor 360966dcdf EventDispatcher uses only the return value of the last one listener, refs #9703 2021-02-16 22:01:14 +01:00
brandonkelly 62af444821 Check if SODIUM_LIBRARY_VERSION is defined 2021-02-16 12:51:14 -08:00
Jordi Boggiano cf324ee664
Make sure the plugins can use InstalledVersions to introspect themselves when being activated right after initial install 2021-02-12 11:18:04 +01:00
Jordi Boggiano d4073a40f9
Prepend runtime-autoloaders so that dependencies get loaded over Composer bundled packages
As Composer is generally compatible with newer versions of Symfony than the bundled ones, this should
not be a problem if dependencies are shared, and it ensures that the most relevant code gets loaded.
2021-02-12 11:14:40 +01:00
Jordi Boggiano 1c715b5821
Never load dev requirements, refs #9683 2021-02-11 16:05:37 +01:00
Jordi Boggiano 4c8149a33d
Only load dev requirements for the root package when collecting autoload dependencies during plugin activation, fixes #9683 2021-02-11 14:55:03 +01:00
Jordi Boggiano e7f6dd287c
Merge branch '1.10' 2021-02-11 13:07:23 +01:00
Jordi Boggiano abcf9e993b
Fix processes silently ignoring the CWD when it does not exist, refs #9694 2021-02-11 12:57:01 +01:00
Jordi Boggiano 52d7c6c383
Fix/add tests and also handle case where a json object is used 2021-02-11 11:13:58 +01:00
Jordi Boggiano 4130d388fe
Auto-detect packagist.org default repo replacements and deactivate it if it is redefined 2021-02-11 10:41:17 +01:00
Jordi Boggiano f37f3dab04
Fix abort of downloads and zip extraction to happen immediately, fixes #9390 2021-02-10 17:34:15 +01:00
Jordi Boggiano 40095b20dc
Allow tweaking the max parallel http requests via env var, fixes #9671 2021-02-10 14:34:59 +01:00
Jordi Boggiano a6d92e1eee
Sanitize URLs 2021-02-10 12:46:57 +01:00
Jordi Boggiano 8d94e25c2f
Minor fixes 2021-02-10 11:28:01 +01:00
Jordi Boggiano 902174d2a7
Improve error reporting when failing to load a package, fixes #9680 2021-02-10 11:24:59 +01:00
Jordi Boggiano 6a869ede77
Fail early if git/hg/svn can not be found on the system, so that download can be retried from dist, fixes #9681 2021-02-10 10:48:08 +01:00
Jordi Boggiano 78d7792eb8
Fix handling of promises for uninstall step when updating to a different install source 2021-02-10 10:48:07 +01:00
Ayesh Karunaratne 228428747a
Add support for autoloading Enums
PHP 8.1 supports Enums, and [Enums follow class-semantics](https://php.watch/versions/8.1/enums#class-semantics-autoload).

Composer's class-map generator currently looks for `class`, `interface`, and `trait` keywords. If Composer is run in PHP 8.1 or later, Composer now additionally looks for `enum` keyword as well. This is similar to how Hack's `enum` support is added.

This PR also adds tests for basic enums, backed enums, namespaced enums, and an enum that implements an interface and extends a class.
2021-02-06 15:51:18 +07:00
adlacruzes 2d914524e9 JsonFile: add missing ParsingException throws annotations 2021-02-05 17:32:25 +01:00
Arnaud Vanwambeke 7402ef33fc Dont recommend to use with all dependencies option when it is already used 2021-02-03 23:43:35 -05:00
Yanick Witschi ea6b0836c4
Allow to override Installer::createPlatformRepo 2021-02-01 15:17:02 +01:00
Jordi Boggiano 1e72b23fd3
Merge pull request #9658 from Ayesh/improve/class-autoloader-conditional-path
Minor improvement to ClassLoader::register no-op block
2021-02-01 14:14:34 +01:00
Jordi Boggiano 4ade9bd960
Avoid accessing undefined indices, fixes #9654 2021-02-01 12:55:55 +01:00
Ayesh Karunaratne 980aac6eb2
Minor improvement to ClassLoader::register no-op block
A recent change in the ClassAutoloader (#9635) added support for specifying a vendorDir, and `\Composer\Autoload\ClassLoader::register` now has a if-elseif-else chain.
The first block has a `// no-op` comment, followed by an `elseif` block. It's more readable to `return;`, and remove the `elseif` for readability.
2021-01-29 20:10:18 +07:00
Jordi Boggiano cee34b06b4
No need to ignore phpstan error now that getRegisteredLoaders is in a release 2021-01-29 09:46:21 +01:00
Jordi Boggiano 1a0e578b14
Remove ungreedy modifier and make a few domain matches case insensitive, fixes #9656 2021-01-29 09:43:47 +01:00
Jordi Boggiano 07b8c23f02
Merge branch '1.10' 2021-01-27 15:46:58 +01:00
Jordi Boggiano 37c5e9961c
Merge remote-tracking branch 'nicolas-grekas/path-version' into 1.10 2021-01-27 15:20:38 +01:00
Jordi Boggiano 92313447d6
Filter out exclude-from-classmap rules to avoid generating very long regexes, fixes #9487 2021-01-27 15:10:32 +01:00
Nicolas Grekas 725b33ee5a Handle "versions" option in PathRepository, remove support for "branch-version" 2021-01-27 14:28:26 +01:00
Nicolas Grekas 079e501ac8 Revert "Merge pull request #9273 from nicolas-grekas/dev-version"
This reverts commit d2d606ced2, reversing
changes made to 4a8dbcd145.
2021-01-27 14:03:44 +01:00
Jordi Boggiano 51371944e1
Add comment about not removing the static $installed data, refs #9635 2021-01-27 11:05:53 +01:00
Jordi Boggiano 51001dec60
Merge remote-tracking branch 'nicolas-grekas/install-stack' 2021-01-27 11:04:09 +01:00
Nicolas Grekas ba94445bb9 Ensure InstalledVersions reports info about all currently registered class loaders 2021-01-27 10:39:35 +01:00
Jordi Boggiano 4e0b8c1086
Update src/Composer/Console/Application.php 2021-01-27 09:17:25 +01:00
Ben Beckford 8eaae9f50a Suppress error when chdir($oldWorkingDir); unsuccessful
resolves #9649
2021-01-26 20:48:19 +00:00
Jordi Boggiano 125f8a3319
Merge branch '1.10' 2021-01-26 15:56:49 +01:00
Jordi Boggiano 2cb9630320
Fix $_SERVER var not being updated when using putenv, refs b80038804f and fixes #9372 2021-01-26 15:54:21 +01:00
Jordi Boggiano 6c346d00f3
Merge pull request #9617 from clxmstaab/merge-checkout-reset
GitDownloader: combine checkout + reset commands into a single process
2021-01-26 11:01:58 +01:00
Jordi Boggiano 471a63c206
Merge pull request #9465 from BR0kEN-/issues/9464
#9464: ZipArchiver incorrectly treats `.gitignore` directory inclusions
2021-01-26 10:42:26 +01:00
Jordi Boggiano 5c35f37f92
Properly handle installed repos as additionalFixedRepository, fixes #9574 2021-01-26 09:41:20 +01:00
Jordi Boggiano c800db04d3
Merge pull request #9616 from clxmstaab/fast-first
Filesystem: use fast operation first in emptyDirectory()
2021-01-17 15:01:05 +01:00
Jordi Boggiano 09bf5ec85c
Merge pull request #9615 from clxmstaab/is-dir
Filesystem: use is_dir() instead of file_exists() which is faster
2021-01-17 14:59:52 +01:00
Jordi Boggiano c33f2615b5
Include json response bodies in transport exceptions, fixes #9606 2021-01-17 14:13:58 +01:00
Jordi Boggiano 7ea17d7db9
Merge remote-tracking branch 'naderman/curl-download-performance-select-not-sleep' 2021-01-17 12:50:53 +01:00
Markus Staab 62817a4cb2 fast operation first 2021-01-16 22:50:58 +01:00
Markus Staab 6774e7ee29 Filesystem: use fast operation first in emptyDirectory() 2021-01-16 22:45:41 +01:00
Markus Staab 8dfe45a026 GitDownloader: combine checkout + reset commands into a single process
use a single process instead of 3 to improve performance
2021-01-16 22:26:20 +01:00
Markus Staab 6552b85100 Filesystem: use is_dir() instead of file_exists() which is faster
this reproducible saves 1-2 seconds while running `COMPOSER_DISABLE_NETWORK=1 php
 composer/bin/composer install -vvv --profile` on the rector/rector project
2021-01-16 22:03:52 +01:00
Nils Adermann 8a85a79b50 Remove debug output 2021-01-15 10:10:27 +01:00
Nils Adermann f72ad485ef Revert lastInfoUpdate change to keep full comaptibility to current behavior 2021-01-15 09:41:53 +01:00
Jordi Boggiano de58c5499e
Always make the root package autoloadable when executing plugins, fixes #9530 2021-01-13 11:45:00 +01:00
Jordi Boggiano 147d884996
Also avoid matching .git suffix in bitbucket URLs, refs #9590 2021-01-13 11:38:45 +01:00
Nils Adermann d665301368 Rewrite while if return as do while 2021-01-12 21:04:52 +01:00
Nils Adermann c043fe841b Remove sleeps from curl handling, select it is responsible for waiting
The current sleeps mean that large files download slowly as select would
return quickly when data has arrived and needs to be processed, but the
sleep waits while the buffers are full.

On the flipside we need to ensure that some code that would keep the CPU
busy if run too often does not get run every time select returns.
2021-01-12 17:52:53 +01:00
Jordi Boggiano a20ee1a448
Avoid matching .git suffix if present in private github URLs, fixes #9590 2021-01-12 16:31:48 +01:00
Jordi Boggiano 4a740e3e61
Add warnings when running updates without curl enabled, fixes #9558 2021-01-12 14:56:17 +01:00
Jordi Boggiano 57117384df
Merge pull request #9601 from Seldaek/json-fix
Fix JSON manipulation issue with large files and jit enabled
2021-01-12 14:45:13 +01:00
Jordi Boggiano 492f8cb350
Add more possessive quantifiers 2021-01-12 14:05:55 +01:00
Jordi Boggiano d94e638461
Fix tests and edge case 2021-01-12 14:00:02 +01:00
Jordi Boggiano 94076c0bb9
Make sure if plugins depend on the root package that the root package is also autoloaded correctly, refs #9530 2021-01-12 13:47:45 +01:00
Jordi Boggiano 598beb240a
CS fixes 2021-01-12 13:04:32 +01:00
Jordi Boggiano 92b3725765
Workaround issues when the additional fixed repo is in used and is an installed repo, closes #9574 2021-01-12 11:53:41 +01:00
Jordi Boggiano b021647e6f
Fix JSON manipulation issue with large files and jit enabled, fixes #9595 2021-01-12 11:02:43 +01:00
Wissem Riahi f7bf635440 Add response info for 3xx/4xx/5xx http responses 2021-01-08 11:28:35 +01:00
Jordi Boggiano 296bab1292
Merge pull request #9592 from wissem/add-response-duration-http-requests
Add response info for HTTP requests in CurlDownloader
2021-01-07 23:28:44 +01:00
Jordi Boggiano 7f85367113
Make sure an array is always returned 2021-01-07 23:26:29 +01:00
Wissem Riahi bdecb4711d Add all curl_getinfo into the response and exception for curl requests 2021-01-07 12:01:19 +01:00
Wissem Riahi a5d79db0a7 Make sure total_time_us from curl progress is set 2021-01-06 18:01:06 +01:00
Wissem Riahi 370e082b4a Add saving time duration for curl HTTP requests 2021-01-06 16:05:00 +01:00
Ilya Urvachev cee8e3e3b7
fix `dirname` usage 2021-01-06 15:21:45 +03:00
Ilya Urvachev ab6e0fa961
use `.tmp` extension for temporary files
also updated `catch` block to use temporary filename
2021-01-06 02:17:34 +03:00
Ilya Urvachev e829ff80bc
feat(Cache): make cache writes more atomic
Fixes #9568
2020-12-29 23:57:29 +03:00
Jordi Boggiano bad4e4edbc
Fix some more wording 2020-12-27 20:51:22 +01:00
Ali Shaikh 6f5c4fcf3e Improving Composer self-update (version upto date) info message 2020-12-27 12:20:55 +05:00
Jordi Boggiano bc31351b5b
Only show getting started warning for non-global composer load 2020-12-15 20:39:50 +01:00
Jordi Boggiano eb9616a82b
Debug info improvements 2020-12-15 14:55:44 +01:00
Jordi Boggiano 378a5b72b9
More open_basedir fixes, refs #9541 2020-12-04 10:50:19 +01:00
Jordi Boggiano f25271ee22
Add missing file to v1 phar 2020-12-04 09:05:58 +01:00
Jordi Boggiano 3eb419d2d0
Fix is_dir check to not fail on open_basedir restrictions, fixes #9541 2020-12-03 21:35:23 +01:00
Jordi Boggiano 29f4c0b92a
Merge branch '1.10' 2020-12-03 17:17:25 +01:00
Jordi Boggiano 7f3a56f39b
Merge pull request #9360 from naderman/pool-builder-unlock-consider-all-constraints
PoolBuilder: Ensure versions matching locked constraints get loaded
2020-12-03 16:59:39 +01:00
Fabien Villepinte 4e8ca92b6f Fix error with binaries in PHP8 2020-12-02 13:15:16 +00:00
Michael Voříšek b4cb2f7321 test before chdir 2020-11-30 01:34:16 +01:00
Michael Voříšek e712130062
Fix for php8 when symlink function is disabled 2020-11-30 00:59:42 +01:00
Jordi Boggiano 1fb6b03e03
Fix a few edge cases in unpushed change handling 2020-11-26 16:03:38 +01:00
Jordi Boggiano f86b3ad0fe
Make sure all remotes are checked for unpushed changes, fixes #9486 2020-11-26 15:42:39 +01:00
Jordi Boggiano 00aaffb8f9
Make cache writes atomic 2020-11-26 14:28:58 +01:00
Jordi Boggiano 62bd81bf7a
Make sure the default branch alias is never used as a constraint by the VersionSelector 2020-11-26 14:24:22 +01:00
Jordi Boggiano d00edab884
Merge pull request #9477 from naderman/fix-alias-conflicts
Explicit conflicts should conflict with aliases of packages too
2020-11-26 13:59:57 +01:00
Jordi Boggiano be3a520331
Fix feedback 2020-11-26 13:07:33 +01:00
Nils Adermann 7197278fe9 Always install aliases together with their original package
Restores some Composer 1.x behavior like unbound constraints conflicting
with default branches unless they are branch aliased.

Simplifies conflicts with aliases because packages cannot be installed
without their aliases, so we do not need to know which aliases are
uninstalled in lock file or installed.json.
2020-11-26 12:10:07 +01:00
Jordi Boggiano e857a8216c
Make sure mirror update fails if no lock file is present 2020-11-26 11:28:17 +01:00
Jordi Boggiano 2d025dce05
Make sure mirror updates do not fail if there are dev requirements and new requires are present, fixes #9514 2020-11-26 11:27:44 +01:00
Jordi Boggiano 08f0af4623
Add docblocks to HttpDownloader, refs #9209 2020-11-25 15:44:59 +01:00
Jordi Boggiano e8a3a33023
Also output headers 2020-11-25 12:40:05 +01:00
Jordi Boggiano 8030fbc4ae
Add debug info for http status code 0 2020-11-25 12:37:28 +01:00
Jordi Boggiano b7d770659b
CS fixes 2020-11-22 14:52:39 +01:00
Jordi Boggiano c7da7e55c9
Fix various issues with regard to schema conformity when modifying json, fixes #9515 2020-11-22 14:26:18 +01:00
Andrés De la Cruz 480a6439fd
Fix phpstan phpdocs issues (#9478) 2020-11-20 09:28:09 +01:00
Jordi Boggiano 9e279740cd
Go go phpstan 🤞 2020-11-19 11:28:12 +01:00
Jordi Boggiano 742c2a9e93
Avoid swallowing exceptions 2020-11-19 10:32:09 +01:00
Jordi Boggiano 35b403b266
Make sure a version not found issue is reported as such for clarity, fixes #9500 2020-11-19 09:39:03 +01:00
Jordi Boggiano 351b14e32b
Installed repo contains only the required versions but the aliases are not always present at the right time so avoid looking up plugin dependencies using a constraint as it may not find dev-* packages even though they are there, fixes #9499 2020-11-18 22:33:34 +01:00
Jordi Boggiano f567fd69eb
List both unzip and zip ext presence in diagnose 2020-11-18 22:33:33 +01:00
Jordi Boggiano 5248d6c9f1
Improve curl error reporting some more 2020-11-18 21:36:33 +01:00
Jordi Boggiano 852990d06c
Make sure git gc runs if needed when syncing git mirrors in cache dir to avoid them getting very stale 2020-11-18 21:36:14 +01:00
Jordi Boggiano 6937fedaa9
Update user-agent to use cURL instead of curl, fixes #9492 2020-11-18 21:26:32 +01:00
Jordi Boggiano 4ac6f57d18
Add debug output when SIGINT is received 2020-11-16 22:42:21 +01:00
Jordi Boggiano 8ed2aa8d6d
Make sure curl errors without message are shown as code, and add URL linked to the failure 2020-11-16 22:41:19 +01:00
Nils Adermann d19b858e20 Improve decisions debug output 2020-11-13 16:58:43 +01:00
Nils Adermann 780e6fc027 Avoid creating unnecessary conflict rules for provide/replace of aliases 2020-11-13 16:26:36 +01:00
Nils Adermann 3764b3007d Explicit conflict rule generation needs to use pool->whatProvides
If relying on packages added by name in the generator aliases will be
skipped.
2020-11-13 16:01:54 +01:00
Jordi Boggiano d6794217d9
Merge pull request #9475 from naderman/fix-alias-alt
Make sure the root aliases always get installed when a package is updated
2020-11-13 15:15:32 +01:00
Nils Adermann 27f200caf1 Create ROOT_ALIAS rules inside package rule generation 2020-11-13 15:08:09 +01:00
Nils Adermann 4215344c93 Rule generator cleanup: no need for 2 added package arrays, more specific root alias rule 2020-11-13 14:53:23 +01:00
Jordi Boggiano 595c4c6f75
Make sure we handle cases where STDIN/STDOUT may not be defined 2020-11-13 14:50:24 +01:00
Jordi Boggiano b7e1383083
Make sure the alias package gets added to conflict rules etc, and only add it if aliased package is actually added 2020-11-13 14:16:37 +01:00
Jordi Boggiano 7b183956d8
Make sure the root aliases always get installed when a package is updated, fixes #9448 2020-11-13 13:52:21 +01:00
Jordi Boggiano 6ace5bb651
Make sure root aliases are marked as such also when loaded from lock file 2020-11-13 10:58:03 +01:00
Jordi Boggiano cc536c7f45
Fix/normalize tty handling 2020-11-13 08:58:18 +01:00
Jordi Boggiano 4b4a3937ea
Make sure Loop abortJobs does not lose track of promises in case wait() is called within the scope of a wait(), refs #9463 2020-11-12 15:14:39 +01:00
Jordi Boggiano b0d308319e
Extract POST_PACKAGE_* events to be executed all at once and not in parallel with async code to avoid edge cases, fixes #9463 2020-11-12 15:14:02 +01:00
Jordi Boggiano 45f7036745
Make sure the SOURCE_VERSION works with version_compare against 2.0.0 2020-11-12 15:12:46 +01:00
Sergii Bondarenko abbc0e8a4e
#9464: Remove wrapping slashes from the gitignore rules 2020-11-12 14:56:14 +02:00
Jordi Boggiano e5a009ed80
Make sure empty objects are not left behind when removing requires/.. fixes #9462 2020-11-12 11:09:15 +01:00
Jordi Boggiano dfca939f3b
Use proper type hint for local repo 2020-11-12 10:41:07 +01:00
Jordi Boggiano b78b2df5bb
Reuse devPackageNames if available instead of filtering the dev packages out by looping through all requirements 2020-11-12 10:41:07 +01:00
Jordi Boggiano b574f10d9d
Rename mainPackage to rootPackage in AutoloadGenerator and ensure we use RootPackageInterface 2020-11-12 10:41:06 +01:00
Jordi Boggiano 6a2f9870a7
Warn when init is being used non-interactively without any args passed in, instead of silently overwriting the file 2020-11-12 10:41:05 +01:00
Tom Klingenberg 258f6dc1a2 Reference co-relating code sequence for tty test, refs #9454 2020-11-11 20:27:38 +01:00
Jordi Boggiano 380dce9a6b
Make sure the IO is not interactive when not run in a tty, refs #9454 2020-11-11 16:30:50 +01:00
Jordi Boggiano 87006774b1
Avoid requiring a lock file to run composer remove, fixes #9439 2020-11-11 14:46:10 +01:00
Jordi Boggiano 4468248c46
Merge remote-tracking branch 'Serializator/reject-promise-on-exception-9424' 2020-11-11 14:35:08 +01:00
Jordi Boggiano 1496277697
Disable TTY mode if STDOUT is not a TTY, fixes #9454 2020-11-11 14:27:17 +01:00
Jordi Boggiano 00dfd2c8e1
Fix lock file being parsed when not strictly needed, fixes #9452 2020-11-11 11:57:08 +01:00
Jordi Boggiano 30b98915e9
Move Updating dependencies to the correct point, which is once we have the pool ready 2020-11-11 11:30:37 +01:00
Jordi Boggiano fec44f883c
Always load the current InstalledVersions when writing to disk, fixes #9457 2020-11-11 10:47:54 +01:00
Jordi Boggiano 14d20776a2
Merge pull request #9449 from staabm/patch-3
Remove unnecessary overridden method
2020-11-10 17:05:05 +01:00
Markus Staab bfafead42e
Fixed phpdocs 2020-11-09 21:22:23 +01:00
Markus Staab e8ce5a3db6
Remove unnecessary overridden method
The method just called its parent without further logic
2020-11-09 20:45:40 +01:00
Jordi Boggiano a825581ae2
Remove set_time_limit, fixes #9438 2020-11-09 14:23:24 +01:00
Julian van den Berkmortel 23a1d783db Reject job within "HttpDownloader" when an exception is thrown, refs #9424 2020-11-08 21:53:07 +01:00
Jordi Boggiano c362d001f1
Fix regression handling installs with custom installers not passing a fully qualified path to downloaders, fixes #9431, fixes #9434 2020-11-07 11:17:22 +01:00
Jordi Boggiano f31564ef5b
Fix check-platform-reqs --no-dev to not require lock anymore 2020-11-06 20:39:33 +01:00
Michaël Jacobs 611a9f5dab Drop unused imports 2020-11-06 13:31:02 +01:00
Michaël Jacobs c35a8e77c7 Fix missing directory separator in FileDownloader 2020-11-06 13:31:02 +01:00
Jordi Boggiano 3f6899946b
Avoid using curl when it has been disabled, fixes #9423 2020-11-06 12:55:54 +01:00
Jordi Boggiano bc9336946e
Trim trailing slash in path downloader to avoid symlink issues, and in FileDownloader::getLocalChanges as we append a string without slash, refs #9422 2020-11-05 16:54:06 +01:00
Jordi Boggiano c04c42b7b4
Merge branch '1.10' 2020-11-05 16:37:59 +01:00
Jordi Boggiano 444b91a3ce
Add docs, refs #9422 2020-11-05 16:37:51 +01:00
Jordi Boggiano 3ffdd67e81
Fix running compiler in CI env 2020-11-05 15:00:54 +01:00
Jordi Boggiano 22fef8c51a
Make sure no files are missing from the phar, fixes #9421 2020-11-05 14:55:18 +01:00
Jakub Bouček 8dc5effee7
AutoloadGenerator: Send error HTTP status on error 2020-11-05 09:57:48 +01:00
Jordi Boggiano 56c65a58e2
Make platform-check only check non-dev requires, refs #9412 2020-11-04 23:41:58 +01:00
Jordi Boggiano 8c1355f448
Improve output of platform check further in case errors are hidden 2020-11-04 22:28:17 +01:00
Jordi Boggiano ec960d12b0
Merge remote-tracking branch 'jakubboucek/feature/jb-platform-check-tigger-error' 2020-11-04 21:54:12 +01:00
Jordi Boggiano 6c31744c04
Disable full platform-check for extensions by default, now set to php-only, refs #9412 2020-11-04 21:50:06 +01:00
Jordi Boggiano fc0d724938
Allow configuring gitlab deploy tokens via config command, refs #9373 2020-11-04 21:36:03 +01:00
Jordi Boggiano 04aad524ec
Fix gitlab-domains/github-domains to avoid overwriting the default when another domain is configured, refs #9373 2020-11-04 21:32:32 +01:00
Jordi Boggiano abd61369e4
Revert "Support git@bitbucket.org URLs for git-bitbucket driver", fixes #9400
This reverts commit 985cef790f.
2020-11-04 21:18:40 +01:00
Jordi Boggiano 52faa3cdfb
Merge pull request #9388 from JasonStephensTAMU/remove-windows-junction
Remove Windows junctions first in PathDownloader
2020-11-04 21:05:57 +01:00
Jakub Bouček 3f63bc9205
AutoloadGenerator: Trigger native PHP error on platform checks fails 2020-11-04 12:28:14 +01:00
johnstevenson cda49323eb Remove CURLOPT_SSL_FALSESTART option. Fixes #9405 2020-11-04 11:05:50 +00:00
Jakub Bouček b83b186ac0
AutoloadGenerator: Send error HTTP status on error 2020-11-04 11:18:21 +01:00
Stephan Vock 0747b072be RemoteFileSystem: don't throw zlib error on empty response 2020-11-03 16:01:40 +00:00
Tanel Pipar 8f454c6708 Remove CWD from only the beginning of a path in ZipArchiver
Fixes https://github.com/composer/composer/issues/9403
2020-11-03 12:01:48 +02:00
Jason Stephens f486da4578 Remove junctions first in PathDownloader
When removing a package from a Path repository, ensure Windows junctions
are handled first. This avoids a potential problem using realpath() when
comparing dist and install paths.

See https://bugs.php.net/bug.php?id=77639
2020-11-02 08:30:15 -06:00
Ondřej Mirtes 48b23b1607
Simplify code in FileDownloader.php 2020-11-02 15:10:57 +01:00
Jordi Boggiano 1bf2df19dd
Avoid cleaning up $path in downloaders if it is the CWD (create-project use case), refs #9396 2020-11-02 13:53:44 +01:00
Jordi Boggiano 6cb0aff417
Fix issue preventing cleanup of vendor dir when it is nested in the install path on Windows, fixes #9396 2020-11-02 13:53:43 +01:00
zorn 5aa90baab1 Add new lines to platform reqs issues 2020-11-01 23:39:06 +10:00
Jordi Boggiano 52f98fd228
Merge branch '1.10' 2020-10-30 17:56:22 +01:00
Marco Sirabella 7f936d7dbc
Ignore failures on preg_match for user supplied regex
Fixes #7440

See: https://stackoverflow.com/a/12941133/6381767
2020-10-30 17:56:18 +01:00
Jordi Boggiano 36a9c47830
Fix typo from a637072058 2020-10-30 17:52:29 +01:00
Jordi Boggiano a637072058
Fix canUseCurl logic to allow local_cert/local_pk to reach curl, refs #9384 2020-10-30 17:48:54 +01:00
Jordi Boggiano ce7cc3b444
Merge remote-tracking branch 'rtm-ctrlz/master' 2020-10-30 17:48:07 +01:00
Jordi Boggiano 0a356b8a39
Merge branch '1.10' 2020-10-30 17:30:33 +01:00
Jordi Boggiano 78797df5f8
Fix bitbucket handling, fixes #9369 2020-10-30 17:28:30 +01:00
Jordi Boggiano d25e66ad53
Display auth again for an origin if the auth type changes 2020-10-30 17:15:40 +01:00
Jordi Boggiano 985cef790f
Support git@bitbucket.org URLs for git-bitbucket driver 2020-10-30 17:15:25 +01:00
Jordi Boggiano 1d7ed333c9
Make sure curl is only used when safe to do so, fixes #9381 2020-10-30 16:20:50 +01:00
Jordi Boggiano 8f9486b20e
redirects are handled in userland now so no need for this hack anymore 2020-10-30 15:30:19 +01:00
Jordi Boggiano e0e4d60166
Fix check-platform-reqs to be more clear about what is going on, and add a --lock flag to allow explicitly checking from lock 2020-10-30 15:05:29 +01:00
Ilia Urvachev 4faaf79b58
CurlDownloader enable support for SSL-client certificates 2020-10-30 17:03:21 +03:00
Jordi Boggiano 3f8f549352
Add new flag to ConfigSourceInterface as most likely there are no implementors anyway 2020-10-30 14:22:57 +01:00
Jordi Boggiano f2f3b03fec
Fix config/create-project handling of repositories to prepend them by default as this is most likely the goal, fixes #9371 2020-10-30 14:16:40 +01:00
Jordi Boggiano ffc0f86fc0
Fix warnings in composer require to show when repo prio is at fault, refs #9371 2020-10-30 14:16:40 +01:00
Jordi Boggiano 41daf69c87
Merge pull request #9379 from glaubinix/f/zip-util
Zip: ignore mac osx specific folder when searching for composer.json
2020-10-30 10:48:31 +01:00
Jordi Boggiano 34bdc6cbf2
Detect and hint for solutions for common curl errors, fixes #9376 2020-10-30 09:56:58 +01:00
Stephan Vock d97c37f103 Zip: ignore mac osx specific folder when searching for composer.json 2020-10-29 22:30:12 +00:00
Jordi Boggiano 472f78bff1
Auto-disable misbehaving curl downloader on php 5, refs #9002 2020-10-29 22:39:26 +01:00
johnstevenson 095d133d6b Remove fulluri checks and tidy diagnose output 2020-10-29 10:28:51 +00:00
Nils Adermann 2d91fbc65a PoolBuilder: never mark skipped packages for loading
Reorder code in loadPackage to avoid duplicate calls
2020-10-28 14:07:04 +01:00
Nils Adermann 7ddd1c64af PoolBuilder: On unlock ensure consider all locked requirements for unlocked package 2020-10-27 22:10:15 +01:00
Jordi Boggiano 90a6aa7ec0
Make sure we compare packages to their latest without aliases, fixes #9357 2020-10-27 21:04:00 +01:00
Jordi Boggiano 04e5d725f4
Add docs 2020-10-27 20:53:54 +01:00
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 7dc67fbbad Problem: Update fallback error message for requires without matches 2020-10-27 17:11:24 +01:00
Jordi Boggiano 881ec8c751
Use httpdownloader/curl to process install notifications 2020-10-27 13:50:03 +01:00
Jordi Boggiano d699e6b36c
Make sure global plugins are described as such in loading output, fixes composer/package-versions-deprecated#15 2020-10-27 09:36:59 +01:00
Jordi Boggiano 5d4bcde454
Allow using --locked with the outdated command directly, fixes #8025 2020-10-26 14:47:52 +01:00
Nils Adermann 289972a177 Remove useless null check, follow up to #9345 2020-10-26 13:29:23 +01:00
Jordi Boggiano 3772696ad6
Use IO for output 2020-10-26 12:34:27 +01:00
Nils Adermann cbcc3a3080
Remove trailing commas for function calls 2020-10-26 11:42:41 +01:00
Fabien Potencier d5245387f3 Fix error message 2020-10-26 10:04:10 +01:00
Nils Adermann b72dc7bb78
Clarify --lock option on update further
Specifically state packages do not get updated to new versions, only metadata is updated.
2020-10-25 22:42:50 +01:00
Jordi Boggiano 860a67b776
Update --lock docs, fixes #9315 2020-10-25 22:25:59 +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 769ce48289
Fix typo 2020-10-25 21:25:56 +01:00
Jordi Boggiano 0543b59e06
Merge pull request #9334 from johnstevenson/proxy-streams
Improve proxy error messages for streams
2020-10-25 14:13:40 +01:00
Jordi Boggiano e770cb4dcf
Fix var name 2020-10-25 14:11:02 +01:00
Jordi Boggiano 2d4e1e0dce
Make sure Transaction sorts operations correctly to begin with 2020-10-25 14:06:45 +01:00
johnstevenson c99e19db64 Fix logic (again) 2020-10-25 12:59:01 +00:00
Jordi Boggiano dc88236c07
Make sure operations are executed in batches, including downloads, when a plugin is present which modifies downloads, fixes #9333 2020-10-25 13:49:31 +01:00
Jordi Boggiano 8925b4f596
Attempt fixing handling of root aliases when composer 1 reads composer 2 lock files, fixes #9337 2020-10-25 12:45:33 +01:00
Helmut Hummel d1dfd394c1 Correctly avoid partial updates in require commands
The installer does not support partial updates, when
no lock file is present. The check in require command
to prevent a partial update however does not check whether
a lock file is present, but whether a lock file should be written,
which most likely always is true.

This check is now changed to check if a lock file is actually present.
2020-10-24 21:34:34 +02:00
Jordi Boggiano 9bfddadf3d
Make sure no unknown files get excluded from the phar, fixes #9331 2020-10-24 20:49:07 +02:00
johnstevenson 2a913c7a68 Improve proxy error messages for streams 2020-10-24 18:20:31 +01:00
Jordi Boggiano b4f0f4ddd2
Fix php8 file being missing from phar, refs #9331 2020-10-24 14:58:05 +02:00
Jordi Boggiano 191196de48
Detect broken packagist.org mirrors and fix them on the fly, refs #9297 2020-10-24 11:10:08 +02:00
Jordi Boggiano 62eff8e979
Tweaks to new proxying code, refs #9324 2020-10-24 10:36:39 +02:00
Jordi Boggiano 62fd612e63
Merge remote-tracking branch 'johnstevenson/curl-proxy' 2020-10-24 10:22:52 +02:00
Jordi Boggiano 0d236858ec
Merge branch '1.10' 2020-10-24 09:59:46 +02:00
Jordi Boggiano 25496c199d
Update link to composer 2 release notes 2020-10-24 09:43:02 +02:00
Jordi Boggiano 28c7e38411
Merge remote-tracking branch 'stof/fix_why_not' into 1.10 2020-10-24 09:39:09 +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 49a28f606c
Merge branch '1.10' 2020-10-23 10:38:03 +02:00
Christophe Coevoet 3dd7e829b9 Fix support of provided packages in the why-not command
The version provided by such a rule is defined by the constraint of the
rule, not by the package version.
2020-10-22 19:54:03 +02:00
Nils Adermann dacc21e54f
Merge pull request #9158 from infabo/patch-1
Fix symlink check
2020-10-22 16:04:27 +02:00
terry.kern 0466add822 Also use channel string for update message
https://github.com/composer/composer/pull/9305#issuecomment-714381153
2020-10-22 14:41:16 +02:00
TerryKern e68b52697b Improve readability of version info message
Instead of:

> You are already using composer version 1.10.15 (1 channel).

it shows:

> You are already using composer version 1.10.15 (1.x channel).
2020-10-22 11:54:59 +02:00
Nils Adermann 6409ed0fc2 Validate: Warn about providing or replacing packages you require 2020-10-22 11:28:19 +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 9338401be7 CS: Typehint array, remove unnecessary docblock, call spl_object_hash once 2020-10-21 18:11:24 +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 7f41698157 Solver: on analyze, when reaching last decision > l1 skip other multi rule literals 2020-10-21 13:36:31 +02:00
Jordi Boggiano 14ec957e96
Fix composer show -a usage, fixes #9304 2020-10-20 17:34:07 +02:00
Jordi Boggiano 99a5469b5e
More hints 2020-10-18 13:13:44 +02:00
Chauncey McAskill 1bb87babe6 Fix availability of $urls in FileDownloader
Fixed:
- Ensure manipulations to the first element of $urls in the $download callback are available in $accept and $reject
2020-10-15 16:11:16 -04:00
Jordi Boggiano c46b75de81
Allow any non-numeric version to be used for flex as we can not establish if they are compatible 2020-10-15 16:16:00 +02:00
Jordi Boggiano 59acf9d4aa
Remove dev hint for 2.0, fixes #8738 2020-10-15 14:40:27 +02:00
Ingo Fabbri 750172dc4c
Fix symlink check
Given you have a symlink in one of your path repositories and mirroring-strategy enabled.

```bash
lrwxrwxrwx 1 inf inf    8 27. Aug 17:41 Create.html -> New.html
-rw-r--r-- 1 inf inf  750 27. Aug 17:24 Edit.html
-rw-r--r-- 1 inf inf    0 27. Aug 17:24 List.html
-rw-r--r-- 1 inf inf 5064 27. Aug 17:24 New.html
-rw-r--r-- 1 inf inf  716 27. Aug 17:24 Show.html
```

`$file->getLinkTarget()` just returns a relative path in this example. It does not return an absolute normalized path.
`$sources` is always a normalized path.

`strpos` can never be `0`.

Use `$file->getRealPath()` to fix the strpos-check.
2020-10-15 14:17:53 +02:00
Jordi Boggiano 2ca2ec3d0a
Allow loading flex main branch 2020-10-15 09:53:12 +02:00
Jordi Boggiano 743d551399
Fix using show command to show platform packages, and allow using it to show replacers too by using the replaced name, fixes #7628 2020-10-14 17:58:35 +02:00
Jordi Boggiano 8d0596163c
Rename abstract class back to the previously present SolverOperation, mark it internal, reintroduce some duplication 2020-10-14 17:53:57 +02:00
Bezpiatov 140de5480d Fixed variable usage 2020-10-14 17:58:39 +03:00
Bezpiatov 9a5121ed27 Refactor Operation classes to use constants instead of strings for comparison 2020-10-14 17:56:42 +03:00
Jordi Boggiano e7d99c37b3
Fix show --locked to avoid listing all the things 2020-10-14 15:41:53 +02:00
Jordi Boggiano da1357c663
Avoid showing alias versions in show command, show the original version 2020-10-14 15:41:36 +02:00
Jordi Boggiano 9492dc7f7c
Make sure symfony/flex does not get loaded in a buggy version to avoid bogus issue reports 2020-10-14 13:48:55 +02:00
Jordi Boggiano c5d8a13bc4
Bump curl timeout to 300 2020-10-14 13:30:12 +02:00
Jordi Boggiano 34dd9e19e1
Add curl/zip ext info to diagnose command 2020-10-14 13:29:41 +02:00
Nils Adermann 8a2bae82ab Improve docblocks on fixed/locked/fixedLocked packages in request
Also fixes two small code review issues
2020-10-14 11:46:13 +02: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 9ca7457698
Check whether remove command successfully removed the target packages, fixes #6998 2020-10-13 16:18:28 +02:00
Jordi Boggiano 7ea6d5d2e7
Merge branch '1.10' 2020-10-13 16:00:04 +02:00
Jordi Boggiano aac1a25ee3
Merge pull request #9278 from Seldaek/plugin-helpers
Plugin helpers for v2
2020-10-13 15:49:23 +02:00
Nicolas Grekas 4feed8b85c Fix parsing "branch-version" 2020-10-13 15:43:12 +02:00
Jordi Boggiano bafdf9f705
Merge branch '1.10' 2020-10-13 14:47:23 +02:00
Jordi Boggiano d2d606ced2
Merge pull request #9273 from nicolas-grekas/dev-version
Add support for "extra.branch-version"
2020-10-13 14:02:41 +02:00
Nicolas Grekas 893fbfcb89 Add support for "extra.branch-version" 2020-10-13 13:56:18 +02:00
Jordi Boggiano 8ad33298ff
Fix regression, refs #9204 2020-10-13 12:50:58 +02:00
Jordi Boggiano badd1f2146
Remove silly default values of false on Installer class, refs #9204 2020-10-13 12:33:43 +02:00
Jordi Boggiano 24abd233ec
Merge branch 'master' into code-improvements 2020-10-13 12:23:13 +02:00
Jordi Boggiano 3c25d180e6
Add detailed notes about events in upgrade guide, add COMPOSER_DEBUG_EVENTS env var for debugging events 2020-10-13 12:08:42 +02:00
Jordi Boggiano f87b1642bc
Expand docs 2020-10-13 11:09:13 +02:00
Jordi Boggiano 431dc0d526
Add sync helper to give plugins utilities to work with async stuff more easily when one does not care about async 2020-10-13 11:04:16 +02:00
Jordi Boggiano 7917a7e757
Allow fetching the http downloader and process executor from the loop 2020-10-13 10:28:36 +02:00
Jordi Boggiano 0775e261c5
Merge remote-tracking branch 'lstrojny/apcu-prefix' 2020-10-13 10:19:30 +02:00
Jordi Boggiano a1b781a302
Merge pull request #9220 from ffraenz/pr
Composer 2: Adapt file download cache keys to changed processed URLs
2020-10-12 16:55:35 +02:00
Jordi Boggiano adeabdbd56
Merge branch '1.10' 2020-10-12 15:22:30 +02:00
Jordi Boggiano bc1cb1636d
Remove dead code, fixes #9277 2020-10-12 15:22:21 +02:00
Jordi Boggiano 09ef026d43
Remove OperationInterface::getReason, closes #9230, closes #9263 2020-10-12 12:31:54 +02:00
Jordi Boggiano d204eb4814
Merge branch '1.10' 2020-10-12 10:54:43 +02:00
Jordi Boggiano 6bf136489f
Ignore the COMPOSER env var when executing global scope commands, fixes #9259 2020-10-12 10:53:35 +02:00
Jordi Boggiano 9c4b00be67
Add -w/-W to docs, refs #9257 2020-10-12 10:36:12 +02:00
Jordi Boggiano de3de0697e
Merge pull request #9257 from flavioheleno/improv/short-with-deps
With-dependencies alias
2020-10-12 10:29:07 +02:00
Jordi Boggiano 6f77c5f5ea
Avoid adding aliased locked packages twice in the LockArrayRepository, fixes #9240 2020-10-12 10:17:06 +02:00
Jordi Boggiano 9528ce7057
Fix invalid usage of Link class, fixes #9252 2020-10-12 09:22:23 +02:00
Jordi Boggiano f966de94a9
Merge branch '1.10' 2020-10-12 08:33:39 +02:00
Jordi Boggiano 159bb84fa6
Allow running the config command to disable tls even if openssl is not present, fixes #9198 2020-10-12 08:16:36 +02:00
Jordi Boggiano 28fe3baf9c
Disable secure-http automatically when disable-tls is enabled, fixes #9235 2020-10-12 07:57:14 +02:00
Jordi Boggiano 03b8c3db3f
Merge branch '1.10' 2020-10-08 14:38:41 +02:00
Jordi Boggiano 791bbc80a4
Backport some fixes from 2.0, and fix sorting to sort remote branches after local ones, refs #9270 2020-10-08 14:26:04 +02:00
Jordi Boggiano 6698e0bafa
Merge remote-tracking branch 'naderman/version-guess-remotes' into 1.10 2020-10-08 14:01:25 +02:00
Nils Adermann b3c465d55a VersionGuesser: local branches still need to be considered 2020-10-07 15:10:20 +02:00
Nils Adermann ad643d9957 VersionGuesser: Analyze remote origin and upstream branches too 2020-10-07 14:21:22 +02:00
Fränz Friederes 369c2ff552
Implement PR code style feedback 2020-10-05 20:52:27 +02:00
Grégoire Pineau bfb4abfb56
Fixed description of StatusCommand: It do list all changes in vendor, not only for "source" ones
I tested it, and even with "dist" packages, the status command is able to find modified vendor 
(And that's amazing, thanks)
2020-10-02 10:11:47 +02:00
Flavio Heleno 9d544d98b3 Added short flags for 'with-dependencies' and 'with-all-dependencies' 2020-10-01 18:35:35 -03:00
Graham Campbell 0eb31bd027
Fixed incorrect private annotation 2020-10-01 20:24:19 +01:00
Simon Berger 2223b93efd Several small code improvements 2020-09-26 00:55:19 +02:00
Simon Berger 80d71ccb3f Merged isset, unset and str_replace calls 2020-09-26 00:55:19 +02:00
Jordi Boggiano d6b39b4c55
Fix syntax error & improve handling 2020-09-24 11:35:38 +02:00
Christophe Coevoet bcd8a73e8c
Fix support for running diagnose without openssl
The diagnose command already warns when openssl is not available. But the command was failing later when displaying the Openssl version.
2020-09-22 18:49:53 +02:00
Michael Telgmann a4509d28e7
Introduce constants for Composer\Package\Link types 2020-09-21 14:22:06 +02:00
Michael Telgmann 4f4c299015
Add pretty constraint to links in PlatformRepository
fixes #9210
2020-09-21 14:18:34 +02:00
Jordi Boggiano 2a36c3a70a
Minor tweaks 2020-09-21 13:26:53 +02:00
Simon Berger 4e8a36556c Removed deprecated code from 1.x 2020-09-20 17:59:45 +02:00
Simon Berger 974e7ba296 Removed unneccesary elseifs 2020-09-20 02:16:28 +02:00
Simon Berger 80a75e9959 Minor code improvements 2020-09-20 02:16:28 +02:00
Simon Berger 7053b6f761 Fixed function case declaration <> call 2020-09-20 02:16:28 +02:00
Simon Berger 33d7a64df9 Removed unused private functions 2020-09-20 02:16:28 +02:00
Simon Berger a6475a7118 Removed unused variables, properties and parameters of private functions 2020-09-20 02:16:28 +02:00
Simon Berger 002fd39bc6 Removed passing of parameters with default value 2020-09-20 02:16:28 +02:00
Simon Berger cda6e8bea6 Removed unnecessary property initialization or declaration 2020-09-20 02:16:28 +02:00
Simon Berger 6b3b51e299 Fixed $this usage on static functions 2020-09-20 02:16:28 +02:00
Fränz Friederes 7a49cda9f6
Fix PHPDoc types on new PreFileDownloadEvent property 2020-09-16 20:13:20 +02:00
Lars Strojny 696f27ca83
Enable APCu if prefix is set 2020-09-16 13:44:51 +02:00
Fränz Friederes a1a3e29f52
Fix using inside anonymous function 2020-09-16 11:39:34 +02:00
Lars Strojny 6899060f6e
Remove superfluous use 2020-09-16 10:54:52 +02:00
Fränz Friederes 57e1ce6cdb
Change the file download cache key with the processed URL, implement custom cache key 2020-09-16 10:54:14 +02:00
Lars Strojny 7db8b33a9e
Restore 2020-09-16 10:53:55 +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 99300f6dc0
Merge pull request #9206 from staabm/patch-3
Improve error message further
2020-09-14 21:25:21 +02:00
Markus Staab cf9786f112
Improve error message further 2020-09-12 11:13:37 +02:00
Simon Berger 74e02193a8 Do not hard fail on lazy repository when network is disabled and no package cache exists 2020-09-11 21:35:20 +02:00
Jordi Boggiano 6cf4ba051c
Update messaging about plugin errors 2020-09-11 13:43:32 +02:00
Jordi Boggiano bb96b04f4a
Remove dead code 2020-09-10 16:05:31 +02:00
Jordi Boggiano 2a82371adf
Rename available-package-regexes to available-package-patterns and switch negated function around, refs #9197 2020-09-10 14:58:05 +02:00
Mike Baynton 66a767c065 specify covered names with regexes in 2.x repos
This supplements the available-packages list so that repositories may
rule themselves out of a given name (and thus not be probed with lazy
load requests) by regex, as well as by exact name match.

The use case is sizeable and varying supplemental Composer repositories
such as packages.drupal.org, which otherwise must either maintain a list
of over 10k package names in their root packages.json or accept lots of
lazy-load requests for unrelated packages that will 404.
2020-09-09 21:43:46 -05:00
Jordi Boggiano 0408207e35
Merge branch '1.10' 2020-09-09 11:49:04 +02:00
Jordi Boggiano 4a02768591
Fail hard if an invalid root alias is detected 2020-09-09 11:44:05 +02:00
Jordi Boggiano 6f91e038ea
Merge branch '1.10' 2020-09-08 17:04:03 +02:00
Jordi Boggiano c6d0309d48
Merge pull request #9188 from simonberger/fix-php53-closure-self-usage
Fix self usage in closures results in fatal error on PHP 5.3
2020-09-08 12:12:59 +02:00
Simon Berger 7ef87626ac Fixed self usage in closure fails on PHP 5.3 2020-09-08 12:01:51 +02:00
Jordi Boggiano 57b4016f8a
Show default value instead of optional, refs #9181 2020-09-08 12:01:10 +02:00
Jordi Boggiano 5555b04cea
Merge pull request #9181 from shrink/feature/create-project-package-prompt
 Ask for target directory when using `create-project`
2020-09-08 11:56:22 +02:00
Jordi Boggiano 7859fe72e8
Fix line wrapping 2020-09-08 11:15:24 +02:00
Jordi Boggiano 9dc125f79c
Fix cleanup of useless feature_versions 2020-09-08 11:14:13 +02:00
Simon Berger bae227ec2d Changed all substr calls used to compare fragments of text to strpos
Some additional code cleanups in those classes

Reverted change causing issues
2020-09-07 21:08:34 +02:00
Jordi Boggiano 8694077564
Merge pull request #9177 from simonberger/reduce-requests
Re-Fetch cached packages only once in a run
2020-09-07 17:01:46 +02:00
Jordi Boggiano cb3c71a18a
Always assume the cache file is fresh when loading a package again which was already loaded, even if it lacks a last-modified header. 2020-09-07 17:00:02 +02:00
Jordi Boggiano 943c7a6433
Merge pull request #9165 from bpesch/master
Performance improvements
2020-09-07 16:25:14 +02:00
Jordi Boggiano b8ebc7be5f
Revert a few changes to ConfigCommand 2020-09-07 16:24:15 +02:00
Jordi Boggiano b1cbc08ec0
Allow false as well as repository value, refs #9165 2020-09-07 16:22:28 +02:00
Jordi Boggiano cc1874e21b
Merge pull request #9179 from simonberger/fix-duplicated-code
Moved duplicated table render code to a new method in BaseCommand
2020-09-07 15:52:17 +02:00
Jordi Boggiano 45653c55d8
Handle authentication for api domains of GitHub/Bitbucket, fixes #9173 2020-09-07 15:29:41 +02:00
Jordi Boggiano e6b45e853a
Fix status command handling of symlinks, and especially broken ones, fixes #9169 2020-09-07 13:54:14 +02:00
Jordi Boggiano 199696d120
Fix undefined method call 2020-09-07 11:42:24 +02:00
Jordi Boggiano 070530534d
Merge pull request #9176 from glaubinix/t/remote-file-system-response-decode
Composer2 RemoteFileSystem: response decode for TransportException
2020-09-04 13:13:51 +02:00
Stephan 32a0563443 RemoteFileSystem: catch decode errors for content length mismatch 2020-09-04 11:33:36 +01:00
Jordi Boggiano fc462ab978
Merge branch '1.10' 2020-09-04 12:18:24 +02:00
Jordi Boggiano b159e4da7e
Merge pull request #9172 from Toflar/platform-repo-cleanup
Consistently reuse new PlatformRepository::isPlatformPackage()
2020-09-04 12:16:55 +02:00
Alexander M. Turek fc961dce70 Call call_user_func_array() with a numeric arguments array. 2020-09-03 23:26:09 +02:00
Samuel Ryan a66db48673
Ask for target directory when using `create-project` 2020-09-03 17:40:09 +01:00
Simon Berger 687f886d56 Moved duplicated table render code to a new method in BaseCommand 2020-09-03 15:56:04 +02:00
Simon Berger 9516d0dc98 Re-Fetch cached packages only once in a run 2020-09-03 08:18:07 +02:00
Stephan 3b2d91975e RemoteFileSystem: response decode for TransportException 2020-09-02 16:55:37 +01:00
Yanick Witschi bd6f62c535 Consistently reuse the new PlatformRepository::isPlatformPackage() method 2020-09-01 17:19:19 +02:00
Nils Adermann 4ac9f44571 Clear up PoolBuilder comment after code move 2020-09-01 16:57:24 +02:00
Stephan 773635e355 ComposerRepository: avoid notice if includes do not provide a sha1 2020-09-01 12:21:36 +01:00
Nils Adermann 7b990f3767 PoolBuilder: Move merging of constaints to be loaded into relevant section 2020-09-01 12:28:22 +02:00
Nils Adermann b2670945bd PoolBuilder: clear up comment, matching and identity are different for constraints 2020-09-01 12:23:51 +02:00
username fc87caf639 Provide correct parameter data type 2020-08-29 21:21:15 +02:00
username 113adbcd87 Sort conditions by cost 2020-08-29 21:20:30 +02:00
username 98462292c0 Sort conditions by cost 2020-08-29 21:19:52 +02:00
username abedc0dc42 Sort conditions by cost 2020-08-29 21:19:20 +02:00
username 17ae93bc9c Remove unnecessary method call 2020-08-29 21:18:31 +02:00
username 18009af023 Inline variable 2020-08-29 21:16:58 +02:00
username e719be501e Remove unnecessary method call 2020-08-29 21:15:52 +02:00
username 459e2473c8 Remove unused variable 2020-08-29 21:15:15 +02:00
username 3f09ae0737 Simplify duplicate case 2020-08-29 21:13:54 +02:00
username 46cc387598 Split workflows 2020-08-29 21:12:07 +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
Yanick Witschi a1e1cd8fa4 Do not trigger Intervals::isSubsetOf() over and over again for platform packages 2020-08-28 14:34:50 +02:00
Jordi Boggiano f18d91bd58
Fix pre/post-package-install/update/uninstall events receiving a partial list of operations, fixes #9079 2020-08-27 11:25:43 +02:00
Jordi Boggiano c3db4614c9
Also remove credentials from cache dirs in git/svn drivers, fixes #7439, refs #9155 2020-08-27 10:19:23 +02:00
Jordi Boggiano 98862f5408
Merge pull request #9155 from Ayesh/hide-passwords-cache
Sanitize repo URLs to mask HTTP auth passwords from cache directory
2020-08-27 10:12:56 +02:00
Jordi Boggiano 9e77514764
Merge pull request #9156 from Ayesh/gitlab-repos
AuthHelper: Allow fall-through GitLab-specific HTTP headers for auth
2020-08-27 10:06:28 +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
Ayesh Karunaratne 87573aab27
Sanitize repo URLs to mask HTTP auth passwords from cache directory
When a Composer repository is cached, a directory name is generated created stored package meta information fetched from that repository.
The cache directory can contain HTTP basic auth tokens, or access_token query parameters that end up in the directory name of the cache directory.

Discovered when trying out [GitLab composer repository feature](https://php.watch/articles/composer-gitlab-repositories), and the HTTP password was visible in a `composer update -vvv` command.

Using passwords/tokens in the URL is fundamentally a bad idea, but Composer already has `\Composer\Util\Url::sanitize()` that tries to mitigate such cases, and this same function is applied to the repo URL before deciding the name of the repo cache directory.
2020-08-26 23:01:00 +07:00
Iskander (Alex) Sharipov dc1fd92b9b
Util/Zip: fix strpos args order
`strpos()` first argument is a haystack, not a needle.

`strpos('x', $s)` is identical to `$s === 'x'` which is probably not what we want here.
2020-08-26 17:23:10 +03:00
Jordi Boggiano 9a04ecefbf
Merge branch 'master' into filter-packages 2020-08-25 16:51:28 +02:00
Jordi Boggiano f516d36f6f
Make sure Request::requireName can not be called twice for the same name 2020-08-25 15:37:28 +02:00
Jordi Boggiano 90332f1dbd
Add a readonly mode to the cache, fixes #9150 2020-08-25 13:55:32 +02:00
Jordi Boggiano 875a4784ed
Reorg config class a little 2020-08-25 13:54:29 +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 05e9fe936f
Merge branch '1.10' 2020-08-25 08:59:07 +02:00
Jordi Boggiano b847c4dc3a
Validate licenses correctly even when proprietary is combined with some other license, fixes #9144 2020-08-25 08:58:43 +02:00
Stephan d140a842fa RemoteFilesystem: avoid warning when setting max file size 2020-08-24 13:53:07 +01:00
Jordi Boggiano 2bd1bd4194
Merge pull request #9142 from oleg-andreyev/fixing-error-message-for-higher-priority-repo
fixing error message for higher repository priority when it provides only a dev-branch
2020-08-23 16:52:55 +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 e5ba99cf67
Merge branch '1.10' 2020-08-23 15:18:48 +02:00
Jordi Boggiano 9ea9d20b21
Merge pull request #9130 from glaubinix/t/max-file-size
Downloader: add a max_file_size option to prevent too big files to be downloaded
2020-08-23 13:37:12 +02:00
Stephan a16f32484b Downloader: add a max_file_size to prevent too big files to be downloaded 2020-08-22 19:37:42 +01: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 a83588f568
The proper fix 2020-08-18 16:30:47 +02:00
Lars Strojny 4e06aa051a
Check if inet_pton() exists 2020-08-18 16:00:44 +02:00
johnstevenson 3be62a9fda Fix openssl_free_key deprecation notice in PHP 8 2020-08-14 17:45:41 +01:00
Jordi Boggiano 00e268cdbf
Clear Intervals cache when we are done with it 2020-08-13 16:45:43 +02:00
Markus Staab fdff3aeaba
emit github action formatted error messages (#9120) 2020-08-13 16:37:32 +02:00
Jordi Boggiano c845d66818
Lowercase ext- package names, refs #9093 2020-08-13 15:48:41 +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 ff757e649c
Use pool to match packages to avoid getting packages without ids, fixes #9094 2020-08-12 12:41:19 +02:00
Jordi Boggiano 826db3db5e
Used locked repo only if it is present 2020-08-12 11:11:37 +02:00
Jordi Boggiano c0eb9834fe
Merge pull request #9116 from ryanaslett/patch-1
Update PathDownloader.php
2020-08-11 09:54:09 +02:00
Jordi Boggiano 51b1a752e3
Merge pull request #9098 from GrahamCampbell/patch-1
Use consistent phpdoc nullable syntax
2020-08-11 09:52:09 +02:00
Jordi Boggiano 7649c8438d
Fix exception when using create-project in current directory, fixes #9073 2020-08-11 09:42:42 +02:00
Ryan Aslett c0309f22d7
Update PathDownloader.php
If a path repository points at a directory that is managed by composer installers, the path that gets set ends up being relative, and this check fails to see that the source is already present, and therefore removes it.

Since ->install is already using realpath around the $path argument, remove should as well.

For an example repository that demonstrates this bug See: https://github.com/ryanaslett/pathrepotestcase
2020-08-10 12:51:48 -07:00
Graham Campbell 019febb5fa
Use consistent phpdoc nullable syntax 2020-08-02 15:10:54 +01:00
Jordi Boggiano 2d3905157d
Merge branch '1.10' 2020-07-30 21:06:51 +02:00
Jordi Boggiano 00f712a7c4
Revert "Allow specifying a version requirement for CLDR" 2020-07-30 21:00:43 +02:00
Jordi Boggiano 387e828993
Promote next major version when running stable self-update, and prevent self-update from automatically upgrading to the next major release 2020-07-30 16:32:29 +02:00
Jordi Boggiano 5bd61ac55c
Cache versions data to avoid redownloading it twice during self-update 2020-07-30 16:32:29 +02:00
Jordi Boggiano 7028d0ce27
Merge pull request #9077 from glaubinix/f/api-data-detection
Driver: only cache composer.json file without API data to disk
2020-07-30 15:32:10 +02:00
Jordi Boggiano daae46e1e0
Merge pull request #9085 from lstrojny/lib-cldr
Allow specifying a version requirement for CLDR
2020-07-30 14:53:46 +02:00
Jordi Boggiano 12d6759888
Fail hard instead of skipping branches/tags quietly when parsing VCS repos if 401/403 are returned, fixes #9087 2020-07-30 14:38:49 +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
Jordi Boggiano 79813b2f77
Fix detection of git refs to be more strict 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
Stephan b25296ef74 Driver: only cache composer.json file without API data to disk 2020-07-27 13:26:57 +01:00
Tyson Andre e5c7835d57 Properly support PHP 8.0 Named Arguments
See https://wiki.php.net/rfc/named_params#internal_functions
(implemented but not yet merged)

An ArgumentCountError will be thrown when passing variadic arguments to
a function with call_user_func_array() if extra unknown named arguments
are encountered.

Fatal error: Uncaught ArgumentCountError: array_merge() does not accept unknown named parameters in phar:///path/to/composer.phar/src/Composer/DependencyResolver/DefaultPolicy.php:84

(e.g. for `['phpunit/phpunit' => [72]]`)
2020-07-26 15:28:47 -04:00
Andreas Möller ac055e5718
Fix: Reference 2020-07-21 23:25:05 +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
Markus Staab 4e1dd4bfdf
added phpdocs in StreamContextFactory 2020-07-20 20:49:00 +02:00
Jordi Boggiano 750a92b4b7
Fix headers array format 2020-07-17 17:29:00 +02:00
Jordi Boggiano 8cec8bd546
Allow verify_peer/verify_peer_name http options to be handled by curl downloader 2020-07-17 17:22:41 +02:00
Jordi Boggiano c3d40ae79a
Fix passing of repo http options in async requests 2020-07-17 17:16:19 +02:00
Jordi Boggiano 071350286f
Compact constraints to avoid ending up with very long multi constraints 2020-07-17 16:16:58 +02:00
Jordi Boggiano 22367a68f9
Avoid loading same packages multiple times 2020-07-17 16:16:58 +02:00
Jordi Boggiano 3577070efa
Fix docblocks 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 c3028c02d9
Merge branch '1.10' 2020-07-17 13:18:02 +02:00
Jordi Boggiano a474dee236
Merge remote-tracking branch 'johnstevenson/elevate2' into 1.10 2020-07-17 13:01:24 +02:00
Jordi Boggiano eac03e16e7
Reuse repository manager and others directly from the Composer instance, refs #9057 2020-07-17 12:05:07 +02:00
Jordi Boggiano 433968de17
Fix usage of create-project with local filesystem repos 2020-07-17 11:30:03 +02:00
Jordi Boggiano 201533e16f
Fix return value 2020-07-17 11:05:57 +02:00
Jordi Boggiano a2ab6f2b54
Add support for multiple --repository additions in create-project, and make --add-repository delete the lock file, fixes #8853 2020-07-17 10:38:46 +02:00
johnstevenson 8ddbae358d Remove cygwin php handling in UAC elevation
When called from a native shell and using cygwin PHP, cygpath translates
`/tmp` to `User\AppData\Local\Temp`, rather than `/cygdrive/.../tmp`.
This change does not affect using windows PHP from a Cygwin shell.
2020-07-16 17:20:12 +01: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 37b1e0fffd
Merge pull request #8955 from tlamy/OutdatedNoDevOption
Outdated/Show: no dev option
2020-07-16 15:40:09 +02:00
Jordi Boggiano 6869a1a5cb
Clean up a little to make impl less invasive and to handle replacers/providers 2020-07-16 15:37:12 +02:00
Shaun Johnston b4ecca5d0b Supply event dispatcher in Create Project Command
This update allows composer plugins to intercept the
create-project command to inject additional functionality such as
providing additional remote filesystem handling.
2020-07-16 23:34:30 +10:00
Jordi Boggiano 7cecc6ad3f
Avoid attempting to use /etc/xdg as base config home, fixes #9053, refs #9045 2020-07-16 14:59:49 +02:00
Jordi Boggiano 89d35af83d
Mark transaction classes internal, refs #8827 2020-07-16 13:59:49 +02:00
Jordi Boggiano 8b934a415f
Merge branch '1.10' 2020-07-16 12:27:00 +02:00
Jordi Boggiano 6cb4dc41b8
Fix bitbucket detection of redirects to login page, fixes #9041 2020-07-16 12:26:48 +02:00
johnstevenson 57f91d01c7
Fix doc comment 2020-07-16 11:53:55 +02:00
johnstevenson 272654d6e2
Fixed spelling mistake 2020-07-16 11:53:55 +02:00
johnstevenson cae913c434
Add Windows UAC elevation to self-update command
If self-update fails on Windows due to file permission issues, a .vbs
script is used to elevate a call to the cmd.exe `move` command.
Unfortunately it is not possible to know if the user cancelled the UAC
prompt using this method - it is possible using a Powershell script, but
flashing hidden windows make this a less desirable option.

The only downside is that a UAC invoked process is asynchronous, so a
300 millisecond timeout is used to allow cmd.exe to do its stuff.
Therefore if the OS is busy the script may finish first and incorrectly
report that the file has not been written.
2020-07-16 11:53:55 +02:00
Stephan fb0ad7c900 GitLab: clarify interactive auth prompt 2020-07-15 16:18:21 +01:00
Jordi Boggiano 870fdc59df
Merge remote-tracking branch 'tomekpryjma/fix-issue-9033' 2020-07-15 17:02:16 +02:00
Jordi Boggiano 10590dc519
Improve support for XDG and default to XDG config dir if both that and ~/.composer are available, fixes #9045 2020-07-15 10:56:13 +02:00
Tomek 23c32ed6d3 Fix #9033 - inconsistent behavior with minor-only flag 2020-07-14 23:06:20 +01:00
Jordi Boggiano 92ef439666
Merge branch '1.10' 2020-07-07 21:12:27 +02:00
Jordi Boggiano d2d3aa8494
Fix parsing of # in funding links, fixes composer/packagist#1097, closes #9035 2020-07-07 21:12:04 +02:00
Jordi Boggiano d7b1248508
Create pool before reading package ids as the pool creation reassigns package ids, fixes #9034 2020-07-04 12:00:37 +02:00
Jordi Boggiano 1fa6f4c83c
Add a default signal handler to avoid having the SIGINTs ignored, fixes #9027 2020-07-01 11:37:38 +02:00
Jordi Boggiano ee4afa29e7
Include dev packages in locked package listings for show command 2020-07-01 11:17:52 +02:00
Jordi Boggiano 70f211923b
Add support for list URL in composer repos, fixes #9009 2020-07-01 11:16:38 +02:00
Jordi Boggiano 1824637dab
Merge pull request #8999 from naderman/fix-solver-bug-exception-7051
Fix solver bug exception 7051
2020-06-27 23:50:55 +02:00
Nils Adermann 3f5dde9873 Solver: Ensure multi conflict rules still get added to learned pool 2020-06-26 22:04:17 +02:00
Nils Adermann edef748169 Solver: Clarify when/why undecided literals can get skipped in analyze 2020-06-26 21:55:03 +02:00
Nils Adermann 851050e85c Solver: multiconflict analyze handles positive decision same as regular literal 2020-06-26 21:51:02 +02:00
Nils Adermann 6e05345be7 Solver: Move analyze handling of multiconflict rule to clearer location
This way we're not looking at the previous decision at the top of the
loop but working with the current decision at the bottom
2020-06-26 21:51:02 +02:00
Nils Adermann b34f916470 Solver: No need to check previous decision if we reached the first one 2020-06-26 21:51:02 +02:00
Nils Adermann 2631210493 Solver: analyze multi conflict rules in conflict resolution correctly 2020-06-26 21:51:02 +02:00
Jordi Boggiano 5ef398ebb9
Fix 5.3 support 2020-06-26 16:58: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 4a2ea3c67a
Fix var name 2020-06-25 09:16:23 +02:00
Jordi Boggiano 86af5e5c6e
Remove conflict between trunk and master, as they do not normalize anymore 2020-06-25 08:58:08 +02:00
Jordi Boggiano e2f1e8aed6
Allow optimizing fetching of dev versions only if no other stability is needed 2020-06-25 08:57:42 +02:00
Jordi Boggiano a133e694d0
Speed up fund command fetching of latest data and make sure it uses default branch info 2020-06-25 08:57:18 +02:00
Jordi Boggiano 6f9b39180c
Add phpdocs 2020-06-25 08:56:46 +02:00
Jordi Boggiano 05dacbdabb
Rename DEV_MASTER_ALIAS to DEFAULT_BRANCH_ALIAS 2020-06-25 08:56:14 +02:00
Jordi Boggiano 821e575658
Merge branch '1.10' 2020-06-24 21:35:38 +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
Jordi Boggiano a5e608fb73
Merge pull request #9008 from Ayesh/strtr-improvements
Replace cascading str_replace() calls with strtr()
2020-06-24 15:06:52 +02:00
Jonas Drieghe eea7564c9e Revert accidental rename of $dependencies variable in unrelated code branch 2020-06-24 07:28:22 +02:00
Jonas Drieghe d5d956df4d Use correct variable name 2020-06-23 19:50:27 +02:00
Jonas Drieghe 73a721c7e5 Add the missing summary format to command-line help text 2020-06-23 19:45:26 +02:00
Jonas Drieghe ec6e05d55f Sort licenses so that the most used license will appear first 2020-06-23 19:44:12 +02:00
Jonas Drieghe 668655c21a Rename variable for clarity 2020-06-23 19:43:27 +02:00
Stephan Vock 52332d994e GitDriver: use authentication for supports check 2020-06-23 13:06:30 +01:00
Ayesh Karunaratne e3c75b3e87
Replace cascading str_replace() calls with strtr()
Replaces cascading str_replace() calls with a single strtr() call that makes it mode readable and provides a micro performance improvement.
Some instances of cascading str_replace() calls were not refactored due to the potential recurring replacement patterns.
2020-06-23 04:10:26 +07:00
Yanick Witschi ea0ce9dd7d Merge branch 'master' into filter-packages 2020-06-22 18:38:16 +02:00
Jordi Boggiano e76fc2dc39
Avoid blocking when guessing default branch name, fixes #9001 2020-06-22 10:48:15 +02:00
Nils Adermann edd2aa27db
Add missing isVerbose argument to problem formatting call 2020-06-19 23:31:11 +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 6349764c2d
Fix root package handling of default-branch 2020-06-19 15:34:28 +02:00
Jordi Boggiano 923f198a1f
Fix default-branch attribute on package files, and add it to schema 2020-06-19 15:33:25 +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 4682efcf77
Support also default_branch flag in cached versions 2020-06-19 09:45:39 +02:00
Jordi Boggiano 52afa5ef16
Fix handling of default branches 2020-06-17 17:54:06 +02:00
Jordi Boggiano f70d527f4f
Fix git tests 2020-06-17 17:53:00 +02:00
Jordi Boggiano ce368f8269
Store default branch info inside metadata 2020-06-17 17:41:38 +02:00
Jordi Boggiano 04381c70fe
Merge branch '1.10' 2020-06-17 17:37:39 +02:00
Jordi Boggiano cb1f3899bb
Revert "Store default branch info inside metadata"
This reverts commit 472a62152d.
2020-06-17 17:32:26 +02:00
Michael Stucki 0278e7453d
Clean Git repos during discard 2020-06-17 17:00:35 +02:00
Jordi Boggiano 8c0ecf7337
Clarify why a dev tag was ignored, fixes #8951 2020-06-17 16:41:33 +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 472a62152d
Store default branch info inside metadata 2020-06-17 16:09:38 +02:00
Thomas Lamy 722bbce72f Merge remote-tracking branch 'upstream/master' into OutdatedNoDevOption 2020-06-17 13:03:15 +02:00
Jordi Boggiano 83c64a9d19
Reuse operation formatting logic in downloaders 2020-06-17 12:33:02 +02:00
Jordi Boggiano aaef3ff5ff
Improve error reporting when unzip fails due to race condition in unhandled Promise, refs #8988 2020-06-17 10:44:50 +02:00
Jordi Boggiano d1fedc3bd6
Restore old behavior of wiping dir contents before installing, fixes #8988 2020-06-17 10:42:05 +02:00
Jordi Boggiano 80d1b1a34c
Merge pull request #8987 from GrahamCampbell/patch-2
Marked getRootAliasesPerPackage as static
2020-06-17 09:22:18 +02:00
Jordi Boggiano 5ec6b81157
Merge pull request #8986 from GrahamCampbell/patch-1
Phpdoc tweaks
2020-06-17 09:22:04 +02:00
Jordi Boggiano c8731598cc
Merge branch '1.10' 2020-06-16 17:16:42 +02:00
Jordi Boggiano da572f1fdc
Merge remote-tracking branch 'GrahamCampbell/allow-list' into 1.10 2020-06-16 16:52:54 +02:00
Jordi Boggiano 09fc263d37
Fix status command bug 2020-06-16 16:27:36 +02:00
Graham Campbell 643852a2b0
Marked getRootAliasesPerPackage as static 2020-06-16 13:48:59 +01:00
Graham Campbell a4f4101346
Phpdoc tweaks 2020-06-16 13:46:20 +01:00
Jordi Boggiano 0d369c87bc
Merge pull request #8975 from ffraenz/pr
Composer 2: Allow plugins to override the URL before triggering the download
2020-06-16 14:44:03 +02:00
Jordi Boggiano 5aae7f4f20
Merge remote-tracking branch 'jderusse/optimize-compile' 2020-06-16 14:18:03 +02:00
Jordi Boggiano aea074308c
Update batching to install plugin deps before the plugin (alone an own batch) 2020-06-16 14:07:30 +02:00
Jordi Boggiano 085fe4e7e5
Add --no-progress support and a few more fixes 2020-06-16 14:00:24 +02:00
Jordi Boggiano 9c78eda7db
Fix FileDownloader::update impl to handle promises 2020-06-16 14:00:23 +02:00
Jordi Boggiano 87a0fc5506
Execute operations in batches to make sure plugins install in the expected order 2020-06-16 14:00:22 +02:00
Jordi Boggiano 9f380d606c
Add basic progress bar capability while waiting for jobs to complete 2020-06-16 14:00:22 +02:00
Jordi Boggiano b1e15c7725
Fix a couple async bugs 2020-06-16 14:00:21 +02:00
Jordi Boggiano 3af617efe8
Parallelize zip extraction using async unzip processes 2020-06-16 14:00:20 +02:00
Jordi Boggiano 8f6e82f562
Add support for aborting running promises cleanly 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 d5286d0cb8
Add a way for FileDownloader subclasses to add paths to the cleanup stage 2020-06-16 14:00:18 +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
Jordi Boggiano da6c0635d2
Merge pull request #8980 from stucki/discard-using-git-clean
Discard changes is incomplete if Git project has additional folders
2020-06-16 11:08:44 +02:00
Jonas Drieghe 8da2811dc3
Add new summary format for licenses (#8973)
* Add new summary format to render the number of dependencies for each used license

* Array dereferencing wasn't available on php 5.3

* Add summary format to documentation
2020-06-16 10:07:53 +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
Fränz Friederes 5c13c97428
Implement type and context properties in PreFileDownloadEvent 2020-06-15 21:43:41 +02:00
Michael Stucki ae59047166 Clean Git repos during discard 2020-06-15 21:42:41 +02:00
Fränz Friederes 907367ff43
Fix PHPDoc issue 2020-06-15 21:28:27 +02:00
johnstevenson 54debe8210
Respect disable-tls in Versions::getLatest
Use http to get the latest version when disable-tls is true and error-
trap DiagnoseCommand::checkVersion so that all checks can complete.
Fixes #8657.
2020-06-15 13:08:38 +02:00
Jordi Boggiano a17bbec842
Avoid double warnings about composer.json when running outdated, fixes #8958 2020-06-15 13:04:02 +02:00
Fränz Friederes 13bdf8553a
Add setProcessedUrl method to PreFileDownloadEvent 2020-06-11 21:53:31 +02:00
Graham Campbell a97d13fc6d
Fixed typo
Co-authored-by: ZhangWei <zhwei.yes@gmail.com>
2020-06-08 09:33:40 +01: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 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
Jordi Boggiano cb19347031
Update to latest master 2020-06-05 16:52:24 +02:00
Yanick Witschi b6c436598b
Updated to latest semver intervals 2020-06-05 16:52:24 +02:00
Yanick Witschi 6ef47baca1
Added a todo for package dupes 2020-06-05 16:52:24 +02:00
Yanick Witschi 014e9d5dd1
Fixed last remaining pool builder test 2020-06-05 16:52:24 +02:00
Yanick Witschi 5097ed6480
Fixed another test 2020-06-05 16:52:24 +02:00
Yanick Witschi 5a835db24d
Fixed another partial update test 2020-06-05 16:52:24 +02:00
Yanick Witschi 7be24dccd9
Fixed some of the partial update tests 2020-06-05 16:52:24 +02:00
Yanick Witschi 225a6a0a82
Improved variable naming 2020-06-05 16:52:24 +02:00
Yanick Witschi 0955d38374
Simplify package loading 2020-06-05 16:52:24 +02:00
Yanick Witschi 779b56ab2b
Fixed psalm annotations 2020-06-05 16:52:24 +02:00
Yanick Witschi b00291cf21
CS 2020-06-05 16:52:24 +02:00
Yanick Witschi 00500f83c0
Using the current subset branch of @Seldaek to fix subset tests 2020-06-05 16:52:24 +02:00
Yanick Witschi 26877285ad
Filter duplicate packages 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 2427bef238
Typo 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 b87fc5bbfd
Added more poolbuilder test 2020-06-05 16:52:24 +02:00
Yanick Witschi d78c37edd2
Cleanup and added some more improvements, tests still failing 2020-06-05 16:52:24 +02:00
Nils Adermann 5dd4b456b9
PoolBuilder: Do not load any alternatives to pkgs replaced by fixed pkg 2020-06-05 16:52:24 +02:00
Nils Adermann bb4cabc0b9
PoolBuilder: Avoid loading any alternatives to fixed packages 2020-06-05 16:52:24 +02:00
Yanick Witschi 1c8865a5d1
Comment 2020-06-05 16:52:24 +02:00
Yanick Witschi 10555ecff3
Make sure there's always a constraint 2020-06-05 16:52:24 +02:00
Yanick Witschi 912aecb666
Removed name constraints 2020-06-05 16:52:24 +02:00
Yanick Witschi af7feade8f
POC 2020-06-05 16:52:24 +02:00
Thomas Lamy caa5545478 #8945 Add "--no-dev" to outdated/show commands 2020-06-05 16:48:10 +02:00
Jordi Boggiano 9d5051faac
Merge branch '1.10' 2020-06-05 16:02:02 +02:00
Jordi Boggiano 6630519882
Fix #8298 for COMPOSER_DEV_MODE 2020-06-05 16:01:39 +02:00
Jordi Boggiano 29ec10d95c
Fix output formatting 2020-06-05 13:43:42 +02:00
Nils Adermann f15b9c258e
Merge pull request #8949 from Seldaek/cleanups
Cleanups / docblocks
2020-06-05 10:48:29 +02:00
Ayesh Karunaratne 71ddc487fe
Platform Check: Add a special case for `zend-opcache`.
Ref #8946

The platform-check feature maps `ext-X` to `extension_loaded('X')` calls.
While most of the extensions can be tested this way, the `zend-opcache`
extension requires `zend opcache` to be probed instead of the `zend-opcache`
name.

This commit adds a special case for `zend-opcache` to use the correct name
in `extension_loaded()` calls in generated `platform_check.php` file.
2020-06-05 02:09:31 +07:00
Jordi Boggiano c9571f90b4
Run phpstan with regular output and then run again to cs2pr if there was an error, to keep usable output in CI logs 2020-06-04 16:11:02 +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 5761228068
Make installer classes forward promises from downloaders to InstallationManager 2020-06-04 10:34:16 +02:00
Jordi Boggiano 816d8e9d1b
Fix phpstan error 2020-06-03 15:41:47 +02:00
Jordi Boggiano 90bd351b8b
Allow downgrades to go through even though the target dir for archive extraction exists 2020-06-03 15:37:36 +02:00
Jordi Boggiano 63041fbf50
Add missing class 2020-06-03 15:28:10 +02:00
Jordi Boggiano 02059d96e7
Fail early if an archive extraction is going to fail at install/update stage to avoid leaving the vendor dir in a half up to date state 2020-06-03 15:19:02 +02:00
Jordi Boggiano 396ad87fd0
Add handling of ctrl-C on windows for php 7.4+ 2020-06-03 15:18:27 +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 5ef7765cbd
Merge pull request #8923 from staabm/glob-classmap
Autoload-Generator: support glob patterns in classmaps
2020-06-03 13:12:44 +02:00
Jordi Boggiano ccea1b95a8
Fix pretty constraint for --with overrides 2020-06-03 10:43:18 +02:00
Jordi Boggiano 7507b87fb3
Remove stray var_dump 2020-06-03 10:40:44 +02:00
Jordi Boggiano 8d3ec0f718
Do not reverse sorted packages, fixes #8320 2020-06-03 09:42:21 +02:00
Jordi Boggiano 1055be7936
Fix unfixing of packages when a replacer gets unfixed before a replacee, refs #8882 2020-06-02 17:03:41 +02:00
Jordi Boggiano 4d75d524f1
Fix class name case, refs #8939 2020-06-02 16:20:31 +02:00
Graham Campbell 462dc5a933
Fix for HHVM 3 2020-06-02 14:52:38 +01:00
Nils Adermann 86e79fcce3
Merge pull request #8938 from Seldaek/drop-dead-code
Remove some dead code from RuleSetGenerator
2020-06-02 15:49:24 +02:00
Jordi Boggiano 718021724c
Deduplicate more content in complex problem output 2020-06-02 15:46:12 +02:00
Jordi Boggiano 9bd255d8f1
Remove some dead code from RuleSetGenerator 2020-06-02 14:41:18 +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 8a7f3a9a09
Avoid rendering problem output for dev-master aliases which is useless 2020-06-02 13:21:06 +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 c0f5c13516
RuleSetGenerator instance does not need to be kept around anymore 2020-06-02 09:45:19 +02:00
Jordi Boggiano 1e08097a17
Fix phpstan warning 2020-06-01 16:05:13 +02:00
Jordi Boggiano a9affa8413
Add missing use statement 2020-06-01 15:58:34 +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
Jérémy Derussé 95e6e16b78
Use Semver compiled constraints 2020-05-26 21:35:30 +02:00
Markus Staab 6a0e02db1b Autoload-Generator: support glob patterns in classmaps 2020-05-23 21:22:07 +02:00
Jordi Boggiano a07f9ffba9
Catch SIGINT/Ctrl+C during installs and run cleanups on all packages before exiting 2020-05-22 13:24:30 +02:00
Jordi Boggiano 385655f02a
Mark temp files as such for clarity in case any gets left over 2020-05-22 13:23:14 +02:00
Jordi Boggiano acf2b15982
Merge branch '1.10' 2020-05-22 10:30:51 +02:00
azjezz 30f994e424 fix deprecations in PHP 8 2020-05-21 18:16:19 +01:00
Jordi Boggiano c7fb15faf4
Update to MatchAllConstraint 2020-05-21 16:12:41 +02:00
Jordi Boggiano 45d3e133a4
Avoid checking for unbounded constraints in platform checks 2020-05-19 17:15:08 +02:00
Jordi Boggiano 62d0443e07
Avoid checking for readline in non-CLI contexts, fixes #8909 2020-05-19 16:46:33 +02:00
Jordi Boggiano d42e12c514
Make config non optional, fixes #8896 2020-05-19 16:34:51 +02:00
Jordi Boggiano b27c4b2472
Merge branch '1.10' 2020-05-19 15:48:19 +02:00
Timo Webler 541692bbfe
Use "getInitialWorkingDirectory" instead of "getWorkingDirectory"
Follow-up 8d24b61bef
2020-05-19 15:47:51 +02:00
Jordi Boggiano 1d2df5ef55
Add output to remove/require command to highlight the fact it is running an update command, refs #8910 2020-05-19 14:48:58 +02:00
Jordi Boggiano af6444353f
Refactor hint generation and whitespace handling in SolverProblemsException 2020-05-19 12:17:57 +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 beded906ba
Merge branch '1.10' 2020-05-08 21:05:07 +02:00
Jean-Michel DELEHAYE 42fc372e52
Add function_exists() for 'pcntl_signal' 2020-05-08 20:53:43 +02:00
Matěj Kmínek a074819a51
Add support for gitlab deploy token (#8867)
* feat: Added ability to work with GitLab deploy tokens: https://docs.gitlab.com/ee/user/project/deploy_tokens/

Deploy tokens can be specified two ways:
1) GIT CONFIG:
git config --add gitlab.deploytoken.user USERNAME && git config --add gitlab.deploytoken.token TOKEN
2) Auth.json:
"gitlab-token": {
    "gitlab.com": {"username": "USERNAME", "token": "TOKEN"}
}
2020-05-08 17:43:07 +02:00
Jordi Boggiano 1ef352751c
Fix display issue in create-project when installing dev-master 2020-05-06 13:45:31 +02:00
Jordi Boggiano ba3df8faea
Merge pull request #8843 from FIDATA/feature/archive-name
Add (default) base name of archive into composer.json
2020-05-06 11:06:28 +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
Jordi Boggiano 3134466b42
Merge branch '1.10' 2020-05-06 10:30:53 +02:00
Jordi Boggiano 4ce492d01d
Fix detection of gitlab URLs, fixes #8402, closes #8868 2020-05-06 10:18:53 +02:00
Nils Adermann 5d5515348a
Merge pull request #8860 from Seldaek/update-with
Add --with to update command to allow downgrading to a specific version / applying custom temporary constraints
2020-05-05 17:03:49 +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
Nils Adermann 678abdbc9f
Merge pull request #8873 from Seldaek/version_selector_platform
Use all PlatformRepo packages in VersionSelector checks
2020-05-04 22:20:11 +02:00
Jordi Boggiano 1d68e85433
Fix usage 2020-05-04 22:04:57 +02:00
Jordi Boggiano ef3797cdd6
Cache successful requests to make sure subsequent loadPackages calls do not do the same requests for nothing 2020-05-04 21:58:33 +02:00
Jordi Boggiano 8a2dd1baef
Adjust all usages of VersionSelector to the new API 2020-05-04 21:48:48 +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
Jordi Boggiano b11f43f59e
Merge remote-tracking branch 'origin/1.10' 2020-05-04 20:27:34 +02:00
Jordi Boggiano 92aed041e4
Make the VersionSelector take Composer API/Runtime versions into account, refs getsentry/sentry-php#1008 2020-05-04 13:51:34 +02:00
Markus Staab 11930001fb
Added phpdoc types for PoolBuilder (#8862) 2020-05-04 13:34:05 +02:00
Ayesh Karunaratne aa20413990
Improve regex in \Composer\Downloader\SvnDownloader::getCommitLogs() by removing unnecessary greedy operator 2020-05-04 01:03:15 +07:00
Ayesh Karunaratne d4c8478df5
Improve regex in \Composer\Repository\ComposerRepository::fetchFile() by removing unnecessary greedy operator 2020-05-04 00:38:53 +07: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 1d077ede70
Merge branch '1.10' 2020-05-01 18:08:22 +02:00
Jordi Boggiano bfe71fb952
Fix support for --self --name-only, fixes #8844 2020-05-01 18:03:22 +02:00
Jordi Boggiano 4ce3836f51
Fix creation of a php: dir when running create-project, fixes #8849 2020-05-01 17:23:32 +02:00
Jordi Boggiano 7f308d986e
Add --with to update command to allow downgrading to a specific version/applying custom temporary constraints, fixes #8756 2020-05-01 16:56:17 +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 56811b4c8f
Exclude platform require/provides from InstalledVersions as concrete ones are also not listed 2020-05-01 13:10:50 +02:00
Jordi Boggiano 557fb873ee
Add a way to retrieve the Loop instance from Composer to be able to wait on promises to integrate things 2020-05-01 09:54:41 +02:00
Jordi Boggiano 3c593b0d12
Remove duplicate use statement 2020-04-30 21:36:17 +02:00
Jordi Boggiano 74a63b4d6b
Merge branch '1.10' 2020-04-30 21:31:29 +02:00
Jordi Boggiano 81bf47ffa2
Use fully qualified calls in hot classes 2020-04-30 21:28:05 +02:00
Alessandro Lai ff05150c4e Add composer-runtime-api version constant 2020-04-29 09:02:51 +02:00
Basil Peace 6140897d08 feat: add archive.name config option 2020-04-29 01:01:48 +03:00
Alessandro Lai 270c7c3262
Backport validation support for composer-runtime-api (#8842)
Fixes #8841
2020-04-28 16:04:00 +02:00
Nils Adermann 56edd53046 Remove unnecessary implementation of interface method in abstract class 2020-04-28 11:57:03 +02:00
Jordi Boggiano a63913c245
Merge pull request #8836 from kbacia7/master
close #8784, Added --locked option to composer show command. Displaying locked packages with --all option
2020-04-28 08:54:16 +02:00
Kamil Bacia 0779308076
close #8784, Added --locked option to composer show command. Displaying locked packages with --all option 2020-04-27 21:53:12 +02:00
Nils Adermann 994a5b41c2
Provide default impl for abstract method in interface for PHP < 5.3.9 (#8837) 2020-04-26 09:15:15 +02:00
Jordi Boggiano d173af2d7a
Fix check-platform-reqs command to take into account provide/replace from the root package 2020-04-24 13:46:18 +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 755a73baa9
Only check for pcntl on cli SAPI, fixes #8828 2020-04-23 20:44:14 +02:00
PirxDanford 3a7ea25289
Introduce --no-install option for the update, require and remove commands
Closes #8669, fixes #8551

Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2020-04-23 14:55:07 +02:00
effulgentsia 46efcefefa
Added --json and --merge options to ConfigCommand (#8779) 2020-04-23 14:27:14 +02:00
Jordi Boggiano 1d4185b844
Recommend ocramius/package-versions fork if needed to solve dependencies 2020-04-23 13:51:57 +02:00
Jordi Boggiano 34801239f1
Tweak problem wording slightly 2020-04-23 13:17:34 +02:00
Jordi Boggiano cdc6a87e8d
Fix docblock 2020-04-23 11:01:44 +02:00
Jordi Boggiano 9b8694bc0b
Show suggestions from root package in suggest, and lists them in count only on first install of a project, fixes #8805 2020-04-23 10:53:24 +02:00
Jordi Boggiano 6529fabb24
Add isFresh to InstalledRepositoryInterface and make sure local repo is always an InstalledRepositoryInterface 2020-04-23 10:52:33 +02:00
Jordi Boggiano fa14cd1353
Show number of additional suggestions when not using --all, fixes #8788 2020-04-23 10:23:56 +02:00
Jordi Boggiano d6a9d78309
Merge pull request #8810 from heddn/8809_expand_context_post_file_download
#8809: expand context for post file download event
2020-04-22 17:14:45 +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 c2f77d80bd
Remove usage of 5.6+ constant 2020-04-22 16:40:42 +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 0ab48a1773
Add composer-runtime-api platform package 2020-04-22 12:10: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 4ba958f08e
Merge pull request #8816 from staabm/patch-2
fixed typo in phpdocs
2020-04-22 07:38:54 +02:00
Pierre Grimaud a42c6ceff3 Fix typos 2020-04-22 00:43:34 +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
Markus Staab 3c09e4021e
fixed typo 2020-04-21 15:04:47 +02:00
Jordi Boggiano af18c2bd7d
Update semver, fix poolbuilder usage and optimize creation of filtering nameConstraints 2020-04-21 14:50:11 +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
Jordi Boggiano c41bb909ff
Add platform check file in phars, fixes #8813 2020-04-21 11:18:02 +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
Lucas D Hedding 2bf2e9fc60 fix failing tests 2020-04-20 14:40:25 -06:00
Jordi Boggiano ba9d4793bc
Fix transaction order 2020-04-20 22:24:00 +02:00
Lucas D Hedding 3e2163de5c #8809: expand context for post file download event 2020-04-20 13:50:42 -06: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 424c08d6b2
Fix bug loading ~dev in some circumstances 2020-04-19 15:51:29 +02:00
Jordi Boggiano b3f46979b0
Merge pull request #8802 from kubawerlos/command-validate-no-check-version
Add "no-check-version" option to ValidateCommand
2020-04-18 14:41:38 +02:00
Jordi Boggiano c12a1a6d64
Update flag description 2020-04-18 14:41:04 +02:00
Kuba Werłos a54bf0e2d4 Use flags instead of boolean in ConfigValidator for checking version field 2020-04-18 09:24:54 +02:00
Kuba Werłos 4ec73874cb Add "no-check-version" option to ValidateCommand 2020-04-17 22:38:14 +02:00
Jérôme Tamarelle bd34ff1328
Remove unused property $httpDownloader 2020-04-16 01:14:56 +02:00
Jordi Boggiano 80a7c40c76
Shorten long lists of similar versions in problem output, fixes #8743 2020-04-15 16:47:44 +02:00
Jordi Boggiano 5b54a93751
Fix phpstan build 2020-04-15 00:33:52 +02:00
Jordi Boggiano 44a4429978
Remove PEAR installer/downloader/repos/..., fixes #8778 2020-04-15 00:24:13 +02:00
Nils Adermann 5e9bf532c1
Merge pull request #8786 from Seldaek/unused-flag
Add --unused flag to remove command
2020-04-14 23:51:19 +02:00
Lucas Hedding 1883832ddc
Provides a post download event (#8655) 2020-04-14 23:48:18 +02:00
Jordi Boggiano 11765ddfea
Add --unused flag to remove command, fixes #8283 2020-04-14 23:42:49 +02:00
Jordi Boggiano 6bed9d8f13
Implement count and search correctly in FilterRepository 2020-04-14 22:55:53 +02:00
Jordi Boggiano a0c5d519e9
Restore --no-suggest but mark it deprecated, remove --no-custom-installers and mark --dev also deprecated with stronger wording 2020-04-14 22:35:13 +02:00
Markus Staab 3819b02fea
added phpstan types to `CompletePackageInterface` (#8782) 2020-04-14 22:05:58 +02:00
Alexandre D'Eschambeault e0e2bb11a5
Fix typo: directory instead of directoy 2020-04-13 19:45:35 -04:00
Jordi Boggiano be1ddcf293
Fix handling of svn trunk in version guesser, fixes #8765 2020-04-13 12:48:43 +02:00
Jordi Boggiano 876136022b
Merge remote-tracking branch 'origin/1.10' 2020-04-13 12:41:30 +02:00
Jordi Boggiano 19902ba6a9
Merge pull request #8772 from villfa/fix/8771
Dispatch POST_STATUS_CMD even when there is no changes
2020-04-13 12:41:02 +02:00
Jordi Boggiano 2e7ace238a
Merge pull request #8767 from cebe/package-name-double-dash
Allow duplicate dashes in package names (1.10)
2020-04-13 12:37:41 +02:00
Jordi Boggiano 7d3f45cf04
Avoid errors in cleanup, fixes #8766, fixes #8764 2020-04-13 12:15:17 +02:00
Jordi Boggiano 62fda2ed85
Reorg ComposerRepository to fix tests 2020-04-13 12:10:31 +02:00
Jordi Boggiano 048781c268
Fix whatProvides function declaration 2020-04-13 12:02:59 +02:00
Jordi Boggiano 3dd6dbe14a
Merge pull request #8774 from Ayesh/https
Update HTTP URLs to their HTTPS if they already redirect automatically
2020-04-13 11:52:21 +02:00
Jordi Boggiano 4ea6b1ef55
Make all params non-optional 2020-04-13 11:49:51 +02:00
Ayesh Karunaratne fdb35a6a06
Fix \Composer\Installer\PackageEvent::__construct() and \Composer\Repository\ComposerRepository::isVersionAcceptable() required arguments used after optional, which is deprecated in PHP 8.0
1. `Deprecated: Required parameter $name follows optional parameter $constraint in src\Composer\Repository\ComposerRepository.php on line 745`

2. `Deprecated: Required parameter $operation follows optional parameter $operations in src\Composer\Installer\PackageEvent.php on line 73`

Optional parameters with a type declared, and a default value of `null` is excepted from this deprecation. See https://php.watch/versions/8.0/deprecate-required-param-after-optional. This is the case in `ComposerRepository::isVersionAcceptable`, which still has two optional parameters as first two parameters, but this will not raise a deprecation notice.
2020-04-13 07:12:35 +07:00
Ayesh Karunaratne 280f02b4bc
Update HTTP URLs to their HTTPS if they already redirect automatically 2020-04-13 06:22:02 +07:00
Fabien Villepinte c718579623 Dispatch POST_STATUS_CMD even when there is no changes 2020-04-12 14:35:23 +02: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 40a35abb94
Resolve options when creating requests to fix 5.3 build 2020-04-10 12:24:43 +02:00
Jordi Boggiano 4cb74d33e6
Forward default HttpDownloader options to RemoteFilesystem/CurlDownloader, fixes #8757 2020-04-10 12:10:30 +02:00
Jordi Boggiano 86cfbdc541
Merge branch '1.10' 2020-04-10 11:45:48 +02:00
Jordi Boggiano 2f7e901940
Fix #8748 in an alternative way to avoid messing with PATH for other binaries, fixes #8758 2020-04-10 11:42:52 +02:00
Jordi Boggiano b3dbd95332
Fix PHP <5.6 syntax, fixes #8759, closes #8760 2020-04-10 11:34:00 +02:00
Jordi Boggiano a7ad186c89
Return early in case a call to the wrapped repo is unnecessary 2020-04-09 17:12:35 +02:00
Jordi Boggiano 096b507050
Merge branch '1.10' 2020-04-09 17:07:58 +02:00
Jordi Boggiano e121de35a3
Fix variable used for symlinking absolute paths, refs #8700 2020-04-09 17:01:48 +02:00
Jordi Boggiano f70b3b0152
Avoid warning about --2 usage when no channel is requested 2020-04-09 16:25:10 +02:00
Jordi Boggiano 8e664a37f5
Merge branch '1.10' 2020-04-09 16:13:15 +02:00
Jordi Boggiano b79f2b5e0f
Make sure scripts calling composer call the correct composer binary even if the project requires composer/composer, fixes #8748 2020-04-09 15:43:47 +02:00
Jordi Boggiano ccc8829ed9
Allow forcing self-update to stick to 1.x or 2.x using --1 and --2 flags, fixes #8753 2020-04-09 15:17:30 +02:00
Jordi Boggiano 28d26bd3a4
Merge pull request #8755 from Seldaek/repo-filtering
Add options to configure repository priorities
2020-04-09 14:02:33 +02:00
Markus Staab 6f6974df70
added phpdocs (#8754) 2020-04-09 13:44:30 +02:00
Jordi Boggiano b6bad4eef6
Add options to configure repository priorities 2020-04-09 13:39:06 +02:00
Jordi Boggiano 59c831c2f8
Add docs to loadPackages 2020-04-09 11:50:37 +02:00
Jordi Boggiano e34a2a9f45
Remove unused used vars 2020-04-09 11:23:25 +02:00
Jordi Boggiano 8b0da77a1d
Make sure cleanup is called for every package in case any operation fails to execute 2020-04-09 10:48:48 +02:00
Jordi Boggiano 55f122008b
Make sure we avoid cleanup running more than once per package on VcsDownloader 2020-04-09 10:32:59 +02:00
Matthias Van Woensel 067101dbf5
Only send GitHub API token to api.github.com domain (#8747) 2020-04-09 09:58:34 +02:00
Jordi Boggiano 0aaa815268
Merge branch '1.10' 2020-04-09 09:51:35 +02:00
Bingqing Wang 46db638678
fix typo 2020-04-09 09:50:38 +02:00
Bingqing Wang 63eb178297
compatible with symfony/console 5.0.0 getVerticalBorderChars() method 2020-04-09 09:50:19 +02:00
Jordi Boggiano aa6be02c64
Allow COMPOSER_DISABLE_NETWORK to work with GitHubDriver by doing a cache priming pass first 2020-04-08 17:53:15 +02:00
Jordi Boggiano 9575c7623f
Update changelog, add upgrade guide 2020-04-08 16:44:32 +02:00
Jordi Boggiano ee09b75be3
Clean ups 2020-04-08 15:55:51 +02:00
Jordi Boggiano 8930f1b824
Add color to lock operations and dry run output 2020-04-08 15:18:28 +02:00
Jordi Boggiano 2e64e8dc2e
Avoid generating duplicate aliases in lock file if several aliased packages are installed 2020-04-08 14:18:38 +02:00
Jordi Boggiano 64f907f93f
Fix handling of aliases to use consistent format everywhere 2020-04-08 12:31:02 +02:00
Jordi Boggiano a695f686c3
Add some docblocks and make sure RepositorySet/PoolBuilder accept regular rootAliases and not pre-normalized ones 2020-04-08 11:46:06 +02:00
Markus Staab 593d5abf27
use more precise phpstan/psam return-types (#8744) 2020-04-08 10:01:09 +02:00
Jordi Boggiano 736af4cb58
Add with-all-dependencies and update-with-all-dependencies args to remove command 2020-04-07 16:13:56 +02:00
Jordi Boggiano 52d1b52eb6
Merge branch '1.10' 2020-04-07 16:07:05 +02:00
Jordi Boggiano 11999118a5
Avoid failing on malformed funding info, fixes #8731 2020-04-07 16:04:58 +02:00
Jordi Boggiano a8eec36931
Merge branch '1.10' 2020-04-07 16:00:11 +02:00
Jordi Boggiano 96c1ba279a
Add infos about plugin install failure 2020-04-07 15:55:59 +02:00
Markus Staab c30925e68d
extracted `VersionParser::DEV_MASTER_ALIAS` (#8742) 2020-04-07 15:49:07 +02:00
Jordi Boggiano b166ef4b58
Fix more phpstan errors 2020-04-07 14:57:37 +02:00
Jordi Boggiano bbc4854452
Merge pull request #8740 from renanbr/patch-1
Remove duplicated `dry-run` option
2020-04-07 14:43:41 +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
Nils Adermann cb68fc3134
Merge pull request #8690 from Seldaek/solver-problems
Error reporting improvements
2020-04-07 13:27:46 +02:00
Jordi Boggiano d34ea60c48
canonicalize providers api url 2020-04-07 13:09:22 +02:00
Jordi Boggiano 3e19e3b0f1
Show alias of version in package lists in problems 2020-04-07 13:06:05 +02:00
Jordi Boggiano 7cca451312
Fix more issues with dev-master normalization in aliases 2020-04-07 13:06:04 +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
Renan c4a3e912a1
Remove duplicated `dry-run` option 2020-04-07 12:28:17 +02:00
Nils Adermann 415b36a1a1 Remove match types from Pool as these are no longer used 2020-04-07 11:11:18 +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
Jordi Boggiano 2b86df4003
Add a hint about being on v2 when things go wrong 2020-04-07 10:05:53 +02:00
Jordi Boggiano 87757de6bc
Merge branch '2.0' 2020-04-07 09:39:00 +02:00
Jordi Boggiano 1c73f078f7
Remove repository field from getProviders result 2020-04-06 21:17:03 +02:00
Nils Adermann 4fab2c7759 Error wording use "thus cannot" instead of "can thus not" 2020-04-02 16:02:17 +02:00
Jordi Boggiano 51c48b1519
Merge pull request #8729 from naderman/t/partial-update-always-update-replace
Give a clearer error message explaining how to update a conflicting locked dependency
2020-04-02 15:54:45 +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 4e7ff690c6
Revert lock file as well when a require command operation failed to complete 2020-04-02 14:39:53 +02:00
Nils Adermann 1b55b466fb require: Add with-dependencies and with-all-dependencies as alternative option names 2020-04-02 14:19:36 +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 2dfbf3692a PoolBuilder: Remove null default for io 2020-04-01 16:42:12 +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 71c3c63b54 Remove unused variable assignment 2020-03-30 16:37:31 +02:00
Nils Adermann 9fb09049ff Rename and document constants for partial update behavior 2020-03-30 16:21:27 +02:00
Jordi Boggiano 22a52f5813
Apply suggestions from code review
Co-Authored-By: Andreas Möller <am@localheinz.com>
2020-03-29 16:59:07 +02:00
Andreas Möller 6e88683e35
Fix: Return early 2020-03-29 12:18:56 +02:00
Jordi Boggiano 800491175b
Avoid failing cleanup when a package gets uninstalled 2020-03-28 20:50:49 +01:00
Jordi Boggiano 6e45a53e76
Add support for relative paths in handling of install-path for the installed.json 2020-03-28 20:39:11 +01: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
Jordi Boggiano 918768fc54
Make sure we get a temporary dir which is unique 2020-03-28 20:37:09 +01:00
Jordi Boggiano 73251691a0
Avoid emptying the directory before extracting an archive into it, check that it is empty instead 2020-03-28 20:36:55 +01:00
Nils Adermann fc40fefa6f Make sure nameConstraints is always set when loading a name 2020-03-27 23:13:21 +01:00
Nils Adermann 443553423b Mark replaced packages for update when using --with-dependencies
This is necessary to allow the requiring of new packages which replace
packages currently locked without requiring explicitly listing them as
an argument, so simplifies the composer require command
2020-03-27 22:59:00 +01:00
Nils Adermann 392d0abd21 Rename test files and standardize on allow list rather than whitelist 2020-03-27 22:15:04 +01:00
Nils Adermann 01fe92905a The update allow list is now generated while building the pool
This reduces code complexity while making partial updates more
predictable. This also allows composer require to successfully run a
partial update for a new package with transitive dependency updates.
2020-03-27 21:41:49 +01:00
Nils Adermann da84763f03 Move partial update handling to pool builder 2020-03-26 12:03:52 +01:00
Christian Raue b644f63a93
fixed help URL for ClearCacheCommand 2020-03-24 22:47:11 +01:00
Jordi Boggiano 6679dde713
Merge pull request #8693 from enumag/patch-2
Add --dry-run to composer require
2020-03-24 14:01:47 +01:00
Jordi Boggiano 7e679656a4
Keep absolute path repos symlinks absolute, fixes #8700 2020-03-24 12:35:18 +01:00
Jordi Boggiano 86677ad172
Avoid scanning files twice when generating optimized autoloaders, fixes #8683 2020-03-13 18:28:27 +01:00
Jáchym Toušek 3bf46a77f9
Update RequireCommand.php 2020-03-13 18:18:13 +01:00
Jáchym Toušek bbb781b1ed
Add --dry-run to composer require 2020-03-13 14:40:25 +01:00
Jordi Boggiano cbdf74eb34
Merge remote-tracking branch 'naderman/optimize-fixed-pkg-loading' into 2.0 2020-03-13 11:57:56 +01:00
Jordi Boggiano cf5513f28d
Fix syntax error 2020-03-13 11:50:35 +01:00
Jordi Boggiano 0d2c2c044a
Avoid skipping feature branch detection if no branch-alias is defined at all 2020-03-13 11:39:19 +01:00
Jordi Boggiano c2d0fed06b
Tweak lock repo name 2020-03-13 11:20:58 +01:00
Jordi Boggiano 3a9b786400
Bring suggest output in line with the rest of update/install output 2020-03-13 11:18:41 +01:00
Jordi Boggiano e15f7d6bb7
Merge branch 'master' into 2.0 2020-03-13 11:18:23 +01:00
Aaron Johnson b41e768e1f
Put backticks around command for readability.
Helps to promote the command to discern it from the sentence. :)
2020-03-12 23:17:14 -04:00
Nils Adermann 8a6382d78d Remove unnecessary TODOs and skip EmptyConstraint like null 2020-03-12 18:12:05 +01:00
Nils Adermann bbdbb3517b PoolBuilder: Drop name constraints loop, already set earlier in same code 2020-03-12 16:45:09 +01:00
Nils Adermann 59bc957e76 Simplify loading of fixed and root require packages in pool builder
additionally mark all packages replaced by fixed packages as loaded as
there is no need to load those names at all, since the fixed package
will provide them
2020-03-12 16:43:08 +01:00
Jordi Boggiano d58653627a Optimize loading of deps from fixed packages 2020-03-12 16:40:30 +01:00
Jordi Boggiano 82e2a679bf Add TODO note 2020-03-12 16:40:30 +01:00
Jordi Boggiano 08cee4c3e9
Implement getProviders equally on all repos 2020-03-12 15:39:26 +01:00
Jordi Boggiano 8a83d5cc35
Fix create-project command 2020-03-12 13:50:40 +01:00
Jordi Boggiano d09daa8d5a
Merge pull request #8684 from naderman/dev-require-errors
Handle dev extraction exit codes instead of completing broken lock with errors
2020-03-12 13:20:55 +01:00
Nils Adermann ee8df484c4 Separate createPool and createPoolWithAllPackages, fix test description 2020-03-12 13:17:04 +01:00
Nils Adermann 281d8930ff For dev extraction skip pool building, we already have a working package set
Also reduce getProviders back to just providers, and add some todos
2020-03-12 12:19:46 +01:00
Jordi Boggiano 3d0d71367d
Doc updates 2020-03-12 08:37:01 +01:00
Jordi Boggiano 73a5cc63cc
Always use Removing for consistency between dry-run and actual install 2020-03-12 08:12:12 +01:00
Mathias Berchtold 1ebeb143ae
Fix PHP 8 warnings
The PR fixes this PHP 8 warning:
PHP Deprecated:  Required parameter $ambiguousClasses follows optional parameter $blacklist in phar://.../composer.phar/src/Composer/Autoload/AutoloadGenerator.php on line 339
2020-03-11 23:00:04 -05:00
Nils Adermann 06f460c557 Remove trailing spaces from output 2020-03-11 21:32:55 +01:00
Nils Adermann 1f467046d7 Implement getProviders on reposet for all repo types and add replacers
This way errors during require dev extraction make more sense
2020-03-11 17:38:16 +01:00
Nils Adermann ddb1e79bef Handle dev extraction exit codes instead of completing broken lock with errors 2020-03-11 17:31:49 +01:00
Jordi Boggiano 9c84f4d79f
Make sure InstalledRepository itself can be added too but requires allowing installed repos in reposet 2020-03-11 17:02:25 +01:00
Jordi Boggiano 589aa351a8
Change Uninstalling to Removing in lock operations 2020-03-11 16:44:08 +01:00
Jordi Boggiano ba04a46cae
Fix 5.3 issue 2020-03-11 16:20:35 +01:00
Jordi Boggiano d13ce20b6e
Fix handling of composer repos with v1 version_normalized format 2020-03-11 16:11:12 +01:00
Jordi Boggiano a453792d6b
Merge pull request #8682 from glaubinix/f/gitlab-guest-token-access
GitLab: properly handle token which has Guest only access
2020-03-11 15:34:25 +01:00
Jordi Boggiano d559bf5387
Allow configuring a path repo to an empty path as long as using wildcards and the wildcard root exists, fixes #8679 2020-03-11 15:33:14 +01:00
Stephan 402c64c271
Update src/Composer/Repository/Vcs/GitLabDriver.php
Co-Authored-By: Jordi Boggiano <j.boggiano@seld.be>
2020-03-11 15:17:12 +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
Stephan Vock 55d252b9c3 GitLab: properly handle token which has Guest only access 2020-03-11 13:35:28 +01:00
Jordi Boggiano 97e2a249e8
Merge branch 'master' into 2.0 2020-03-11 09:34:55 +01:00
Jordi Boggiano d271004b30
Also check for package requiring itself in require, not only require-dev 2020-03-10 17:00:28 +01:00
Jordi Boggiano 5c4ef1eb96
Make package name validation a hard failure, fixes #7875 2020-03-10 16:57:34 +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 94e6cfc521
Only show direct dependencies suggestions by default, add --all flag to see all in suggest command, fixes #8660 2020-03-10 15:09:28 +01:00
Jordi Boggiano 2445ef5e1f
Refactor check-platform-reqs to use InstalledRepository and look for providers as well as platform packages, fixes #8645, closes #8676
Co-authored-by: Ellis <eantaya@nuglif.com>
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2020-03-10 14:53:42 +01:00
Jordi Boggiano d63eb8179e
Merge branch 'master' into 2.0 2020-03-10 14:05:33 +01:00
Jordi Boggiano f964b83018
Add bearer support in config command and add to docs/schema, refs #8671 2020-03-10 13:39:26 +01:00
Jordi Boggiano 0b993ba4b9
Merge pull request #8671 from ethanclevenger91/ethanclevenger91/explicit-bearer-support
Bearer support.
2020-03-10 13:33:02 +01:00
Jordi Boggiano 479414d8bd
Move bearer auth to be first to make sure it does not get shadowed by github/gitlab/.. configs 2020-03-10 13:26:53 +01:00
Jordi Boggiano 9d72c92f07
Avoid looping endlessly for invalid GitLab tokens in git config, fixes #8667 2020-03-10 11:25:45 +01:00
Jordi Boggiano 34fb609aad
Merge pull request #8652 from clxmstaab/more-ambiguous
report ambiguous classes across all classmaps
2020-03-10 10:47:37 +01:00
Jordi Boggiano beb64914a3
Retrieve latest funding info for all packages in fund command 2020-03-06 17:01:59 +01:00
Ethan Clevenger cbec8ceb53 Bearer support. 2020-03-04 15:01:35 -08:00
Markus Staab cc5c5dbee1 merge fix from https://github.com/composer/composer/pull/8651 2020-03-02 13:28:10 +01:00
Markus Staab 04a18c72ba fix CS 2020-03-02 13:25:54 +01:00
Markus Staab 883a179dec removed superflous code 2020-03-02 13:24:06 +01:00
Markus Staab 61e0bf1cb5 fix typo 2020-03-02 13:23: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 6cf54170cc
Avoid mixing write/writeError which causes issues on some terminals, fixes #8656 2020-02-28 22:42:52 +01:00
Jordi Boggiano 2285a79c63
Merge pull request #8641 from souweb22/delete_return
delete 'return' and 'spaces' in Filesystem.php
2020-02-28 22:28:14 +01:00
Jordi Boggiano c5ce4de89e
Consistently return void 2020-02-28 22:27:53 +01:00
Jordi Boggiano eb56c8dcd4
Merge pull request #8640 from souweb22/fix_doc
add 'array' to document in ConfigSourceInterface.php
2020-02-28 22:04:28 +01:00
Jordi Boggiano 5d970022e8
Normalize output of create-project target path, refs #8609, refs #8412 2020-02-28 17:02:15 +01:00
Jordi Boggiano 919fa60579
Merge pull request #8611 from ol0lll/fix/create-project-with-absolute-path
Create project with absolute path(fixes #8609)
2020-02-28 16:59:29 +01:00
Jordi Boggiano c6969756e8
Make sure $_SERVER is updated when putenv updates environment variables, fixes #8298 2020-02-28 16:27:06 +01:00
Jordi Boggiano 7a270955f5
Fix issues handling branch names with pipes in them 2020-02-28 16:00:45 +01:00
Jordi Boggiano 80875e896d
Merge branch 'master' into 2.0 2020-02-28 14:54:09 +01:00
Jordi Boggiano 05737a46fb
Improve funding info parsing 2020-02-28 14:52:29 +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
Jordi Boggiano c4f19e51d8
Rework the funding info parsing to avoid requiring graphql permissions 2020-02-28 09:09:23 +01:00
remorhaz 339ee953e5 Fix incorrect --no-dev handling of replaced packages 2020-02-26 17:39:26 +02:00
Markus Staab 30b1dfb8a9 report ambiguous classes across all classmaps 2020-02-25 16:09:36 +01:00
arai e61b559eb2 delete 'return' in Filesystem.php 2020-02-23 21:38:14 +09:00
arai 766c8d448c add 'array' to document in ConfigSourceInterface.php 2020-02-23 21:31:28 +09:00
Jordi Boggiano a2eb0bab12
Abort loop correctly when package is a match 2020-02-18 08:28:35 +01:00
Jordi Boggiano 5b41b78809
Optimize findPackagesWithReplacersAndProviders to avoid multiple loops over replace/provide links 2020-02-18 08:10:54 +01:00
Jordi Boggiano 20e4cc3b6f
Fix finding replacers/providers to check constraints correctly 2020-02-17 11:23:15 +01:00
arai 1f08138379 Delete variable 2020-02-16 13:34:08 +09:00
Volker Killesreiter e532e70b22 Revert "Chore: Use consistent directory path"
This reverts commit 43e0321ee7.
2020-02-14 19:54:18 +01:00
Jordi Boggiano 2e82e34fe0
Merge branch 'master' into 2.0 2020-02-14 17:03:29 +01:00
Jordi Boggiano 4f59162827
Fix class name of caught exception 2020-02-14 17:03:22 +01:00
Jordi Boggiano 0ad322e51f
Fix tests 2020-02-14 16:55:21 +01:00
Jordi Boggiano ee2252c6ac
Add lint check after phar is built
The initial 1.10.0-RC build (593b8dfb29)
had what looks like a bit flip of one > into a :, causing a parse error as $foo->bar became $foo-:bar in some class.

This is quite unpleasant and easy to miss as it requires including the file in question before the error is spotted.

It was quite lucky I ran a composer install with the new phar right after to do something else and spotted the error.

Linting all files covers this problem mostly, at least for the PHP files.
2020-02-14 16:36:14 +01:00
Jordi Boggiano bc002ae1fb
Merge branch 'master' into 2.0 2020-02-14 15:42:17 +01:00
Jordi Boggiano 055a179cc5
Merge pull request #8453 from naderman/funding
Add funding field to composer.json and composer fund command
2020-02-14 14:27:12 +01:00
Jordi Boggiano 8dc055bec7
Fix 5.3 syntax 2020-02-14 14:18:26 +01:00
Jordi Boggiano 653e62f201
Merge pull request #8605 from guilliamxavier/fix-validate-strict-warnings
Fix validate strict warnings
2020-02-14 14:14:21 +01:00
Jordi Boggiano 4ebc318510
Fix 5.3/5.4 builds 2020-02-14 14:10:42 +01:00
Jordi Boggiano 77a477fb57
Add FundCommand 2020-02-14 14:08:38 +01:00
Jordi Boggiano f171d1fd89
Avoid requiring auth for the funding API access 2020-02-14 11:50:56 +01:00
Guilliam Xavier a17e7e9bd3
ValidateCommand: fix array syntax for PHP 5.3 2020-02-14 10:57:19 +01:00
Jordi Boggiano b033a2ae81
Retrieve funding info from github into composer.json if not declared there 2020-02-14 10:55:22 +01:00
Jordi Boggiano ff8bf0ab82
Clarify code
Co-Authored-By: Guilliam Xavier <guilliamxavier@users.noreply.github.com>
2020-02-14 10:45:35 +01:00
Guilliam Xavier a222ec5b36
ValidateCommand: remove actually unused code 2020-02-14 10:19:27 +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 8fd70d2dc4
Target ClassMapGenerator ignoring of invalid PSR classes for 2.0 2020-02-14 10:07:51 +01:00
Jordi Boggiano fe5b4fa4cc
Merge pull request #8597 from glaubinix/t/log-git-sync-mirror-error
Git: log error for sync mirror with existing local copy
2020-02-14 09:58:28 +01:00
Jordi Boggiano 850bfcddfa
Fix json manipulation fallback handling of empty objects, fixes #8600 2020-02-14 09:33:53 +01:00
Jordi Boggiano 71005091f0
Fix invalid access to private prop 2020-02-13 22:19:32 +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 78885c556a
Add missing use statement 2020-02-13 18:05:04 +01:00
Jordi Boggiano c5c6d44a0b
Refactor away some unnecessary RepositorySet usages 2020-02-13 17:51:22 +01:00
Jordi Boggiano f35cd8948a
Minor refactoring of RootPackageRepo 2020-02-13 16:29:57 +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
Guilliam Xavier 35562dcd49
ValidateCommand: add a comment that we didn't forget $lockErrors 2020-02-13 15:48:36 +01:00
Guilliam Xavier 2f4bd85219
ValidateCommand: de-invert if-elseif-else to reduce code duplication 2020-02-13 14:57:38 +01:00
Guilliam Xavier 901d177179
ValidateCommand: factorize $printSchemaUrl code 2020-02-13 14:46:50 +01:00
Guilliam Xavier b5e41d6792
ValidateCommand: always display all warnings, independently of --strict 2020-02-13 14:43:26 +01:00
Guilliam Xavier 7e2679ffc1
ValidateCommand: pass $isStrict to outputResult() of with-dependencies too 2020-02-13 14:37:08 +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
Stephan Vock 243ee9b1e4 Git: log error for sync mirror with existing local copy 2020-02-12 10:17:21 +00:00
Jordi Boggiano 835a91532d
Add PRE_POOL_CREATE event, fixes #8348 2020-02-12 10:41:04 +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 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 be8dd528b8
Merge remote-tracking branch 'origin/master' into 2.0 2020-02-11 11:33:52 +01:00
Jordi Boggiano ef249ef6b6
Add support for lib-zip platform package 2020-02-11 11:01:20 +01: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 589abb06a3
PHPStan fixes 2020-02-07 23:10:10 +01:00
Jordi Boggiano c56886ac36
Avoid checking for .dockerenv if open_basedir is set, fixes #8585 2020-02-07 22:33:39 +01:00
Jordi Boggiano 45ecbae8f5
Merge branch 'master' into 2.0 2020-02-07 22:20:51 +01:00
Ion Bazan 2ff73a8797 respect `notify-on-install` option 2020-02-05 15:52:14 +08:00
Jordi Boggiano 4e4304ae7d
Fix 2020-02-04 13:22:46 +01:00
Jordi Boggiano 0b4763e6c7
Make it clear which package the error is for when detecting uncommitted changes 2020-02-04 13:06:20 +01:00
Jordi Boggiano 006c3de542
Fix tests and make TTY usage on ProcessExecutor cleaner 2020-01-31 16:33:34 +01:00
Jordi Boggiano f572636628
Add support for TTY mode on Linux/OSX in script handlers when running in interactive mode, fixes #5856, fixes #3299, closes #4036 2020-01-31 15:45:33 +01:00
Jérôme Billiras 58e2956b95
Allow referencing scripts to extends @composer 2020-01-31 14:56:22 +01:00
Jordi Boggiano d14d411fa4
Add --dry-run to require and remove commands, fixes #7793 2020-01-31 14:34:10 +01:00
Nils Adermann fdfdee03c1 Remove unused argument to pool->match 2020-01-30 22:54:59 +01:00
Nils Adermann 4f44b7b221 Remove unused policy function findUpdatePackages 2020-01-30 22:49:15 +01:00
Jordi Boggiano a1fe64152d
Minor Installer cleanups 2020-01-30 21:03:35 +01:00
Jordi Boggiano 2f4ea3a463
Fix show command, refactor RepositorySet constructor 2020-01-30 20:21:17 +01:00
Jordi Boggiano 38f6ae2c4e
Fix react/promise usage for v2 2020-01-30 17:30:38 +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 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 29efc473a1
Suggest which providers could be required to fulfill a virtual package requirement, fixes #2811 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 f611c641db
Merge pull request #8561 from Seldaek/allow-providers-even-on-match
Allow providers which are selected to be installed in place of existing packages which do not satisfy requirements
2020-01-30 14:22:42 +01:00
Jordi Boggiano 46e35bc8d7
Fix 5.3/undef var issues 2020-01-30 14:17:49 +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 2901995fc8
Fix issue excluding unstable packages when stabilityFlags are empty 2020-01-30 10:17:42 +01:00
Jordi Boggiano 8f09f3764b
Avoid fetching non-existing files multiple times 2020-01-30 08:40:35 +01:00
Jordi Boggiano 39fb2cc51c
Fix case 2020-01-28 16:04:11 +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 41720e9b70
Show abandoned warnings from the locked repo 2020-01-28 15:56:52 +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 173b96de2d
Make sure the first require does not fail due to a missing lock file 2020-01-28 15:13:35 +01:00
Jordi Boggiano 8584d15e8c
Merge branch 'master' into 2.0 2020-01-28 14:04:27 +01:00
Jordi Boggiano 94dce37424
Avoid use of refs and avoid a false path when showing the root package, refs #8545 2020-01-28 13:52:34 +01:00
Jordi Boggiano 9db08f9883
Merge remote-tracking branch 'Serializator/feature/show-package-json' 2020-01-28 12:57:34 +01:00
Jordi Boggiano e9c7e253f4
Merge pull request #8529 from vitalyzhakov/master
Change only modified files for docker caching
2020-01-28 11:31:40 +01:00
Jordi Boggiano 1287a7a611
Merge pull request #8538 from adrianosferreira/add-vendor-bin-for-each-event
Append the bin dir on each listener iteration
2020-01-28 11:29:22 +01:00
Julian van den Berkmortel 933fe27cd5 Add support for "composer show --format=json <package>" #8544 2020-01-21 23:07:54 +01:00
Жаков Виталий ccd8be382b comments for #2764 2020-01-21 11:10:18 +05:00
Жаков Виталий 415cf9fd50 Merge branch 'master' of https://github.com/composer/composer 2020-01-21 11:06:56 +05:00
Жаков Виталий 48c7442b63 should be || not OR 2020-01-20 16:25:38 +05: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 8b877eb068 Remove superfluous check in Problem 2020-01-20 10:27:04 +01: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 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
Жаков Виталий 1e92780600 operations case touch 2020-01-17 19:37:39 +05:00
Jordi Boggiano c6a3f48eaf
Remove some more remove request handling 2020-01-17 15:35:37 +01:00
Patrick Weyck 7d7e3d594b Normalize minimum-stability `rc` to `RC` in `InitCommand`
A `minimum-stability` of `rc` is valid according to
`composer-schema.json` and works fine with install and update and
generally in version comparisons, because it's normalized to `RC`.

This commit makes it work in `InitCommand` and `RequireCommand` too.
2020-01-17 15:34:18 +01:00
Jordi Boggiano 7cc8a4aed8
Avoid checking stability on platform packages too 2020-01-17 15:29:30 +01:00
Jordi Boggiano 6dc576738a
Avoid partial updates from applying changes to packages which are not locked with an acceptable stability 2020-01-17 15:15:46 +01:00
Jordi Boggiano e162cc6f0a
Remove "remove" from request 2020-01-17 14:57:32 +01:00
Jordi Boggiano 304753ff69
Remove callback and pass stabilities all the way instead
This allows optimizing the loading of ~dev files, and cleans up a few things
2020-01-17 14:57:32 +01:00
Jordi Boggiano 98860b8619
Fix show command when no package is found 2020-01-17 14:52:28 +01:00
Jordi Boggiano 8bb472a608
No need to alias platform packages before the repository set as the pool builder already does it 2020-01-17 14:52:28 +01:00
Jordi Boggiano b9d00153d9
Suggest using -p when a platform package can not be found in show command 2020-01-17 14:52:07 +01:00
Jordi Boggiano 56b2e1ae7a
Allow installing an aliased root package 2020-01-17 14:26:52 +01:00
Jordi Boggiano 572ef1add1
Add comment for lockable 2020-01-17 14:25:43 +01:00
Jordi Boggiano cc91e9164a
Stop unrolling the root aliases 2020-01-17 13:54:13 +01:00
Jordi Boggiano 73bc137c3c
Avoid nameConstraints from being collected for fixed packages 2020-01-17 12:20:27 +01:00
Jordi Boggiano e50f78043a
Try to load packages from lock file only and avoid loading other versions for pinned packages 2020-01-17 12:20:03 +01:00
Jordi Boggiano 257d2ce889
Avoid setting the update whitelist in require command on newly created files and when the lock file is disabled 2020-01-17 11:33:47 +01:00
Жаков Виталий 33db6ec71b touch only if update 2020-01-17 10:58:52 +05:00
Jordi Boggiano e6749d8717
Add comment, fix 5.3 build 2020-01-15 16:18:56 +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
Жаков Виталий f02989ceba revert formatting 2020-01-15 18:27:12 +05:00
Жаков Виталий a4dc076dc8 fix file load errors 2020-01-15 18:09:42 +05:00
Жаков Виталий 8429a48dac Change only modified files 2020-01-15 17:09:44 +05:00
Jordi Boggiano 30b6a41035
Extract MetadataMinifier util 2020-01-15 12:58:30 +01:00
Jordi Boggiano 926afab1f4
Move loadPackages impl out of BaseRepository 2020-01-15 12:37:24 +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 40f5806a7c
Fix ComposerRepo issue 2020-01-14 16:20:31 +01:00
Jordi Boggiano 13f1924892
Merge branch 'master' into 2.0 2020-01-14 15:46:30 +01:00
Jordi Boggiano e4b495ca16
Fix 5.3 build 2020-01-14 15:42:43 +01:00
Jordi Boggiano a5b178084c
Merge branch 'master' into 2.0 2020-01-14 15:39:35 +01:00
Jordi Boggiano 4b6c25d4bc
Use Authorization header instead of deprecated access_token query param, fixes #8454 2020-01-14 15:35:52 +01:00
Jordi Boggiano c3d3d45903
Merge pull request #8331 from jimmy-ho/bug/issue-8330
8330 Correct issue where permission umask of files were not set when …
2020-01-14 15:09:28 +01:00
Jordi Boggiano 669033f1e7
Collect existing packages only once, refs #8372 2020-01-14 14:45:15 +01:00