* Add allow-missing-requirements configuration to ignore error during install if there are any missing requirements
* Add test for allow-missing-requirements config
---------
Co-authored-by: Joe <joe@wpj.cz>
* Add `--abandoned` option
* Refactoring
- Use `Auditor::ABANDONEDS` in `Config.php`
- Drop `getAuditAbandoned()` from `BaseCommand.php`
* Modify cli docs
* 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
* Disallow plugins by throwing an exception if non-interactive to avoid half-broken runtime states, fixes#10912
* Also allow BC mode for lock files older than 2.2.0 to keep plugins working there
* Allow locker to be accessed by plugin manager at init time
* Update allow-plugins docs
Co-authored-by: Damien Tournoud <damien@platform.sh>
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
the `$home` variable referenced in the conifguration docs for data- and
cache-dir is a reference to an internal PHP variable that contains the
composer home directory.
as on the documentation page it is not visible where that variable comes
from (the document uses only shell/environment variables otherwise) these
two places are hard to read/understand.
the exact meaning of `$home` (lowercase) is the composer-home (or just
home) global configuration setting (composer home is for all user-wide
composer invocations, to store data in the filesystem namespace of the
user executing composer).
that meaning is better documented with the `$COMPOSER_HOME` environment
variable (which when it does not exists the default value is well
documented in [03-cli.md#composer-home].
replace `$home` with `$COMPOSER_HOME`.
additionally small typo fix on "rollback" which is "roll back".
discussion: #10363
[03-cli.md#composer-home]: doc/03-cli.md#composer-home
Fixes#5659
- Automatically switch off plugins by default in July 2022
- reword hash into object in schema
Co-authored-by: Nils Adermann <naderman@naderman.de>
Always create proxy files for package binaries,
to avoid not working binaries in case the package
was installed from a path repository and is itself linked
If the binary is a PHP script, a global variable is now exposed,
which holds the path to the vendor/autoload.php file.
This variable can the be used in the binaries to include this file
without guessing where the path to the vendor folder might be.
Additionally it is now checked on binary creation whether
the reference binary has a shebang and if not, generates
a much simple proxy code, because the stream wrapper code,
that is required for PHP <8 to omit the shebang from the output,
can be skipped.
Fixes: #10119
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
They only serve to make anyone reading the docs who doesn't find
something as simple or easy as stated feel bad about themselves, they
don't add anything valuable to the docs in these cases.
When the `lock` option is set to false, composer will not write a
`composer.lock` file to disk. This signals that the package is meant
to be developed with unlocked and always updated dependencies. At the
moment, both `install` and `update` are allowed to install the
dependencies for such a package. If #6822 is implemented, only `update`
should be used for packages without a lockfile.
https://github.com/composer/composer/issues/8354