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>
* 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>
* Audit: ignores configured repository options
* ComposerRepository: add test case to assert that repo http options are used to make security advisory POST request
* 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
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).
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)
* 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
The behavior in FilterRepository is currently correct, but not explicitly tested.
Also add a test that ensures both filters can't be there simultaneously.
* 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>
* GitHubDriver: fix support is set to string
* GitLabDriver: fix support is set to string
* BitbucketDriver: fix support is set to string
* Fix PHPStan
* 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
* Docs: Fixed the deep links to the documentation website.
Search scope: `src/Composer/Command`.
* Docs: Fixed the deep links to the documentation website.
* 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
* 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>
I've added tests for the BumpCommand to increase the test coverage.
See #10796
Signed-off-by: Jesper Skytte <jesper@skytte.it>
Signed-off-by: Jesper Skytte <jesper@skytte.it>
composer install --download-only to prime the cache/download archives but not do any actual of the actual installing
Fixes#11035
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
* Fix show command showing the split of direct/transitive deps from outdated, fixes#10999
* Fix a few minor edge cases in show command, add tests for show and outdated commands