1
0
Fork 0
Commit Graph

2870 Commits (029dda0b43d45a259b41c396ca03deafef348cf8)

Author SHA1 Message Date
Dan Wallis 8c0f1e10dc
Display error instead of throwing exception when unable to update with temporary constraint (#11692) 2023-10-26 11:38:02 +02:00
Dan Wallis 81b662d388
Suggest running 'require' not 'update' if a root req fails to update (#11691) 2023-10-26 11:08:03 +02:00
Jordi Boggiano 899dcedf66
Add --minimal-changes mode to perform partial updates --with-dependencies while changing only what is necessary in other dependencies (#11665) 2023-10-26 10:25:04 +02:00
Dan Wallis 7a09e05560
Bump wildcard constraints to >=current (#11694) 2023-10-25 18:04:52 +02:00
Dan Wallis c827c93b62
Use global constant if available for libpq version (#11684) 2023-10-11 14:19:31 +02:00
Jesper Skytte Marcussen 9a407b5ad3
10796 Increase coverage of ShowCommand (#11677)
* Added more tests for ShowCommand class

By doing so, my local setup shows increase in coverage from some 38% to
67%.

* PHP-CS-Fixer

* PHPStan fixes
2023-10-11 13:43:30 +02:00
Jordi Boggiano cb363b0e84
Fix autoload generator dump() non-BC signature change in 2.6.4 2023-10-06 09:34:10 +02:00
Pol Dellaiera b608b8e87e
feat: improve Composer's output reproducibility (#11663)
* AutoloadGenerator: add `Locker` parameter to the `dump` method
* AutoloadGenerator: do not create a random hash, re-use the one from the lock file if it exists
* FileSystem: make sure `safeCopy` copy also the file time metadata
2023-09-28 11:43:52 +02:00
Jordi Boggiano 892eaacedf
Optimize show -a by loading only the requested package (#11659)
Fixes #11648
2023-09-27 11:28:33 +02:00
Dezső BICZÓ 755de04bf5
Fix abandoned package list JSON serialization (#11647)
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2023-09-26 14:23:45 +02:00
Alex Theobold 218b9041c9
Test status command (#11522) 2023-09-14 11:45:18 +02:00
Jordi Boggiano e3484c8581
Add audit.abandoned warnings for abandoned packages, fixes #11623 (#11639) 2023-09-14 11:30:09 +02:00
wgevaert e2f5afd4cd
Add warning when duplicate "files" autoload rules are detected (#11109)
Co-authored-by: Wout Gevaert <wout@wikibase.nl>
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2023-09-13 14:11:00 +02:00
Yanick Witschi 5474dc9b5b
Fixed replaced packages being incorrectly missing when unlocked by an old version (#11629)
Co-authored-by: Nils Adermann <naderman@naderman.de>
2023-09-13 10:42:47 +02:00
Jordi Boggiano 7a7f364184
Fix bitbucket redirect URLs failing old PHP builds which do not support long headers
51e2015af3
2023-09-12 11:28:26 +02:00
Jordi Boggiano 755e89fc91
Fix loading of root aliases on path repo packages when doing partial updates, fixes #11630 (#11632) 2023-09-11 17:45:19 +02:00
Michael Voříšek 40244dc228
Revert "Set $_SERVER['SCRIPT_NAME'] within proxy command (#11562)" (#11617)
This reverts commit 9c25633d6d.
2023-09-03 13:39:48 +02:00
Dezső BICZÓ 0ab4dfba7c
Change audit.ignore behavior before 2.6.0 (#11605)
* Still report ignored security advisories

Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2023-09-01 10:04:31 +02:00
Damien Carrier e0abc40ded
Add test for `ArchiveCommand` with package name (#11551)
* test(ArchiveCommand): Add test for ArchiveCommand with package name

* fix : using explicit variable name for eventDispatcher Mock

---------

Co-authored-by: Damien Carrier <damien.carrier@alximy.io>
2023-08-31 13:46:43 +02:00
ಠ_ಠ 1a2bd38764
allow bumping for patch level version constraints fixes #11579 (#11590) 2023-08-31 11:05:49 +02:00
Martin Herndl 6fd145f01e
Allow --strict-psr in `DumpAutoloadCommand` also with --classmap-authoritative (#11607) 2023-08-30 21:43:16 +02:00
Martin Herndl 02e4a2d1a3
Add test case for `DumpAutoloadCommand` with failing --strict-psr check (#11606) 2023-08-30 21:42:45 +02:00
Martin Herndl 879524d8e3
Add tests for DumpAutoloadCommand (#11581) 2023-08-30 16:09:05 +02:00
Juliette 5af6151493
PHP 8.3 | ComposerRepositoryTest: fix test failure (#11602)
Prior to PHP 8.3, ReflectionMethod could set a private method on a parent class to accessible. This is no longer possible in PHP 8.3 since php/php-src 9470 and breaks the Composer\Test\Repository\ComposerRepositoryTest::testWhatProvides test.
Also see: https://3v4l.org/8YcIk/rfc#vgit.master

Fixed now.

Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
Co-authored-by: Christophe Coevoet <stof@notk.org>
2023-08-30 11:43:12 +02:00
Juliette 512690dba4
PHP 8.3 | Tests: fix deprecation notices (#11599)
* PHP 8.3 | ZipDownloaderTest: fix deprecation notice

Calling `ReflectionProperty::setValue()` with only one argument (to set a static property) is deprecated.
Passing `null` as the first (`$object`) parameter will work cross-version.

As the `ZipDownloaderTest::setPrivateProperty()` method has a `null` default value for the `$obj` parameter anyway, this means the if/else toggle can be removed.

Ref: https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures#reflectionpropertysetvalue

* PHP 8.3 | InstalledVersionsTest: fix deprecation notice

Calling `ReflectionProperty::setValue()` with only one argument (to set a static property) is deprecated.
Passing `null` as the first (`$object`) parameter will work cross-version.

Ref: https://wiki.php.net/rfc/deprecate_functions_with_overloaded_signatures#reflectionpropertysetvalue

---------

Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
2023-08-30 11:42:33 +02:00
Stephan 5062338079
Audit: ignores configured repository options (#11173)
* Audit: ignores configured repository options

* ComposerRepository: add test case to assert that repo http options are used to make security advisory POST request
2023-08-29 15:16:34 +02:00
Rober Díaz 4137bf38ad
Tests for base dependency command (#11547)
* add a test case for "not provided a required parameter"

* add a test cases for "not provided locked file"

* cleanup for case provider

* add a test case for "package existence"

* add a test case for "warning when dependencies are not installed"

* fix the test case for "warning when dependencies are not installed"

* add a test case for "package was not found in the project"

* add a test cases for `why-not` command

- also they were fixed docblocks

* add a test cases for `why` command

* versions were added to dependency objects

* it was avoided HEREDOC due it seems to be failing in PHP 7.2

* it was avoided mismatches due different platforms EOL

* it was used full output instead of an array of messages (to avoid EOL isues)

* it increased code coverage to 97%

* All test case docblocks were corrected according to CR feedback

* ensure that `why-not` should say that an installed package requires an incompatible version of the inspected package
2023-08-29 15:06:19 +02:00
Dan Wallis 9c25633d6d
Set $_SERVER['SCRIPT_NAME'] within proxy command (#11562) 2023-08-02 11:55:24 +02:00
Jordi Boggiano f4738d97b7
Add support for Application::setCatchErrors in symfony 6.4+, refs symfony/symfony#50420 2023-07-28 19:33:33 +02:00
Jordi Boggiano 0cdabcc4ee
Add audit.ignored config setting to ignore security advisories by id or CVE id, fixes #11298 (#11556) 2023-07-21 14:36:38 +02:00
Dan Wallis 7f78decad7
Fix PHPStan after running autoloader tests (#11558) 2023-07-21 14:34:59 +02:00
David Zülke 3e9c148b63
Fix trailing whitespace in 'composer show -N' (#11536)
The name column was always padded to maximum width, even if no other columns were printed.

This makes it difficult to use the output e.g. in pipelines.

Fixed for all possible columns, and with tests for two cases (regular show and show outdated).
2023-07-21 11:29:38 +02:00
David Zülke 07f706e57d
Fix 'composer show --platform <package>' erroring if no composer.json is present (#11533)
Sort of related to #11046 (although this is not a regression, but didn't work before, either)
2023-07-21 11:28:36 +02:00
Stephan cf8ea3c70e
GitHubDriver: better handle empty composer.json file (#11552) 2023-07-21 11:09:32 +02:00
David Zülke 8f49166ec6
Fix lib-curl-openssl parsing for SecureTransport (#11534)
On macOS, if libcurl is built against SecureTransport, the platform repository will contain an invalid package name:

    % composer show --platform | grep curl
    ext-curl                           8.2.7    The curl PHP extension
    lib-curl                           8.1.2    The curl library
    lib-curl-(securetransport) openssl 3.1.1    curl (securetransport) openss...
    lib-curl-libssh2                   1.11.0   curl libssh2 version
    lib-curl-zlib                      1.2.11   curl zlib version

This change fixes it:

    % bin/composer show --platform | grep curl
    lib-curl                 8.1.2              The curl library
    lib-curl-libssh2         1.11.0             curl libssh2 version
    lib-curl-securetransport 3.1.1              curl (securetransport) openssl ...
    lib-curl-zlib            1.2.11             curl zlib version

(second column width difference comes from the Composer dev version number)
2023-07-21 11:06:03 +02:00
Attia A. Ahmed ce876e7a6f
Fix broken junctions leading to installation failure on Windows (#11550) 2023-07-21 10:59:59 +02:00
Athos Ribeiro 4b210d916e
Add support for phpunit 10 (#11532)
* Use static test data providers

Using non-static methods as a data providers was deprecated in phpunit
10.

* Rename abstract test class

Abstract test case classes with Test suffix are deprecated in PHPUnit
10. We also change the ArchiverTest file name to match the new class
name (ArchiverTestCase).

* https://github.com/sebastianbergmann/phpunit/issues/5132
2023-07-21 10:39:20 +02:00
Jordi Boggiano e7016b00a9
Upgrade to react/promise 3.0.0 (#10429) 2023-07-20 12:52:28 +02:00
MaximAL 1c9fbeb978
Preserve indentation when writing JSON files (#11390)
Refs #11341
2023-07-19 14:13:06 +02:00
Jordi Boggiano 2b18799c44
Fix problem output of exact constraints to state more clearly that only those versions are matched (#11521)
Fixes #11479
2023-06-23 13:13:20 +02:00
Alex Theobold bc28582723
Reinstall command test (#11502) 2023-06-23 09:47:36 +02:00
Jordi Boggiano 29134d5a1d
Fix null check 2023-06-07 16:34:58 +02:00
Jordi Boggiano 9f3e2105da
Add IOMock and get rid of all withConsecutive calls in tests (#11497) 2023-06-07 14:35:16 +02:00
Alex Theobold 7528c86e58
Test json format on failed platform reqs (#11477)
* test: Adds case for json format arg

* test: A failed platofrm requirement

* chore: style fix

* chore: removes redundant test case
2023-05-28 15:15:21 +02:00
David Zülke c45b403967
tests for empty or absent repository filters (#11476)
The behavior in FilterRepository is currently correct, but not explicitly tested.

Also add a test that ensures both filters can't be there simultaneously.
2023-05-28 15:02:12 +02:00
Jordi Boggiano 52f6f74b7c
Merge branch '2.5' 2023-05-24 15:00:53 +02:00
Jordi Boggiano 33c293aec3
Fix autoload regression with metapackage dependencies (#11481)
fixes #11480

introduced by #11455
2023-05-24 14:58:11 +02:00
Jordi Boggiano 5a96e6ae13
Merge branch '2.5' 2023-05-23 23:49:53 +02:00
Jordi Boggiano 23654389da
Fix lock file verification to take into account root provider/replacers and output mismatches there more clearly, fixes #11458 (#11475) 2023-05-23 23:15:07 +02:00
Stefan Grootscholten 9d965b9c65
Fix authentication issues with private bitbucket repos (#11464) 2023-05-23 23:14:11 +02:00
Jordi Boggiano 24361ae654
Merge branch '2.5' 2023-05-23 16:25:24 +02:00
Jordi Boggiano e51d755a08
Fix numeric default-branches with v prefix (e.g. v2.x-dev) being treated as non-numeric and receiving an alias like e.g. dev-main 2023-05-23 16:25:08 +02:00
Jordi Boggiano 0d68dabb5f
Add more tests for install command, refs #11277 2023-05-15 21:54:40 +02:00
Alex Theobold fb2c17d696
Test install command (#11277)
* Adds test class boilerplate

* test: Tests warning returned with dev flag

* test: warning returned with no-suggest flag

* test: packages passed is invalid

* test: no-install flag passed

---------

Co-authored-by: alex.theobold <alex.theobold@sykescottages.co.uk>
2023-05-14 14:15:44 +02:00
Yanick Witschi f9944867c3 Added integration test 2023-05-02 22:10:18 +02:00
Yanick Witschi 995b806dfe Optimize PoolBuilder to not load replaced targets if not required 2023-05-02 22:10:18 +02:00
Jason Woods 010bad5428 fix: If a replacer is updated to a version that no longer replaces, the replaced package is not loaded 2023-05-02 22:07:57 +02:00
Stephan 11879ea737
ArrayLoader: handle invalid support value (#11440) 2023-04-26 15:26:45 +02:00
David Zülke e0c1ad1448
PlatformRepository library support for libpq (from ext-pq) and librdkafka (from ext-rdkafka) (#11418)
* libpq library version info for ext-pq

* librdkafka library version info for ext-rdkafka

Computes from RD_KAFKA_VERSION, faster than output buffering
2023-04-25 13:59:36 +02:00
Jordi Boggiano 776ff2ea51
Merge branch '2.5' 2023-03-21 11:53:54 +01:00
Jordi Boggiano 8b0a185d5d
Fixed display of empty objects showing [] instead of {} in config command, fixes #11302 2023-03-21 11:17:55 +01:00
Jordi Boggiano 5f298ae294
Merge branch '2.5' 2023-03-21 10:45:40 +01:00
Jordi Boggiano 5c3d8f35db
Update deps, fix phpstan issues, update baseline (1711, 49) 2023-03-21 10:36:42 +01:00
Stephan 685a2e6be2
Composer support string (#11386)
* GitHubDriver: fix support is set to string

* GitLabDriver: fix support is set to string

* BitbucketDriver: fix support is set to string

* Fix PHPStan
2023-03-20 20:18:19 +01:00
Edgaras Janušauskas f41abfca34
Add platform check for 64-bit PHP (#11334) 2023-03-20 16:08:12 +01:00
Ben Ramsey cd137ee29b
Add security to support options (#11271)
This support option allows projects to specify a URL to the project's
vulnerability disclosure policy (VDP).
2023-03-10 22:28:10 +01:00
Markus Staab d8221bd443
PHPStan: Fixed handling of union types in ConfigReturnTypeExtension (#11312)
Co-authored-by: Markus Staab <m.staab@complex-it.de>
2023-02-10 14:00:33 +01:00
Andor 50cded331c
Default exclude patterns for the "archive" command (#11239)
* Issue #11235 - Adds default exclude patterns for the "archive" command based on the target file name
2023-01-27 17:16:33 +01:00
Jordi Boggiano ad7bc18028
Fix self.version requirements failing the lock file integrity check if on a different version, fixes #11274 (#11283) 2023-01-27 16:54:45 +01:00
Jordi Boggiano 0a2846cb24
Fix autoloading on PHP 5.6 (#11285)
* Add a CI check to ensure the autoloader can run on php5.6+

* Fix autoloading on PHP 5.6
2023-01-27 16:26:04 +01:00
Jordi Boggiano 5165792f9c
Fix security advisory parsing when filter repo is used, fixes #11281 2023-01-27 11:09:34 +01:00
Jordi Boggiano f6f972a699
Fix require regression with --fixed, fixes #11247 2023-01-19 21:42:22 +01:00
Jordi Boggiano 0d96fd8149
Warn when require ends up auto-selecting a feature branch, fixes #11264 (#11270) 2023-01-19 21:42:09 +01:00
Alex Theobold 2431b12230
Test home command (#11254)
Co-authored-by: alex.theobold <alex.theobold@sykescottages.co.uk>
2023-01-13 09:34:03 +01:00
Dan Barrett ca9fb64691
Added tests for the Suggests command 2023-01-06 12:38:47 +11:00
Dan Barrett 7560873740
Added tests for the Remove command 2023-01-06 12:38:47 +11:00
Dan Barrett 29ae7b632a
Add "missing lockfile" test for the Audit command 2023-01-06 12:38:40 +11:00
Jordi Boggiano d047f38f73
Make sure autoloader closures do not have a scope class set 2022-12-22 21:01:38 +01:00
Jordi Boggiano cbb7c91223
Fix ClassLoader to be serializable (#11237)
* Fix ClassLoader to be serializable

* Fix CI to use the source bin/composer as process for "composer" runs incl within simple-phpunit

* Store the closure statically to avoid serialization issues in a cleaner way
2022-12-22 15:17:04 +01:00
Jeffrey Cafferata da611e089a
Docs: fix documention deep links (#11233)
* Docs: Fixed the deep links to the documentation website.

Search scope: `src/Composer/Command`.

* Docs: Fixed the deep links to the documentation website.
2022-12-21 09:32:50 +01:00
Jordi Boggiano 3534499c6b
Add test covering edge case of composer repo format, closes #11206 2022-12-17 23:15:40 +01:00
Jordi Boggiano 957e7a9165
Merge pull request #11218 from localheinz/fix/patch
Fix preserving of major.minor.patch version when running `composer bump` and installed patch version is `0`, and add bumping of >=x to >=latest
2022-12-17 23:05:21 +01:00
Jordi Boggiano ef7ba73a6a
Add support for bumping >=x to >=latest, fixes #11179 2022-12-17 23:02:52 +01:00
Jordi Boggiano 7f9638f65a
Fix implementation to fix tests, fixes #11220 2022-12-17 22:50:19 +01:00
PrinsFrank 6d1b36be3b
Check missing-from-lock-file required packages when running install and fail when there are any (#11195) 2022-12-16 16:48:24 +01:00
Andreas Möller caebfe14ee
Fix: Add test case for not dropping patch version 2022-12-12 17:25:20 +01:00
Ion Bazan 8ff237afb6
[Tests] Use static data providers (#11197) 2022-11-24 14:39:08 +01:00
Jordi Boggiano bd6a5019b3
Update to composer/pcre 2.1 (#11189) 2022-11-17 11:34:54 +01:00
Jordi Boggiano 5b28754602
Avoid normalizing to absolute paths if base dir is /toplevel to improve docker portability, fixes #11165, fixes #4404 (#11169) 2022-11-10 16:32:18 +01:00
Jordi Boggiano 6c85b875f2
Update to PHPStan 1.9 2022-11-03 21:53:42 +01:00
Jordi Boggiano 36bc30ffab
Make the require command guess versions more accurately by delegating to the solver (except with --no-update) (#11160) 2022-11-01 15:48:52 +01:00
Jordi Boggiano 6e55cb36d8
Add support for adding Command classes as scripts, (#11151)
* Add support for adding Command classes as scripts, fixes #11134

* Allow all options to be forwarded and allow using references to other scripts with args

* Fix build

* Add more checks

* Ensure exceptions are not swallowed, and remove naming restriction by using a single-command app

* Update docs

* Add tests, fix issue merging params when combining nested scripts and CLI params
2022-10-28 14:24:55 +02:00
Jordi Boggiano a63ce7cf96
Add message when doing composer outdated --direct and there is nothing to show, fixes #11152 (#11156) 2022-10-27 16:21:53 +02:00
Alex Theobold 97f4fbc4b0
Adds test coverage to the Fund Command (#11150)
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2022-10-26 13:40:01 +02:00
Alex Theobold b5b4e15876
test: Create test for CheckPlatformReqsCommand (#10932) 2022-10-25 19:42:42 +02:00
Giulio 1b3a2ed6f6
test: Coverage for ValidateCommand (#11133)
Co-authored-by: giulio-Joshi <me@joshi.it>
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2022-10-25 16:38:01 +02:00
Stephan Jorek d54f2f21c5
Feature: Add support for autocompleting setting-keys in config-command (#11130)
* Add support for autocompleting setting-keys in config-command

This PR implements the support for autocompletion of setting-keys in the
config-command and its related funtional tests. The implementation takes
existing command-line options like `--unset` or `--global` into account, as
well as existing exposable package-properties. The result is a context-
sensitive auto-completion of individual lists of setting-keys.

Additionally showing the value `suggest.` sub-keys has been allowed in
the config-command, as setting and unsetting them has alwas been possible,
and I did not want to distinguish between showing, setting and unsetting
those keys.

In the setting-key flattening-method I used the `array_is_list()` function,
which was added in PHP 8.1 recently. For backwards PHP-compatiblity the
package `symfony/polyfill-php81` has been added.

Signed-off-by: Stephan Jorek <stephan.jorek@brandung.de>
2022-10-25 16:24:02 +02:00
Jordi Boggiano 8ffd8bef08
Merge branch '2.4' 2022-10-25 15:27:14 +02:00
Ayesh Karunaratne 90673e4f66
Update URL masking patterns for new GitHub fine-grained PATs
Updates GitHub Personal Access Token regex pattern to detect new [fine-grained PATs](https://github.blog/changelog/2022-10-18-introducing-fine-grained-personal-access-tokens/)
2022-10-25 15:07:24 +02:00
Kuba Werłos e5b8f2d838
Add "--dry-run" to bump command (#11047) 2022-10-25 15:03:36 +02:00