This run took 15 seconds.
$ date --- stdout --- Wed Oct 8 05:59:16 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-libs-Shellbox.git repo --depth=1 -b master --- stderr --- Cloning into 'repo'... --- stdout --- --- end --- $ git config user.name libraryupgrader --- stdout --- --- end --- $ git config user.email tools.libraryupgrader@tools.wmflabs.org --- stdout --- --- end --- $ git submodule update --init --- stdout --- --- end --- $ grr init --- stdout --- Installed commit-msg hook. --- end --- $ git show-ref refs/heads/master --- stdout --- d65952c34c901fc21de7ea0fed5674f01e431fcd refs/heads/master --- end --- Upgrading c:ockcyp/covers-validator from 1.6.0 -> 1.7.0 $ /usr/bin/composer update --- stderr --- Loading composer repositories with package information Updating dependencies Lock file operations: 0 installs, 2 updates, 0 removals - Upgrading monolog/monolog (2.10.0 => 3.9.0) - Upgrading ockcyp/covers-validator (v1.6.0 => v1.7.0) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 80 installs, 0 updates, 0 removals - Downloading symfony/deprecation-contracts (v2.5.4) - Downloading symfony/string (v5.4.47) - Downloading symfony/service-contracts (v2.5.4) - Downloading symfony/console (v5.3.16) - Downloading symfony/var-dumper (v5.4.48) - Downloading psy/psysh (v0.10.12) 0/6 [>---------------------------] 0% 3/6 [==============>-------------] 50% 6/6 [============================] 100% - Installing squizlabs/php_codesniffer (3.13.2): Extracting archive - Installing dealerdirect/phpcodesniffer-composer-installer (v1.1.2): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing symfony/deprecation-contracts (v2.5.4): Extracting archive - Installing psr/http-message (2.0): Extracting archive - Installing psr/http-client (1.0.3): Extracting archive - Installing ralouphie/getallheaders (3.0.3): Extracting archive - Installing psr/http-factory (1.1.0): Extracting archive - Installing guzzlehttp/psr7 (2.8.0): Extracting archive - Installing guzzlehttp/promises (2.3.0): Extracting archive - Installing guzzlehttp/guzzle (7.10.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.1.1): Extracting archive - Installing phpcsstandards/phpcsextra (1.4.0): Extracting archive - Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive - Installing composer/spdx-licenses (1.5.9): Extracting archive - Installing composer/semver (3.4.4): Extracting archive - Installing mediawiki/mediawiki-codesniffer (v48.0.0): Extracting archive - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive - Installing symfony/string (v5.4.47): Extracting archive - Installing psr/container (1.1.2): Extracting archive - Installing symfony/service-contracts (v2.5.4): Extracting archive - Installing symfony/polyfill-php73 (v1.33.0): Extracting archive - Installing symfony/console (v5.3.16): Extracting archive - Installing sabre/event (5.1.7): Extracting archive - Installing netresearch/jsonmapper (v4.5.0): Extracting archive - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive - Installing webmozart/assert (1.11.0): Extracting archive - Installing phpstan/phpdoc-parser (2.3.0): Extracting archive - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive - Installing doctrine/deprecations (1.1.5): Extracting archive - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive - Installing phpdocumentor/reflection-docblock (5.6.3): Extracting archive - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive - Installing psr/log (3.0.2): Extracting archive - Installing composer/xdebug-handler (3.0.5): Extracting archive - Installing phan/phan (5.5.1): Extracting archive - Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive - Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive - Installing mediawiki/minus-x (1.1.3): Extracting archive - Installing monolog/monolog (3.9.0): Extracting archive - Installing sebastian/version (3.0.2): Extracting archive - Installing sebastian/type (3.2.1): Extracting archive - Installing sebastian/resource-operations (3.0.4): Extracting archive - Installing sebastian/recursion-context (4.0.6): Extracting archive - Installing sebastian/object-reflector (2.0.4): Extracting archive - Installing sebastian/object-enumerator (4.0.4): Extracting archive - Installing sebastian/global-state (5.0.8): Extracting archive - Installing sebastian/exporter (4.0.8): Extracting archive - Installing sebastian/environment (5.1.5): Extracting archive - Installing sebastian/diff (4.0.6): Extracting archive - Installing sebastian/comparator (4.0.9): Extracting archive - Installing sebastian/code-unit (1.0.8): Extracting archive - Installing sebastian/cli-parser (1.0.2): Extracting archive - Installing phpunit/php-timer (5.0.3): Extracting archive - Installing phpunit/php-text-template (2.0.4): Extracting archive - Installing phpunit/php-invoker (3.1.1): Extracting archive - Installing phpunit/php-file-iterator (3.0.6): Extracting archive - Installing theseer/tokenizer (1.2.3): Extracting archive - Installing nikic/php-parser (v4.19.4): Extracting archive - Installing sebastian/lines-of-code (1.0.4): Extracting archive - Installing sebastian/complexity (2.0.3): Extracting archive - Installing sebastian/code-unit-reverse-lookup (2.0.3): Extracting archive - Installing phpunit/php-code-coverage (9.2.32): Extracting archive - Installing phar-io/version (3.2.1): Extracting archive - Installing phar-io/manifest (2.0.4): Extracting archive - Installing myclabs/deep-copy (1.13.4): Extracting archive - Installing doctrine/instantiator (2.0.0): Extracting archive - Installing phpunit/phpunit (9.6.21): Extracting archive - Installing ockcyp/covers-validator (v1.7.0): Extracting archive - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive - Installing symfony/var-dumper (v5.4.48): Extracting archive - Installing psy/psysh (v0.10.12): Extracting archive - Installing wikimedia/base-convert (v2.0.2): Extracting archive - Installing wikimedia/wikipeg (6.0.0): Extracting archive 0/78 [>---------------------------] 0% 28/78 [==========>-----------------] 35% 45/78 [================>-----------] 57% 63/78 [======================>-----] 80% 78/78 [============================] 100% Generating autoload files 49 packages you are using are looking for funding. Use the `composer fund` command to find out more! No security vulnerability advisories found. --- stdout --- PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils --- end --- $ /usr/bin/composer install --- stderr --- Installing dependencies from lock file (including require-dev) Verifying lock file contents can be installed on current platform. Nothing to install, update or remove Generating autoload files 49 packages you are using are looking for funding. Use the `composer fund` command to find out more! --- stdout --- --- end --- $ /usr/bin/composer test --- stderr --- > parallel-lint . --exclude vendor > phpunit Script phpunit handling the test event returned with error code 2 --- stdout --- PHP 8.4.11 | 10 parallel jobs ............................................................ 60/85 ( 70%) ......................... 85/85 (100%) Checked 85 files in 0.3 seconds No syntax error found PHPUnit 9.6.21 by Sebastian Bergmann and contributors. ESSSSSSSSSSSSS............E.EE.E.......E..ESSSSSSSSSSSSSSSSSSSS 63 / 249 ( 25%) SS............................................................. 126 / 249 ( 50%) ............................................................... 189 / 249 ( 75%) ........................................................ Time: 00:02.244, Memory: 12.00 MB There were 7 errors: 1) Shellbox\Tests\ClientTest::testSimpleCall GuzzleHttp\Exception\ServerException: Server error: `GET http://localhost:8033/sbtest.php/healthz` resulted in a `500 Internal Server Error` response in /src/repo/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:111 Stack trace: #0 /src/repo/vendor/guzzlehttp/guzzle/src/Middleware.php(72): GuzzleHttp\Exception\RequestException::create() #1 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(209): GuzzleHttp\Middleware::{closure:{closure:{closure:GuzzleHttp\Middleware::httpErrors():60}:61}:67}() #2 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler() #3 /src/repo/vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::{closure:GuzzleHttp\Promise\Promise::settle():156}() #4 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Promise\TaskQueue->run() #5 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn() #6 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #7 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #8 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending() #9 /src/repo/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Promise\Promise->wait() #10 /src/repo/tests/ClientServerTestCase.php(116): GuzzleHttp\Client->request() #11 /src/repo/vendor/phpunit/phpunit/src/Framework/TestSuite.php(629): Shellbox\Tests\ClientServerTestCase::clientServerSetUpBeforeClass() #12 /src/repo/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() #13 /src/repo/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() #14 /src/repo/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(651): PHPUnit\Framework\TestSuite->run() #15 /src/repo/vendor/phpunit/phpunit/src/TextUI/Command.php(146): PHPUnit\TextUI\TestRunner->run() #16 /src/repo/vendor/phpunit/phpunit/src/TextUI/Command.php(99): PHPUnit\TextUI\Command->run() #17 /src/repo/vendor/phpunit/phpunit/phpunit(107): PHPUnit\TextUI\Command::main() #18 /src/repo/vendor/bin/phpunit(122): include('...') #19 {main} 2) Shellbox\Tests\Command\LocalBoxedExecutorTest::testInputFileFromUrlWithHeaders TypeError: Monolog\Handler\TestHandler::hasRecordThatContains(): Argument #2 ($level) must be of type Monolog\Level, int given, called in /src/repo/tests/Command/BoxedExecutorTestTrait.php on line 148 /src/repo/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php:138 /src/repo/tests/Command/BoxedExecutorTestTrait.php:148 3) Shellbox\Tests\Command\LocalBoxedExecutorTest::testOutputFileToUrl TypeError: Monolog\Handler\TestHandler::hasRecordThatContains(): Argument #2 ($level) must be of type Monolog\Level, int given, called in /src/repo/tests/Command/BoxedExecutorTestTrait.php on line 175 /src/repo/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php:138 /src/repo/tests/Command/BoxedExecutorTestTrait.php:175 4) Shellbox\Tests\Command\LocalBoxedExecutorTest::testOutputFileToUrlWithHeaders TypeError: Monolog\Handler\TestHandler::hasRecordThatContains(): Argument #2 ($level) must be of type Monolog\Level, int given, called in /src/repo/tests/Command/BoxedExecutorTestTrait.php on line 194 /src/repo/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php:138 /src/repo/tests/Command/BoxedExecutorTestTrait.php:194 5) Shellbox\Tests\Command\LocalBoxedExecutorTest::testOutputGlobToUrl TypeError: Monolog\Handler\TestHandler::hasRecordThatContains(): Argument #2 ($level) must be of type Monolog\Level, int given, called in /src/repo/tests/Command/BoxedExecutorTestTrait.php on line 222 /src/repo/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php:138 /src/repo/tests/Command/BoxedExecutorTestTrait.php:222 6) Shellbox\Tests\Command\LocalBoxedExecutorTest::testLogStderr TypeError: Monolog\Handler\TestHandler::hasRecordThatContains(): Argument #2 ($level) must be of type Monolog\Level, int given, called in /src/repo/tests/Command/BoxedExecutorTestTrait.php on line 326 /src/repo/vendor/monolog/monolog/src/Monolog/Handler/TestHandler.php:138 /src/repo/tests/Command/BoxedExecutorTestTrait.php:326 7) Shellbox\Tests\Command\RemoteBoxedExecutorTest::testExecuteEcho GuzzleHttp\Exception\ServerException: Server error: `GET http://localhost:8033/sbtest.php/healthz` resulted in a `500 Internal Server Error` response in /src/repo/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:111 Stack trace: #0 /src/repo/vendor/guzzlehttp/guzzle/src/Middleware.php(72): GuzzleHttp\Exception\RequestException::create() #1 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(209): GuzzleHttp\Middleware::{closure:{closure:{closure:GuzzleHttp\Middleware::httpErrors():60}:61}:67}() #2 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler() #3 /src/repo/vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::{closure:GuzzleHttp\Promise\Promise::settle():156}() #4 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Promise\TaskQueue->run() #5 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn() #6 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #7 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #8 /src/repo/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending() #9 /src/repo/vendor/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\Promise\Promise->wait() #10 /src/repo/tests/ClientServerTestCase.php(116): GuzzleHttp\Client->request() #11 /src/repo/vendor/phpunit/phpunit/src/Framework/TestSuite.php(629): Shellbox\Tests\ClientServerTestCase::clientServerSetUpBeforeClass() #12 /src/repo/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() #13 /src/repo/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() #14 /src/repo/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(651): PHPUnit\Framework\TestSuite->run() #15 /src/repo/vendor/phpunit/phpunit/src/TextUI/Command.php(146): PHPUnit\TextUI\TestRunner->run() #16 /src/repo/vendor/phpunit/phpunit/src/TextUI/Command.php(99): PHPUnit\TextUI\Command->run() #17 /src/repo/vendor/phpunit/phpunit/phpunit(107): PHPUnit\TextUI\Command::main() #18 /src/repo/vendor/bin/phpunit(122): include('...') #19 {main} ERRORS! Tests: 249, Assertions: 244, Errors: 7, Skipped: 35. --- end --- Traceback (most recent call last): File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 2030, in main libup.run(args.repo, args.output, args.branch) ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1967, in run self.composer_upgrade(plan) ~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 1030, in composer_upgrade self.composer_test() ~~~~~~~~~~~~~~~~~~^^ File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 340, in composer_test self.check_call(["composer", "test"]) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^ File "/venv/lib/python3.13/site-packages/runner/shell2.py", line 63, in check_call res.check_returncode() ~~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib/python3.13/subprocess.py", line 508, in check_returncode raise CalledProcessError(self.returncode, self.args, self.stdout, self.stderr) subprocess.CalledProcessError: Command '['/usr/bin/composer', 'test']' returned non-zero exit status 2.