mediawiki/tools/phan/Utils (main)

sourcepatches
$ date
--- stdout ---
Mon Dec  2 04:49:07 UTC 2024

--- end ---
$ git clone file:///srv/git/mediawiki-tools-phan-Utils.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 ---
2cc250a594cb28aef808a9acfe3dbd54ebdbde48 refs/heads/master

--- end ---
$ /usr/bin/composer install
--- stderr ---
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
Updating dependencies
Lock file operations: 32 installs, 0 updates, 0 removals
  - Locking composer/semver (3.3.2)
  - Locking composer/spdx-licenses (1.5.8)
  - Locking composer/xdebug-handler (1.4.6)
  - Locking doctrine/deprecations (1.1.3)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v41.0.0)
  - Locking mediawiki/minus-x (1.1.1)
  - Locking microsoft/tolerant-php-parser (v0.0.23)
  - Locking netresearch/jsonmapper (v3.1.1)
  - Locking phan/phan (3.2.6)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.3.2)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.0)
  - Locking phpdocumentor/type-resolver (1.10.0)
  - Locking phpstan/phpdoc-parser (2.0.0)
  - Locking psr/container (2.0.2)
  - Locking psr/log (1.1.4)
  - Locking sabre/event (5.1.7)
  - Locking squizlabs/php_codesniffer (3.7.2)
  - Locking symfony/console (v5.4.47)
  - Locking symfony/deprecation-contracts (v3.5.1)
  - Locking symfony/polyfill-ctype (v1.31.0)
  - Locking symfony/polyfill-intl-grapheme (v1.31.0)
  - Locking symfony/polyfill-intl-normalizer (v1.31.0)
  - Locking symfony/polyfill-mbstring (v1.31.0)
  - Locking symfony/polyfill-php73 (v1.31.0)
  - Locking symfony/polyfill-php80 (v1.31.0)
  - Locking symfony/service-contracts (v3.5.1)
  - Locking symfony/string (v6.4.15)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 32 installs, 0 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Installing symfony/polyfill-php80 (v1.31.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.31.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.8): Extracting archive
  - Installing composer/semver (3.3.2): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.31.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.31.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.31.0): Extracting archive
  - Installing symfony/string (v6.4.15): Extracting archive
  - Installing symfony/deprecation-contracts (v3.5.1): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.5.1): Extracting archive
  - Installing symfony/polyfill-php73 (v1.31.0): Extracting archive
  - Installing symfony/console (v5.4.47): Extracting archive
  - Installing mediawiki/minus-x (1.1.1): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v3.1.1): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.0.23): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.0.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.3): Extracting archive
  - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.0): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (1.1.4): Extracting archive
  - Installing composer/xdebug-handler (1.4.6): Extracting archive
  - Installing phan/phan (3.2.6): 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.3.2): Extracting archive
  0/32 [>---------------------------]   0%
 20/32 [=================>----------]  62%
 31/32 [===========================>]  96%
 32/32 [============================] 100%
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
14 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---

--- end ---
Upgrading c:mediawiki/mediawiki-codesniffer from 41.0.0 -> 45.0.0
Upgrading c:mediawiki/minus-x from 1.1.1 -> 1.1.3
Upgrading c:php-parallel-lint/php-parallel-lint from 1.3.2 -> 1.4.0
$ /usr/bin/composer update
--- stderr ---
Loading composer repositories with package information
Updating dependencies
Lock file operations: 3 installs, 5 updates, 0 removals
  - Upgrading composer/semver (3.3.2 => 3.4.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
  - Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v45.0.0)
  - Upgrading mediawiki/minus-x (1.1.1 => 1.1.3)
  - Upgrading php-parallel-lint/php-parallel-lint (v1.3.2 => v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Upgrading squizlabs/php_codesniffer (3.7.2 => 3.10.3)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 3 installs, 5 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Upgrading squizlabs/php_codesniffer (3.7.2 => 3.10.3): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Upgrading composer/semver (3.3.2 => 3.4.3): Extracting archive
  - Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v45.0.0): Extracting archive
  - Upgrading mediawiki/minus-x (1.1.1 => 1.1.3): Extracting archive
  - Upgrading php-parallel-lint/php-parallel-lint (v1.3.2 => v1.4.0): Extracting archive
 0/6 [>---------------------------]   0%
 6/6 [============================] 100%
Generating autoload files
16 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 ---
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":2,"warnings":0,"fixable":2},"files":{"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/phan-config-for-plugins.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Utils.php":{"errors":2,"warnings":0,"messages":[{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?Context $context = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":94,"column":33},{"message":"Use PHP 8.4 compatible syntax for explicit nullable types (\"?string $caller = null\")","source":"MediaWiki.Usage.NullableType.ExplicitNullableTypes","severity":5,"fixable":true,"type":"ERROR","line":107,"column":42}]}}}

--- end ---
PHPCS run failed
$ vendor/bin/phpcbf
--- stdout ---

PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE                                                  FIXED  REMAINING
----------------------------------------------------------------------
/src/repo/src/Utils.php                               2      0
----------------------------------------------------------------------
A TOTAL OF 2 ERRORS WERE FIXED IN 1 FILE
----------------------------------------------------------------------

Time: 314ms; Memory: 6MB



--- end ---
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":0,"warnings":0,"fixable":0},"files":{"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/phan-config-for-plugins.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/src\/Utils.php":{"errors":0,"warnings":0,"messages":[]}}}

--- end ---
$ git checkout .phpcs.xml
--- stderr ---
Updated 0 paths from the index
--- stdout ---

--- end ---
Tests still failing. Skipping
$ /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
16 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
> phpcs -sp --cache
> minus-x check .
> phan -d . --long-progress-bar --allow-polyfill-parser
/src/repo/vendor/phan/phan/src/Phan/Library/Map.php:37 [8192] Return type of Phan\Library\Map::key() should either be compatible with SplObjectStorage::key(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice
(Phan 3.2.6 crashed)
More details:
#2: include() called at [/src/repo/vendor/composer/ClassLoader.php:582] Args: ["/src/repo/vendor/phan/phan/src/Phan/Bootstrap.php"]
#3: Composer\Autoload\{closure}() called at [/src/repo/vendor/composer/ClassLoader.php:433] Args: ["/src/repo/vendor/composer/../phan/phan/src/Phan/Library/Map.php"]
#4: Composer\Autoload\ClassLoader->loadClass() called at [/src/repo/vendor/phan/phan/src/Phan/CodeBase.php:222] Args: ["Phan\\Library\\Map"]
#5: Phan\CodeBase->__construct() called at [/src/repo/vendor/phan/phan/src/codebase.php:16] Args: [["InternalIterator", "Exception", "ErrorException", "Error", "CompileError", "ParseError", "TypeError", "ArgumentCountError", "ValueError", "ArithmeticError", ... 237 more element(s)], ["Traversable", "IteratorAggregate", "Iterator", "Serializable", "ArrayAccess", "Countable", "Stringable", "Throwable", "UnitEnum", "BackedEnum", ... 40 more element(s)], ["Phan\\PluginV3\\IssueEmitter"], ["true", "false", "null", "E_ERROR", "E_WARNING", "E_PARSE", "E_NOTICE", "E_CORE_ERROR", "E_CORE_WARNING", "E_COMPILE_ERROR", ... 2747 more element(s)], ["zend_version", "func_num_args", "func_get_arg", "func_get_args", "strlen", "strcmp", "strncmp", "strcasecmp", "strncasecmp", "error_reporting", ... 1744 more element(s)]]
#6: require() called at [/src/repo/vendor/phan/phan/src/phan.php:26] Args: ["/src/repo/vendor/phan/phan/src/codebase.php"]
#7: require_once() called at [/src/repo/vendor/phan/phan/phan:10] Args: ["/src/repo/vendor/phan/phan/src/phan.php"]
#8: include() called at [/src/repo/vendor/bin/phan:120] Args: ["/src/repo/vendor/phan/phan/phan"]
PHP Fatal error:  Object of class UnwindExit could not be converted to string in /src/repo/vendor/phan/phan/src/Phan/Library/Map.php on line 0
Script phan -d . --long-progress-bar --allow-polyfill-parser handling the test event returned with error code 255
--- stdout ---
PHP 8.2.20 | 10 parallel jobs
...                                                          3/3 (100%)


Checked 3 files in 0.1 seconds
No syntax error found
... 3 / 3 (100%)


Time: 95ms; Memory: 8MB

MinusX
======
Processing /src/repo...
...........
All good!

--- end ---
Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1868, in main
    libup.run(args.repo, args.output, args.branch)
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1808, in run
    self.composer_upgrade(plan)
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 984, in composer_upgrade
    self.composer_test()
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 341, in composer_test
    self.check_call(["composer", "test"])
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/shell2.py", line 59, in check_call
    res.check_returncode()
  File "/usr/lib/python3.11/subprocess.py", line 502, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '['/usr/bin/composer', 'test']' returned non-zero exit status 255.

composer dependencies

Dependencies
Development dependencies

Logs

Source code is licensed under the AGPL.