1097 Commits (e52071a92c7f5c34c373ab880e1d0b37cc435c42)

Author SHA1 Message Date
Jordi Boggiano 1e3f7cfcba
Fix handling of json error responses 3 years ago
John Stevenson 8f974fe741 Improve Windows escaping 3 years ago
Jordi Boggiano cb1e248258
Fix type annotation 3 years ago
Jordi Boggiano 18e24976c1
Merge branch '1.10' 3 years ago
Jordi Boggiano ca5e2f8d50
Fix escaping issues on Windows which could lead to command injection, fixes GHSA-frqg-7g38-6gcf 3 years ago
Jordi Boggiano b3eebeb3b9
Merge pull request from GHSA-frqg-7g38-6gcf 3 years ago
Jordi Boggiano a7963b7fed
Fix ComposerRepository handling of offline state to allow resolution as long as everything is present in the cache, fixes #10116 3 years ago
Sergii Dolgushev 90d112d98a
Mask Git credentials in the error message (#10115) 3 years ago
Vitaly Baev 7305d50277
Changed GitLab's applications URL (#10104) 3 years ago
Jordi Boggiano 6179f33c74
Fix docker being seen as WSL when run inside WSL, fixes #10094 3 years ago
Jordi Boggiano 6c9aecf4e7
Ignore all symfony deprecations 3 years ago
Jordi Boggiano 0761474599
Add type info to many properties/methods 3 years ago
Jordi Boggiano 024f0eda53
Add a bunch of type info to Util namespace 3 years ago
Jordi Boggiano b8e461ea61
Make sure /proc/version read does not fail the process ever, closes #10080 3 years ago
powellblyth 5e75017166
Just some comments with 'it's' that should have been 'its' (#10071)
Co-authored-by: Toby Powell-Blyth <tobypowell-blyth@elasticstage.com>
3 years ago
Jordi Boggiano d3c176ec69
PHPStan Level 5 (#10070)
* Bump PHPStan to level 5

* Update seld/phar-utils to latest

* Add phpstan-setup / phpstan scripts
3 years ago
Jordi Boggiano a586a753df
Fix all remaining php8.1 test suite deprecations 3 years ago
Jordi Boggiano 6aa2d15868
Introduce ProcessExecutorMock to fix deprecations and amount of mocking pain 3 years ago
Jordi Boggiano c5a02a2b58
Fix return value of ProcessExecutor::getErrorOutput, closes #10054 3 years ago
Stephan c65bd832d6
Url: fix sanitize for new github tokens (#10048) 3 years ago
Juliette f5a0dfeb50
PHP 8.1: fix deprecation warnings about incorrect default values (#10036)
* PHP 8.1/Tests: fix some deprecation warnings

The default value for the `preg_split()` `$limit` parameter is `-1`, not `null`.

Fixes numerous `preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated` notices when running the test suite.

Ref: https://www.php.net/manual/en/function.preg-split.php

* PHP 8.1/NoProxyPattern: fix deprecation warning

The default value for the `preg_split()` `$limit` parameter is `-1`, not `null`.

Fixes some `preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated` notices when running the test suite.

```
Deprecation triggered by Composer\Test\Util\Http\ProxyManagerTest::testGetProxyForRequest:
preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated

Stack trace:
0 [internal function]: Symfony\Bridge\PhpUnit\DeprecationErrorHandler->handleError(8192, '...', '...', 42)
1 src/Composer/Util/NoProxyPattern.php(42): preg_split('...', '...', NULL, 1)
2 src/Composer/Util/Http/ProxyManager.php(148): Composer\Util\NoProxyPattern->__construct('...')
3 src/Composer/Util/Http/ProxyManager.php(50): Composer\Util\Http\ProxyManager->initProxyData()
4 src/Composer/Util/Http/ProxyManager.php(59): Composer\Util\Http\ProxyManager->__construct()
5 tests/Composer/Test/Util/Http/ProxyManagerTest.php(75): Composer\Util\Http\ProxyManager::getInstance()
...
```

Ref: https://www.php.net/manual/en/function.preg-split.php

* PHP 8.1: fix deprecation warnings / http_build_query()

This fixes all relevant calls to the PHP native `http_build_query()` function.
The second parameter of which is the _optional_ `$numeric_prefix` parameter which expects a `string`.

A parameter being optional, however, does not automatically make it nullable.

As of PHP 8.1, passing `null` to a non-nullable PHP native function will generate a deprecation notice.
In this case, these function calls yielded a `http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated` notice.

Changing the `null` to an empty string fixes this without BC-break.

Fixes a few deprecation warnings found when running the tests.

Refs:
* https://www.php.net/manual/en/function.http-build-query.php
* https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg

* PHP 8.1: fix deprecation notices / PharData::__construct()

This fixes all relevant calls to the PHP native `PharData::__construct()` method.

The second parameter of this method is the _optional_ `$flags` parameter which expects an `int` of flags to be passed to the `Phar` parent class `RecursiveDirectoryIterator`.
Fixed by passing the default value for the `$flags` parameter as per the `RecursiveDirectoryIterator::__construct()` method.

The third parameter of the method is the _optional_ `$alias` parameter which expects an `string`.
Fixed by passing an empty string.

Fixes various notices along the lines of:
```
Deprecation triggered by Composer\Test\Package\Archiver\ArchiveManagerTest::testArchiveTar:
PharData::__construct(): Passing null to parameter #2 ($flags) of type int is deprecated

Stack trace:
0 [internal function]: Symfony\Bridge\PhpUnit\DeprecationErrorHandler->handleError(8192, '...', '...', 55)
1 src/Composer/Package/Archiver/PharArchiver.php(55): PharData->__construct('...', NULL, NULL, 2)
2 src/Composer/Package/Archiver/ArchiveManager.php(193): Composer\Package\Archiver\PharArchiver->archive('...', '...', '...', Array, false)
3 tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php(65): Composer\Package\Archiver\ArchiveManager->archive(Object(Composer\Package\CompletePackage), '...', '...')
...
```

Refs:
* https://www.php.net/manual/en/phardata.construct.php
* https://www.php.net/manual/en/recursivedirectoryiterator.construct.php

Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
3 years ago
Jordi Boggiano 1f4401005c
Allow default_socket_timeout to extend the curl timeout if it is longer than 300s, fixes #10018 3 years ago
Jordi Boggiano 2be03f0d60
More fixes for php8.1 deprecations 3 years ago
Jordi Boggiano a7efb27338
More php8.1 deprecation fixes, refs #10008 3 years ago
Jordi Boggiano 47cf602f9e
Fix more PHP 8.1 deprecations, refs #10008 3 years ago
Ondrej Mirtes 79093d664b Update PHPStan and remove ignore 3 years ago
Jordi Boggiano bacbd15b6b
Fix open_basedir support regession in bfea0f7d1 3 years ago
Jordi Boggiano cc81f5bac3
Fix support for UNC paths in normalizePath, refs #9993 3 years ago
Jordi Boggiano 6c1f0cdf24
Handle edge cases too in removeDirectoryPhp to avoid trying to delete symlinks and such, fixes #9955 3 years ago
Jordi Boggiano f61f2c6872
Also free $file just in case 3 years ago
Jordi Boggiano c4f675fe84
Fix virtualbox filesystem issue when installing packages, fixes #9945 3 years ago
Jordi Boggiano c1f0eee154
Revert "Attempt fixing virtualbox issues, refs #9945"
This reverts commit 7a7e0cc031.
3 years ago
Jordi Boggiano 7a7e0cc031
Attempt fixing virtualbox issues, refs #9945 3 years ago
Jordi Boggiano 288e19153d
Alternative fix for #9941 to avoid code duplication 3 years ago
Jordi Boggiano d77ff0f729
Workaround for PCRE regression 3 years ago
Jordi Boggiano 1b34495daa
Some phpstan level 4 fixes 3 years ago
Jordi Boggiano 4c9e75c6e5
Fix CS 3 years ago
Jordi Boggiano 10e634890e
Good morning 😴 3 years ago
Jordi Boggiano 91dd175f74
Fix env var handling when variables_order includes E and symfony/console 3.3.15+ is used, fixes #9930 3 years ago
Jordi Boggiano 93a5b27631
Add prettyVersion to URL placeholders 3 years ago
Guilliam Xavier 41c66b1a2d Revert "Update docs and add more helpful output to validate command, refs #9782"
This reverts commit 458bd41d8f.
3 years ago
Jordi Boggiano 458bd41d8f
Update docs and add more helpful output to validate command, refs #9782 3 years ago
Jordi Boggiano 991985792d
Merge branch '2.0' 3 years ago
Jordi Boggiano 251b852fd2
Make sure async processes fail the promise if they fail to start, fixes #9808 3 years ago
Jordi Boggiano 9ba042ded8
Add Platform-PHP version to user-agent header to improve targetted-php stats (#9873) 3 years ago
Jordi Boggiano 5bf614a762
Merge branch '2.0' 3 years ago
Jordi Boggiano dd54f295fe
Fix progress output, and remove progress bar on CI env, fixes #9621, closes #9880 3 years ago
Jordi Boggiano 3380178798
Introduce a cross-platform safe version of is_readable to support UNC / wsl$ paths on Windows (#9861) 3 years ago
Markus Staab bfea0f7d1e
BinaryInstaller: install full binaries on WSL when bin-compat=auto (#9855) 3 years ago
Jordi Boggiano 40c7a725e1
Merge branch '2.0' 3 years ago
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
3 years ago
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
3 years ago
Markus Staab 7c602d8807
Added link to composer.org docs on ProcessTimedOutException (#9796) 3 years ago
Jordi Boggiano a4eb2d4096
Merge branch '2.0' 3 years ago
Jordi Boggiano ddc3693725
Switch to composer/metadata-minifier, fixes #9727 3 years ago
Jordi Boggiano dca8bd7197
Merge branch '2.0' 3 years ago
Jordi Boggiano dc84dbbbf7
Fixed detection of hg version when localized, fixes #9753 3 years ago
Jordi Boggiano 53a974f9c9
Tweak virtualbox detection and improve it by detecting vbox additions, refs #9627 3 years ago
Jordi Boggiano 836ca051d3
Merge branch '1.10' into 2.0 3 years ago
Jordi Boggiano 96acad1e45
Update github token pattern to match their latest updates 3 years ago
Jordi Boggiano bf73a20bc0
Merge branch '2.0' 3 years ago
Stephan 2f4b99eacd
MaxFileSizeException should reject download job (#9778) 3 years ago
Jordi Boggiano 346356a4dd
Fix phpdoc 3 years ago
Jordi Boggiano 5d6f9b2528
Prefer @phpstan- annotations as that is what we run against 3 years ago
Jordi Boggiano b40b93bc7d
Merge branch '2.0' 3 years ago
Jordi Boggiano 414586ba05
Attempt working around Vagrant filesystem issues, added COMPOSER_RUNTIME_ENV env var (set to vagrant), fixes #9627 3 years ago
Jordi Boggiano 059b5b197d
Merge branch '2.0' 3 years ago
Jordi Boggiano c81562b343
Merge branch '1.10' into 2.0 3 years ago
Jordi Boggiano 54889ca109
Document GH token usage and also make sure we redact them in Process debug output, refs #9757 3 years ago
Jordi Boggiano 4940009f83
Bump phpstan to level 3 (#9734)
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
3 years ago
Jordi Boggiano d0b399b788
Merge branch '2.0' 3 years ago
John Stevenson 4f47a4c667
Proxy handling docs and tweaks (#9735) 3 years ago
Jordi Boggiano 40800df6bd
Fix CS 3 years ago
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
3 years ago
Jordi Boggiano bbd87934e9
Make sure we always pass a string to strtoupper 3 years ago
Jordi Boggiano 31d9f51572
Auto-detect mingw and assume it is interactive, fixes #9690 3 years ago
Jordi Boggiano e7f6dd287c
Merge branch '1.10' 3 years ago
Jordi Boggiano abcf9e993b
Fix processes silently ignoring the CWD when it does not exist, refs #9694 3 years ago
Jordi Boggiano f37f3dab04
Fix abort of downloads and zip extraction to happen immediately, fixes #9390 3 years ago
Jordi Boggiano 40095b20dc
Allow tweaking the max parallel http requests via env var, fixes #9671 3 years ago
Jordi Boggiano 8d94e25c2f
Minor fixes 3 years ago
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 3 years ago
Jordi Boggiano 4ade9bd960
Avoid accessing undefined indices, fixes #9654 3 years ago
Jordi Boggiano 1a0e578b14
Remove ungreedy modifier and make a few domain matches case insensitive, fixes #9656 3 years ago
Jordi Boggiano 125f8a3319
Merge branch '1.10' 3 years ago
Jordi Boggiano 2cb9630320
Fix $_SERVER var not being updated when using putenv, refs b80038804f and fixes #9372 3 years ago
Jordi Boggiano 5c35f37f92
Properly handle installed repos as additionalFixedRepository, fixes #9574 3 years ago
Jordi Boggiano c800db04d3
Merge pull request #9616 from clxmstaab/fast-first
Filesystem: use fast operation first in emptyDirectory()
4 years ago
Jordi Boggiano 09bf5ec85c
Merge pull request #9615 from clxmstaab/is-dir
Filesystem: use is_dir() instead of file_exists() which is faster
4 years ago
Jordi Boggiano c33f2615b5
Include json response bodies in transport exceptions, fixes #9606 4 years ago
Jordi Boggiano 7ea17d7db9
Merge remote-tracking branch 'naderman/curl-download-performance-select-not-sleep' 4 years ago
Markus Staab 62817a4cb2 fast operation first 4 years ago
Markus Staab 6774e7ee29 Filesystem: use fast operation first in emptyDirectory() 4 years ago
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
4 years ago
Nils Adermann 8a85a79b50 Remove debug output 4 years ago
Nils Adermann f72ad485ef Revert lastInfoUpdate change to keep full comaptibility to current behavior 4 years ago
Jordi Boggiano 147d884996
Also avoid matching .git suffix in bitbucket URLs, refs #9590 4 years ago
Nils Adermann d665301368 Rewrite while if return as do while 4 years ago
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.
4 years ago
Jordi Boggiano a20ee1a448
Avoid matching .git suffix if present in private github URLs, fixes #9590 4 years ago