-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Milestone
Description
My composer.json
:
{
"name": "jrfnl/composer-issue-12471",
"require-dev": {
"squizlabs/php_codesniffer": "^3.13",
"dealerdirect/phpcodesniffer-composer-installer": "*"
},
"repositories": [
{
"type": "artifact",
"url": "./artifact/"
}
],
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true
},
"lock": false
}
}
... with an artifact for the dealerdirect/phpcodesniffer-composer-installer
package.
For a minimal reproduction code sample, please check out: https://github.com/jrfnl/bug-report-reproduction-scenarios/tree/php-8.5/composer-with-artifact.
When I run this command on PHP 8.5:
composer install -vvv --no-interaction
I get the following output:
Running 2.8.9 (2025-05-13 14:01:37) with PHP 8.5.0-dev on Linux / 6.11.0-1015-azure
Reading ./composer.json (/home/runner/work/bug-report-reproduction-scenarios/bug-report-reproduction-scenarios/composer.json)
Loading config file ./composer.json (/home/runner/work/bug-report-reproduction-scenarios/bug-report-reproduction-scenarios/composer.json)
Checked CA file /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a file.
Checked directory /etc/pki/tls/certs/ca-bundle.crt does not exist or it is not a directory.
Checked CA file /etc/ssl/certs/ca-certificates.crt: valid
Executing command (/home/runner/work/bug-report-reproduction-scenarios/bug-report-reproduction-scenarios): 'git' 'branch' '-a' '--no-color' '--no-abbrev' '-v'
Reading /home/runner/.composer/composer.json
Loading config file /home/runner/.composer/composer.json (/home/runner/.composer/composer.json)
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Found package dealerdirect/phpcodesniffer-composer-installer (1.[9](https://github.com/jrfnl/bug-report-reproduction-scenarios/actions/runs/16180170758/job/45674763646#step:4:10)9.99) in file dealerdirect-phpcodesniffer-composer-installer-1.99.99.zip
Downloading https://repo.packagist.org/packages.json
[200] https://repo.packagist.org/packages.json
Writing /home/runner/.cache/composer/repo/https---repo.packagist.org/packages.json into cache
Downloading https://repo.packagist.org/p2/squizlabs/php_codesniffer.json
[200] https://repo.packagist.org/p2/squizlabs/php_codesniffer.json
Writing /home/runner/.cache/composer/repo/https---repo.packagist.org/provider-squizlabs~php_codesniffer.json into cache
Built pool.
Running pool optimizer.
Pool optimizer completed in 0.001 seconds
Found 127 package versions referenced in your dependency graph. 2 (2%) were optimized away.
Updating dependencies
Generating rules
Resolving dependencies through SAT
Looking at all rules.
Dependency resolution completed in 0.000 seconds
Analyzed 125 packages to resolve dependencies
Analyzed 132 rules to resolve dependencies
Generating rules
Resolving dependencies through SAT
Looking at all rules.
Dependency resolution completed in 0.000 seconds
Package operations: 2 installs, 0 updates, 0 removals
Installs: squizlabs/php_codesniffer:3.13.2, dealerdirect/phpcodesniffer-composer-installer:1.99.99
- Downloading squizlabs/php_codesniffer (3.13.2)
Downloading https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5b5e3821314f947dd040c70f7992a64eac89025c
- Downloading dealerdirect/phpcodesniffer-composer-installer (1.99.99)
- Downloading dealerdirect/phpcodesniffer-composer-installer (1.99.99)
- Downloading dealerdirect/phpcodesniffer-composer-installer (1.99.99)
- Downloading dealerdirect/phpcodesniffer-composer-installer (1.99.99)
[302] https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/5b5e3821314f947dd040c70f7992a64eac89025c
Following redirect (1) https://codeload.github.com/PHPCSStandards/PHP_CodeSniffer/legacy.zip/5b5e3821314f947dd040c70f7992a64eac89025c
[200] https://codeload.github.com/PHPCSStandards/PHP_CodeSniffer/legacy.zip/5b5e3821314f947dd040c70f7992a64eac89025c
Writing /home/runner/.cache/composer/files/squizlabs/php_codesniffer/61499251deb4180996e5439e8980cceeca492e46.zip into cache from /home/runner/work/bug-report-reproduction-scenarios/bug-report-reproduction-scenarios/vendor/composer/tmp-d506b31d6ef5fa2a81204e95087b17a9.zip
Error: stream_context_create(): Argument #1 ($options) must be an array with valid callbacks as values, cannot access protected method Composer\Util\RemoteFilesystem::callbackGet()
In StreamContextFactory.php line 56:
[TypeError]
stream_context_create(): Argument #1 ($options) must be an array with valid
callbacks as values, cannot access protected method Composer\Util\RemoteFi
lesystem::callbackGet()
Exception trace:
at phar:///usr/local/bin/composer/src/Composer/Util/StreamContextFactory.php:56
stream_context_create() at phar:///usr/local/bin/composer/src/Composer/Util/StreamContextFactory.php:56
Composer\Util\StreamContextFactory::getContext() at phar:///usr/local/bin/composer/src/Composer/Util/RemoteFilesystem.php:274
Composer\Util\RemoteFilesystem->get() at phar:///usr/local/bin/composer/src/Composer/Util/RemoteFilesystem.php:[10](https://github.com/jrfnl/bug-report-reproduction-scenarios/actions/runs/16180170758/job/45674763646#step:4:11)7
Composer\Util\RemoteFilesystem->copy() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:248
Composer\Util\HttpDownloader::{closure:Composer\Util\HttpDownloader::addJob():240}() at phar:///usr/local/bin/composer/vendor/react/promise/src/Promise.php:283
React\Promise\Promise->call() at phar:///usr/local/bin/composer/vendor/react/promise/src/Promise.php:41
React\Promise\Promise->__construct() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:280
Composer\Util\HttpDownloader->addJob() at phar:///usr/local/bin/composer/src/Composer/Util/HttpDownloader.php:178
Composer\Util\HttpDownloader->addCopy() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:195
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():158}() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:280
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():248}() at phar:///usr/local/bin/composer/vendor/react/promise/src/Internal/RejectedPromise.php:73
React\Promise\Internal\RejectedPromise->then() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:196
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():158}() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:280
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():248}() at phar:///usr/local/bin/composer/vendor/react/promise/src/Internal/RejectedPromise.php:73
React\Promise\Internal\RejectedPromise->then() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:196
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():158}() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:280
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():248}() at phar:///usr/local/bin/composer/vendor/react/promise/src/Internal/RejectedPromise.php:73
React\Promise\Internal\RejectedPromise->then() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:196
Composer\Downloader\FileDownloader->{closure:Composer\Downloader\FileDownloader::download():158}() at phar:///usr/local/bin/composer/src/Composer/Downloader/FileDownloader.php:301
Composer\Downloader\FileDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/ZipDownloader.php:100
Composer\Downloader\ZipDownloader->download() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:223
Composer\Downloader\DownloadManager->{closure:Composer\Downloader\DownloadManager::download():191}() at phar:///usr/local/bin/composer/src/Composer/Downloader/DownloadManager.php:235
Composer\Downloader\DownloadManager->download() at phar:///usr/local/bin/composer/src/Composer/Installer/LibraryInstaller.php:[11](https://github.com/jrfnl/bug-report-reproduction-scenarios/actions/runs/16180170758/job/45674763646#step:4:12)4
Composer\Installer\LibraryInstaller->download() at phar:///usr/local/bin/composer/src/Composer/Installer/PluginInstaller.php:74
Composer\Installer\PluginInstaller->download() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:280
Composer\Installer\InstallationManager->downloadAndExecuteBatch() at phar:///usr/local/bin/composer/src/Composer/Installer/InstallationManager.php:221
Composer\Installer\InstallationManager->execute() at phar:///usr/local/bin/composer/src/Composer/Installer.php:839
Composer\Installer->doInstall() at phar:///usr/local/bin/composer/src/Composer/Installer.php:649
Composer\Installer->doUpdate() at phar:///usr/local/bin/composer/src/Composer/Installer.php:298
Composer\Installer->run() at phar:///usr/local/bin/composer/src/Composer/Command/InstallCommand.php:147
Composer\Command\InstallCommand->execute() at phar:///usr/local/bin/composer/vendor/symfony/console/Command/Command.php:298
Symfony\Component\Console\Command\Command->run() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:1040
Symfony\Component\Console\Application->doRunCommand() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:301
Symfony\Component\Console\Application->doRun() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:397
Composer\Console\Application->doRun() at phar:///usr/local/bin/composer/vendor/symfony/console/Application.php:171
Symfony\Component\Console\Application->run() at phar:///usr/local/bin/composer/src/Composer/Console/Application.php:[13](https://github.com/jrfnl/bug-report-reproduction-scenarios/actions/runs/16180170758/job/45674763646#step:4:14)7
Composer\Console\Application->run() at phar:///usr/local/bin/composer/bin/composer:98
require() at /usr/local/bin/composer:29
install [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--dry-run] [--download-only] [--dev] [--no-suggest] [--no-dev] [--no-autoloader] [--no-progress] [--no-install] [--audit] [--audit-format AUDIT-FORMAT] [-v|vv|vvv|--verbose] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--apcu-autoloader-prefix APCU-AUTOLOADER-PREFIX] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--] [<packages>...]
Error: Process completed with exit code 1.
You can see this in the GH Actions workflow output for the above linked branch: https://github.com/jrfnl/bug-report-reproduction-scenarios/actions/runs/16180170758
And I expected this to happen:
The composer install
to succeed ;-)
The above works in all stable PHP versions I run tests with (PHP 5.4 - 8.4), but fails on PHP 8.5-dev.
Metadata
Metadata
Assignees
Labels
No labels