mediawiki/extensions/Springboard: main (log #1930557)

sourcepatches

This run took 12 seconds.

$ date
--- stdout ---
Fri Jun  6 04:47:55 UTC 2025

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-Springboard.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 ---
674121ed9ff8493d6b689f656d1ec7f6ff406493 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: 37 installs, 0 updates, 0 removals
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.3.2)
  - Locking composer/spdx-licenses (1.5.9)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking doctrine/deprecations (1.1.5)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking mediawiki/mediawiki-codesniffer (v41.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.12.1)
  - Locking mediawiki/minus-x (1.1.1)
  - Locking mediawiki/phan-taint-check-plugin (4.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.1)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking phan/phan (5.4.1)
  - 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.2)
  - Locking phpdocumentor/type-resolver (1.10.0)
  - Locking phpstan/phpdoc-parser (2.1.0)
  - Locking psr/container (2.0.2)
  - Locking psr/log (2.0.0)
  - Locking sabre/event (5.1.7)
  - Locking squizlabs/php_codesniffer (3.7.2)
  - Locking symfony/console (v5.4.47)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/polyfill-ctype (v1.32.0)
  - Locking symfony/polyfill-intl-grapheme (v1.32.0)
  - Locking symfony/polyfill-intl-normalizer (v1.32.0)
  - Locking symfony/polyfill-mbstring (v1.32.0)
  - Locking symfony/polyfill-php73 (v1.32.0)
  - Locking symfony/polyfill-php80 (v1.32.0)
  - Locking symfony/service-contracts (v3.6.0)
  - Locking symfony/string (v6.4.21)
  - Locking symfony/yaml (v6.4.21)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 37 installs, 0 updates, 0 removals
  - Downloading symfony/yaml (v6.4.21)
 0/1 [>---------------------------]   0%
 1/1 [============================] 100%
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing symfony/polyfill-php80 (v1.32.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.7.2): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.32.0): Extracting archive
  - Installing composer/spdx-licenses (1.5.9): Extracting archive
  - Installing composer/semver (3.3.2): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v41.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.32.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.32.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.32.0): Extracting archive
  - Installing symfony/string (v6.4.21): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.0): Extracting archive
  - Installing symfony/polyfill-php73 (v1.32.0): Extracting archive
  - Installing symfony/console (v5.4.47): 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.1): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.1.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.2): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (2.0.0): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.4.1): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (4.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.12.1): Extracting archive
  - Installing mediawiki/minus-x (1.1.1): 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
  - Installing symfony/yaml (v6.4.21): Extracting archive
  0/37 [>---------------------------]   0%
 19/37 [==============>-------------]  51%
 36/37 [===========================>]  97%
 37/37 [============================] 100%
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
16 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 -> 47.0.0
Upgrading c:mediawiki/mediawiki-phan-config from 0.12.1 -> 0.15.1
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, 12 updates, 1 removal
  - Removing symfony/polyfill-php73 (v1.32.0)
  - Upgrading composer/semver (3.3.2 => 3.4.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
  - Upgrading mediawiki/mediawiki-codesniffer (v41.0.0 => v47.0.0)
  - Upgrading mediawiki/mediawiki-phan-config (0.12.1 => 0.15.1)
  - Upgrading mediawiki/minus-x (1.1.1 => 1.1.3)
  - Upgrading mediawiki/phan-taint-check-plugin (4.0.0 => 6.1.0)
  - Upgrading microsoft/tolerant-php-parser (v0.1.1 => v0.1.2)
  - Upgrading phan/phan (5.4.1 => 5.4.5)
  - 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 psr/log (2.0.0 => 3.0.2)
  - Upgrading squizlabs/php_codesniffer (3.7.2 => 3.12.2)
  - Upgrading symfony/console (v5.4.47 => v7.3.0)
  - Upgrading symfony/string (v6.4.21 => v7.3.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 3 installs, 12 updates, 1 removal
    0 [>---------------------------]    0 [->--------------------------]
  - Removing symfony/polyfill-php73 (v1.32.0)
  - Upgrading squizlabs/php_codesniffer (3.7.2 => 3.12.2): Extracting archive
 0/2 [>---------------------------]   0%
 1/2 [==============>-------------]  50%
 2/2 [============================] 100%
  - 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 => v47.0.0): Extracting archive
  - Upgrading symfony/string (v6.4.21 => v7.3.0): Extracting archive
  - Upgrading symfony/console (v5.4.47 => v7.3.0): Extracting archive
  - Upgrading microsoft/tolerant-php-parser (v0.1.1 => v0.1.2): Extracting archive
  - Upgrading psr/log (2.0.0 => 3.0.2): Extracting archive
  - Upgrading phan/phan (5.4.1 => 5.4.5): Extracting archive
  - Upgrading mediawiki/phan-taint-check-plugin (4.0.0 => 6.1.0): Extracting archive
  - Upgrading mediawiki/mediawiki-phan-config (0.12.1 => 0.15.1): 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/13 [>---------------------------]   0%
 13/13 [============================] 100%
Generating autoload files
17 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 ---
Previously failing phpcs rules: {'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate', 'MediaWiki.Commenting.PropertyDocumentation.MissingVar', 'MediaWiki.Usage.ForbiddenFunctions.passthru', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected', 'Squiz.Scope.MethodScope.Missing', 'MediaWiki.Files.ClassMatchesFilename.NotMatch', 'MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic', 'MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage', 'Generic.Files.LineLength.TooLong', 'MediaWiki.Usage.ExtendClassUsage.FunctionVarUsage', 'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationProtected', 'MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle', 'MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPublic', 'MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures'}
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":12,"warnings":13,"fixable":6},"files":{"\/src\/repo\/Springboard.i18n.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/AdminLinksHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/CustomLoader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/SpecialSpringboard.php":{"errors":4,"warnings":2,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":23,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":29,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":59,"column":13},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":88,"column":62},{"message":"A single space should be after the fn keyword in closures","source":"MediaWiki.WhiteSpace.SpaceAfterClosure.NoWhitespaceAfterArrow","severity":5,"fixable":true,"type":"ERROR","line":88,"column":62},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":128,"column":121}]},"\/src\/repo\/includes\/SpringboardAPI.php":{"errors":8,"warnings":11,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":25,"column":13},{"message":"Visibility must be declared on method \"execute\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":27,"column":5},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":42,"column":62},{"message":"A single space should be after the fn keyword in closures","source":"MediaWiki.WhiteSpace.SpaceAfterClosure.NoWhitespaceAfterArrow","severity":5,"fixable":true,"type":"ERROR","line":42,"column":62},{"message":"Use static closure","source":"MediaWiki.Usage.StaticClosure.StaticClosure","severity":5,"fixable":true,"type":"WARNING","line":68,"column":44},{"message":"A single space should be after the fn keyword in closures","source":"MediaWiki.WhiteSpace.SpaceAfterClosure.NoWhitespaceAfterArrow","severity":5,"fixable":true,"type":"ERROR","line":68,"column":44},{"message":"Visibility must be declared on method \"download\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":98,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":106,"column":21},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":109,"column":25},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":121,"column":17},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":124,"column":21},{"message":"Visibility must be declared on method \"dbUpdate\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":139,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":143,"column":9},{"message":"Visibility must be declared on method \"composerInstall\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":150,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":157,"column":9},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":158,"column":9},{"message":"Visibility must be declared on method \"delete\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":166,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":169,"column":17},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":172,"column":17}]}}}

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

PHPCBF RESULT SUMMARY
----------------------------------------------------------------------
FILE                                                  FIXED  REMAINING
----------------------------------------------------------------------
/src/repo/includes/SpecialSpringboard.php             2      4
/src/repo/includes/SpringboardAPI.php                 4      15
----------------------------------------------------------------------
A TOTAL OF 6 ERRORS WERE FIXED IN 2 FILES
----------------------------------------------------------------------

Time: 359ms; Memory: 8MB



--- end ---
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":9,"warnings":10,"fixable":0},"files":{"\/src\/repo\/includes\/CustomLoader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/AdminLinksHooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/Springboard.i18n.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/SpecialSpringboard.php":{"errors":3,"warnings":1,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":23,"column":13},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic","severity":5,"fixable":false,"type":"ERROR","line":29,"column":12},{"message":"Missing function doc comment","source":"MediaWiki.Commenting.FunctionComment.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":59,"column":13},{"message":"Line exceeds 120 characters; contains 121 characters","source":"Generic.Files.LineLength.TooLong","severity":5,"fixable":false,"type":"WARNING","line":128,"column":121}]},"\/src\/repo\/includes\/SpringboardAPI.php":{"errors":6,"warnings":9,"messages":[{"message":"Missing class property doc comment","source":"MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPrivate","severity":5,"fixable":false,"type":"ERROR","line":25,"column":13},{"message":"Visibility must be declared on method \"execute\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":27,"column":5},{"message":"Visibility must be declared on method \"download\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":98,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":106,"column":21},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":109,"column":25},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":121,"column":17},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":124,"column":21},{"message":"Visibility must be declared on method \"dbUpdate\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":139,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":143,"column":9},{"message":"Visibility must be declared on method \"composerInstall\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":150,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":157,"column":9},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":158,"column":9},{"message":"Visibility must be declared on method \"delete\"","source":"Squiz.Scope.MethodScope.Missing","severity":5,"fixable":false,"type":"ERROR","line":166,"column":5},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":169,"column":17},{"message":"exec should not be used","source":"MediaWiki.Usage.ForbiddenFunctions.exec","severity":5,"fixable":false,"type":"WARNING","line":172,"column":17}]}}}

--- end ---
 * sniff MediaWiki.Commenting.PropertyDocumentation.MissingVar is no longer failing
 * sniff MediaWiki.Usage.ForbiddenFunctions.passthru is no longer failing
 * sniff MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected is no longer failing
 * sniff MediaWiki.Files.ClassMatchesFilename.NotMatch is no longer failing
 * sniff MediaWiki.Usage.ExtendClassUsage.FunctionConfigUsage is no longer failing
 * sniff MediaWiki.Usage.ExtendClassUsage.FunctionVarUsage is no longer failing
 * sniff MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationProtected is no longer failing
 * sniff MediaWiki.Usage.DeprecatedGlobalVariables.Deprecated$wgTitle is no longer failing
 * sniff MediaWiki.Commenting.PropertyDocumentation.MissingDocumentationPublic is no longer failing
 * sniff MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures is no longer failing
 * sniff MediaWiki.Usage.ForbiddenFunctions.exec is now failing
$ git checkout .phpcs.xml
--- stderr ---
Updated 1 path 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
17 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 --exclude node_modules --exclude .phan
> phpcs -sp --cache
> minus-x check .
Script minus-x check . handling the test event returned with error code 1
--- stdout ---
PHP 8.2.28 | 10 parallel jobs
.....                                                        5/5 (100%)


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


Time: 96ms; Memory: 8MB

MinusX
======
Processing /src/repo...
E.....E......EEEEEEEEEE..EEEE.E.EE.
Error: /src/repo/i18n/en.json should not be executable
Error: /src/repo/i18n/qqq.json should not be executable
Error: /src/repo/extension.json should not be executable
Error: /src/repo/.gitignore should not be executable
Error: /src/repo/.phpcs.xml should not be executable
Error: /src/repo/INSTALL should not be executable
Error: /src/repo/resources/init.js should not be executable
Error: /src/repo/resources/components/Skins.vue should not be executable
Error: /src/repo/resources/components/App.vue should not be executable
Error: /src/repo/resources/components/Extensions.vue should not be executable
Error: /src/repo/resources/ext.ZestStyles.less should not be executable
Error: /src/repo/README.md should not be executable
Error: /src/repo/Springboard.i18n.alias.php should not be executable
Error: /src/repo/includes/CustomLoader.php should not be executable
Error: /src/repo/includes/SpringboardAPI.php should not be executable
Error: /src/repo/includes/SpecialSpringboard.php should not be executable
Error: /src/repo/extensions/README.md should not be executable
Error: /src/repo/composer.json should not be executable
Error: /src/repo/skins/README.md should not be executable

--- end ---
Traceback (most recent call last):
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 2026, 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 1963, in run
    self.composer_upgrade(plan)
  File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1031, 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 63, 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 1.
Source code is licensed under the AGPL.