* 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.
`IOInterface::select()` either returns any of `int`, `string`, `bool` or an
array of `string` values. However, since the returned array is always a
list, we can safely change the return type annotation to `list<string>`,
making it more explicit in terms of static code analysis.
* 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>
This affects the banner at the head of the help screen and the version info.
Symfony's base object offers the same signature but composer does not allow
to override it in constructor.
Yet there are public setter methods to change both after initializing the object.
This is the workaround satis cli currently uses.