$ date
--- stdout ---
Mon Mar 31 06:01:08 UTC 2025
--- end ---
$ git clone file:///srv/git/mediawiki-extensions-SiteMatrix.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 ---
eea5e856f1f0ad953848dc815fb471a0395e1103 refs/heads/master
--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
"auditReportVersion": 2,
"vulnerabilities": {},
"metadata": {
"vulnerabilities": {
"info": 0,
"low": 0,
"moderate": 0,
"high": 0,
"critical": 0,
"total": 0
},
"dependencies": {
"prod": 1,
"dev": 313,
"optional": 0,
"peer": 1,
"peerOptional": 0,
"total": 313
}
}
}
--- 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: 38 installs, 0 updates, 0 removals
- Locking composer/pcre (3.3.2)
- Locking composer/semver (3.4.3)
- Locking composer/spdx-licenses (1.5.8)
- Locking composer/xdebug-handler (3.0.5)
- Locking dealerdirect/phpcodesniffer-composer-installer (v1.0.0)
- Locking doctrine/deprecations (1.1.4)
- Locking felixfbecker/advanced-json-rpc (v3.2.1)
- Locking mediawiki/mediawiki-codesniffer (v46.0.0)
- Locking mediawiki/mediawiki-phan-config (0.15.1)
- Locking mediawiki/minus-x (1.1.3)
- Locking mediawiki/phan-taint-check-plugin (6.1.0)
- Locking microsoft/tolerant-php-parser (v0.1.2)
- Locking netresearch/jsonmapper (v4.5.0)
- Locking phan/phan (5.4.5)
- 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.4.0)
- Locking phpcsstandards/phpcsextra (1.2.1)
- Locking phpcsstandards/phpcsutils (1.0.12)
- Locking phpdocumentor/reflection-common (2.2.0)
- Locking phpdocumentor/reflection-docblock (5.6.1)
- Locking phpdocumentor/type-resolver (1.10.0)
- Locking phpstan/phpdoc-parser (2.1.0)
- Locking psr/container (2.0.2)
- Locking psr/log (3.0.2)
- Locking sabre/event (5.1.7)
- Locking squizlabs/php_codesniffer (3.11.3)
- Locking symfony/console (v7.2.5)
- 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-php80 (v1.31.0)
- Locking symfony/service-contracts (v3.5.1)
- Locking symfony/string (v7.2.0)
- 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: 38 installs, 0 updates, 0 removals
0 [>---------------------------] 0 [->--------------------------]
- Installing squizlabs/php_codesniffer (3.11.3): Extracting archive
- Installing dealerdirect/phpcodesniffer-composer-installer (v1.0.0): Extracting archive
- Installing composer/pcre (3.3.2): Extracting archive
- Installing symfony/polyfill-php80 (v1.31.0): Extracting archive
- Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
- Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
- Installing symfony/polyfill-mbstring (v1.31.0): Extracting archive
- Installing composer/spdx-licenses (1.5.8): Extracting archive
- Installing composer/semver (3.4.3): Extracting archive
- Installing mediawiki/mediawiki-codesniffer (v46.0.0): Extracting archive
- Installing tysonandre/var_representation_polyfill (0.1.3): 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 (v7.2.0): 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/console (v7.2.5): 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.1.0): Extracting archive
- Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
- Installing doctrine/deprecations (1.1.4): Extracting archive
- Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
- Installing phpdocumentor/reflection-docblock (5.6.1): 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.4.5): Extracting archive
- Installing mediawiki/phan-taint-check-plugin (6.1.0): Extracting archive
- Installing mediawiki/mediawiki-phan-config (0.15.1): Extracting archive
- Installing mediawiki/minus-x (1.1.3): 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
0/36 [>---------------------------] 0%
20/36 [===============>------------] 55%
35/36 [===========================>] 97%
36/36 [============================] 100%
1 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 ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils
--- end ---
Upgrading n:eslint-config-wikimedia from 0.28.2 -> 0.29.1
$ /usr/bin/npm install
--- stdout ---
added 313 packages, and audited 314 packages in 4s
58 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ /usr/bin/npm install grunt-eslint@24.3.0 --save-exact
--- stdout ---
up to date, audited 314 packages in 780ms
58 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
--- end ---
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json
--- end ---
$ ./node_modules/.bin/eslint extension.json i18n/tet.json i18n/tay.json i18n/fr.json i18n/ce.json i18n/api/sl.json i18n/ht.json i18n/api/sh-latn.json i18n/se.json i18n/zh-hans.json i18n/el.json i18n/de.json i18n/api/pt-br.json i18n/api/tay.json i18n/ext.json i18n/th.json i18n/pdc.json i18n/am.json i18n/api/lt.json i18n/mn.json i18n/hu.json i18n/api/ml.json i18n/api/fa.json i18n/vi.json i18n/bcl.json i18n/hi.json i18n/pa.json i18n/zh-hant.json i18n/scn.json i18n/api/fr.json i18n/guc.json i18n/api/pt.json i18n/shn.json i18n/ug-latn.json i18n/ga.json i18n/lki.json i18n/nod.json i18n/eu.json i18n/api/zh-hant.json i18n/api/ksh.json i18n/diq.json i18n/mr.json i18n/hif-latn.json i18n/sah.json i18n/stq.json i18n/ca.json i18n/ms.json i18n/bqi.json i18n/dsb.json i18n/api/de.json i18n/grc.json i18n/api/tk.json i18n/udm.json i18n/et.json i18n/ia.json i18n/api/ur.json i18n/ckb.json i18n/sc.json i18n/myv.json i18n/sl.json i18n/hsb.json i18n/sgs.json i18n/bcc.json i18n/gv.json i18n/uk.json i18n/sk.json i18n/bxr.json i18n/yo.json i18n/be-tarask.json i18n/tzm.json i18n/pl.json i18n/br.json i18n/api/ba.json i18n/api/nb.json i18n/mk.json i18n/os.json i18n/la.json i18n/kk-cyrl.json i18n/tok.json i18n/prg.json i18n/vep.json i18n/tpi.json i18n/api/uk.json i18n/tru.json i18n/cy.json i18n/ug-arab.json i18n/hyw.json i18n/ku-latn.json i18n/gl.json i18n/api/et.json composer.json i18n/es.json i18n/tg-latn.json i18n/api/pl.json i18n/nds.json i18n/lzh.json i18n/lt.json i18n/pt-br.json i18n/li.json i18n/cu.json i18n/skr-arab.json i18n/sv.json i18n/sje.json i18n/tg-cyrl.json i18n/krc.json i18n/nap.json i18n/si.json i18n/su.json i18n/api/qqq.json i18n/yue-hant.json i18n/nds-nl.json i18n/bn.json i18n/ka.json i18n/ss.json i18n/sr-el.json i18n/szy.json i18n/da.json i18n/as.json i18n/gu.json i18n/sa.json i18n/is.json i18n/gom-latn.json i18n/tk.json i18n/io.json i18n/api/he.json i18n/oc.json i18n/ps.json i18n/api/it.json i18n/lb.json i18n/ar.json i18n/ta.json i18n/cs.json i18n/mwl.json i18n/kaa.json i18n/api/mg.json i18n/it.json i18n/fa.json i18n/lv.json i18n/be.json i18n/mt.json i18n/api/nl.json i18n/api/da.json i18n/jut.json i18n/ja.json i18n/nl.json i18n/eo.json i18n/ts.json i18n/an.json i18n/ur.json i18n/sh-latn.json i18n/api/scn.json i18n/aln.json i18n/szl.json i18n/nb.json i18n/bar.json i18n/api/gl.json i18n/lad.json i18n/en.json i18n/id.json i18n/api/zh-hans.json i18n/api/roa-tara.json i18n/tt-cyrl.json i18n/lmo.json i18n/mni.json i18n/ksw.json i18n/qu.json i18n/api/nap.json i18n/ang.json i18n/tr.json i18n/mrh.json i18n/yi.json i18n/api/kk-cyrl.json i18n/pnb.json i18n/api/ja.json i18n/nn.json i18n/sw.json i18n/vo.json i18n/tcy.json i18n/nah.json package-lock.json i18n/pfl.json i18n/hy.json i18n/lij.json i18n/sr-ec.json i18n/min.json i18n/ko.json i18n/az.json i18n/ary.json i18n/tly.json i18n/kk-latn.json i18n/fur.json i18n/arz.json i18n/sd.json i18n/inh.json i18n/api/sv.json i18n/ko-kp.json i18n/or.json i18n/vec.json i18n/lfn.json Gruntfile.js i18n/zgh.json i18n/api/lb.json i18n/ne.json i18n/tl.json i18n/te.json i18n/api/ia.json i18n/api/mk.json i18n/api/en.json i18n/api/ko.json i18n/ksh.json i18n/kiu.json i18n/api/ar.json i18n/km.json i18n/api/diq.json i18n/kl.json i18n/he.json i18n/smn.json i18n/hr.json i18n/ba.json i18n/pms.json i18n/ky.json i18n/arc.json i18n/api/hi.json i18n/sq.json i18n/ig.json i18n/kn.json i18n/api/lrc.json i18n/ru.json i18n/fo.json i18n/roa-tara.json i18n/api/tr.json i18n/qqq.json i18n/olo.json i18n/rm.json i18n/api/ru.json i18n/fi.json i18n/sms.json i18n/bg.json i18n/ro.json i18n/sdh.json i18n/jv.json i18n/af.json i18n/pt.json i18n/frp.json i18n/api/ast.json i18n/kk-arab.json i18n/api/szy.json i18n/rue.json i18n/api/yue-hant.json i18n/ee.json i18n/wuu-hans.json i18n/api/li.json i18n/sli.json i18n/ml.json i18n/haw.json i18n/lrc.json i18n/my.json i18n/azb.json i18n/bs.json i18n/wa.json i18n/ast.json i18n/fy.json package.json i18n/gsw.json i18n/api/es.json i18n/ilo.json --fix
--- stderr ---
Oops! Something went wrong! :(
ESLint: 8.57.0
ESLint couldn't find the config "wikimedia/client-es5" to extend from. Please check that the name of the config is correct.
The config "wikimedia/client-es5" was referenced from the config file in "/src/repo/.eslintrc.json".
If you still have problems, please stop by https://eslint.org/chat/help to chat with the team.
--- stdout ---
--- end ---
$ ./node_modules/.bin/eslint extension.json i18n/tet.json i18n/tay.json i18n/fr.json i18n/ce.json i18n/api/sl.json i18n/ht.json i18n/api/sh-latn.json i18n/se.json i18n/zh-hans.json i18n/el.json i18n/de.json i18n/api/pt-br.json i18n/api/tay.json i18n/ext.json i18n/th.json i18n/pdc.json i18n/am.json i18n/api/lt.json i18n/mn.json i18n/hu.json i18n/api/ml.json i18n/api/fa.json i18n/vi.json i18n/bcl.json i18n/hi.json i18n/pa.json i18n/zh-hant.json i18n/scn.json i18n/api/fr.json i18n/guc.json i18n/api/pt.json i18n/shn.json i18n/ug-latn.json i18n/ga.json i18n/lki.json i18n/nod.json i18n/eu.json i18n/api/zh-hant.json i18n/api/ksh.json i18n/diq.json i18n/mr.json i18n/hif-latn.json i18n/sah.json i18n/stq.json i18n/ca.json i18n/ms.json i18n/bqi.json i18n/dsb.json i18n/api/de.json i18n/grc.json i18n/api/tk.json i18n/udm.json i18n/et.json i18n/ia.json i18n/api/ur.json i18n/ckb.json i18n/sc.json i18n/myv.json i18n/sl.json i18n/hsb.json i18n/sgs.json i18n/bcc.json i18n/gv.json i18n/uk.json i18n/sk.json i18n/bxr.json i18n/yo.json i18n/be-tarask.json i18n/tzm.json i18n/pl.json i18n/br.json i18n/api/ba.json i18n/api/nb.json i18n/mk.json i18n/os.json i18n/la.json i18n/kk-cyrl.json i18n/tok.json i18n/prg.json i18n/vep.json i18n/tpi.json i18n/api/uk.json i18n/tru.json i18n/cy.json i18n/ug-arab.json i18n/hyw.json i18n/ku-latn.json i18n/gl.json i18n/api/et.json composer.json i18n/es.json i18n/tg-latn.json i18n/api/pl.json i18n/nds.json i18n/lzh.json i18n/lt.json i18n/pt-br.json i18n/li.json i18n/cu.json i18n/skr-arab.json i18n/sv.json i18n/sje.json i18n/tg-cyrl.json i18n/krc.json i18n/nap.json i18n/si.json i18n/su.json i18n/api/qqq.json i18n/yue-hant.json i18n/nds-nl.json i18n/bn.json i18n/ka.json i18n/ss.json i18n/sr-el.json i18n/szy.json i18n/da.json i18n/as.json i18n/gu.json i18n/sa.json i18n/is.json i18n/gom-latn.json i18n/tk.json i18n/io.json i18n/api/he.json i18n/oc.json i18n/ps.json i18n/api/it.json i18n/lb.json i18n/ar.json i18n/ta.json i18n/cs.json i18n/mwl.json i18n/kaa.json i18n/api/mg.json i18n/it.json i18n/fa.json i18n/lv.json i18n/be.json i18n/mt.json i18n/api/nl.json i18n/api/da.json i18n/jut.json i18n/ja.json i18n/nl.json i18n/eo.json i18n/ts.json i18n/an.json i18n/ur.json i18n/sh-latn.json i18n/api/scn.json i18n/aln.json i18n/szl.json i18n/nb.json i18n/bar.json i18n/api/gl.json i18n/lad.json i18n/en.json i18n/id.json i18n/api/zh-hans.json i18n/api/roa-tara.json i18n/tt-cyrl.json i18n/lmo.json i18n/mni.json i18n/ksw.json i18n/qu.json i18n/api/nap.json i18n/ang.json i18n/tr.json i18n/mrh.json i18n/yi.json i18n/api/kk-cyrl.json i18n/pnb.json i18n/api/ja.json i18n/nn.json i18n/sw.json i18n/vo.json i18n/tcy.json i18n/nah.json package-lock.json i18n/pfl.json i18n/hy.json i18n/lij.json i18n/sr-ec.json i18n/min.json i18n/ko.json i18n/az.json i18n/ary.json i18n/tly.json i18n/kk-latn.json i18n/fur.json i18n/arz.json i18n/sd.json i18n/inh.json i18n/api/sv.json i18n/ko-kp.json i18n/or.json i18n/vec.json i18n/lfn.json Gruntfile.js i18n/zgh.json i18n/api/lb.json i18n/ne.json i18n/tl.json i18n/te.json i18n/api/ia.json i18n/api/mk.json i18n/api/en.json i18n/api/ko.json i18n/ksh.json i18n/kiu.json i18n/api/ar.json i18n/km.json i18n/api/diq.json i18n/kl.json i18n/he.json i18n/smn.json i18n/hr.json i18n/ba.json i18n/pms.json i18n/ky.json i18n/arc.json i18n/api/hi.json i18n/sq.json i18n/ig.json i18n/kn.json i18n/api/lrc.json i18n/ru.json i18n/fo.json i18n/roa-tara.json i18n/api/tr.json i18n/qqq.json i18n/olo.json i18n/rm.json i18n/api/ru.json i18n/fi.json i18n/sms.json i18n/bg.json i18n/ro.json i18n/sdh.json i18n/jv.json i18n/af.json i18n/pt.json i18n/frp.json i18n/api/ast.json i18n/kk-arab.json i18n/api/szy.json i18n/rue.json i18n/api/yue-hant.json i18n/ee.json i18n/wuu-hans.json i18n/api/li.json i18n/sli.json i18n/ml.json i18n/haw.json i18n/lrc.json i18n/my.json i18n/azb.json i18n/bs.json i18n/wa.json i18n/ast.json i18n/fy.json package.json i18n/gsw.json i18n/api/es.json i18n/ilo.json -f json
--- stderr ---
Oops! Something went wrong! :(
ESLint: 8.57.0
ESLint couldn't find the config "wikimedia/client-es5" to extend from. Please check that the name of the config is correct.
The config "wikimedia/client-es5" was referenced from the config file in "/src/repo/.eslintrc.json".
If you still have problems, please stop by https://eslint.org/chat/help to chat with the team.
--- stdout ---
--- end ---
Traceback (most recent call last):
File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1964, 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 1902, in run
self.npm_upgrade(plan)
File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1249, in npm_upgrade
hook(update)
File "/venv/lib/python3.11/site-packages/runner-0.1.0-py3.11.egg/runner/__init__.py", line 1599, in _handle_eslint
errors = json.loads(
^^^^^^^^^^^
File "/usr/lib/python3.11/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)