This run took 22 seconds.
$ date --- stdout --- Thu Sep 25 18:51:35 UTC 2025 --- end --- $ git clone file:///srv/git/mediawiki-skins-WikimediaApiPortal.git repo --depth=1 -b REL1_44 --- 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/REL1_44 --- stdout --- c8ae75994ca1d76b77f57a00efb9eec5fb43aeda refs/heads/REL1_44 --- end --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "bootstrap": { "name": "bootstrap", "severity": "moderate", "isDirect": true, "via": [ { "source": 1103908, "name": "bootstrap", "dependency": "bootstrap", "title": "Bootstrap Cross-Site Scripting (XSS) vulnerability", "url": "https://github.com/advisories/GHSA-vc8w-jr9v-vj7f", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.4, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:L" }, "range": ">=4.0.0 <=4.6.2" } ], "effects": [], "range": "4.0.0 - 4.6.2", "nodes": [ "node_modules/bootstrap" ], "fixAvailable": { "name": "bootstrap", "version": "5.3.8", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 1, "high": 0, "critical": 0, "total": 1 }, "dependencies": { "prod": 1, "dev": 455, "optional": 3, "peer": 3, "peerOptional": 0, "total": 455 } } } --- 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.9) - Locking composer/xdebug-handler (3.0.5) - Locking dealerdirect/phpcodesniffer-composer-installer (v1.1.2) - Locking doctrine/deprecations (1.1.5) - 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.3) - Locking phpdocumentor/type-resolver (1.10.0) - Locking phpstan/phpdoc-parser (2.3.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.3.3) - Locking symfony/deprecation-contracts (v3.6.0) - Locking symfony/polyfill-ctype (v1.33.0) - Locking symfony/polyfill-intl-grapheme (v1.33.0) - Locking symfony/polyfill-intl-normalizer (v1.33.0) - Locking symfony/polyfill-mbstring (v1.33.0) - Locking symfony/polyfill-php80 (v1.33.0) - Locking symfony/service-contracts (v3.6.0) - Locking symfony/string (v7.3.3) - 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.1.2): Extracting archive - Installing composer/pcre (3.3.2): Extracting archive - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive - Installing phpcsstandards/phpcsextra (1.2.1): 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.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.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 (v7.3.3): 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/console (v7.3.3): 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.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% 29/36 [======================>-----] 80% 36/36 [============================] 100% 1 package suggestions were added by new dependencies, use `composer suggest` to see details. Generating autoload files 17 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 --- $ /usr/bin/npm audit --json --- stdout --- { "auditReportVersion": 2, "vulnerabilities": { "bootstrap": { "name": "bootstrap", "severity": "moderate", "isDirect": true, "via": [ { "source": 1103908, "name": "bootstrap", "dependency": "bootstrap", "title": "Bootstrap Cross-Site Scripting (XSS) vulnerability", "url": "https://github.com/advisories/GHSA-vc8w-jr9v-vj7f", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.4, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:L" }, "range": ">=4.0.0 <=4.6.2" } ], "effects": [], "range": "4.0.0 - 4.6.2", "nodes": [ "node_modules/bootstrap" ], "fixAvailable": { "name": "bootstrap", "version": "5.3.8", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 1, "high": 0, "critical": 0, "total": 1 }, "dependencies": { "prod": 1, "dev": 455, "optional": 3, "peer": 3, "peerOptional": 0, "total": 455 } } } --- end --- Attempting to npm audit fix $ /usr/bin/npm audit fix --dry-run --only=dev --json --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production --- stdout --- { "added": 455, "removed": 0, "changed": 0, "audited": 456, "funding": 99, "audit": { "auditReportVersion": 2, "vulnerabilities": { "bootstrap": { "name": "bootstrap", "severity": "moderate", "isDirect": true, "via": [ { "source": 1103908, "name": "bootstrap", "dependency": "bootstrap", "title": "Bootstrap Cross-Site Scripting (XSS) vulnerability", "url": "https://github.com/advisories/GHSA-vc8w-jr9v-vj7f", "severity": "moderate", "cwe": [ "CWE-79" ], "cvss": { "score": 6.4, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:L" }, "range": ">=4.0.0 <=4.6.2" } ], "effects": [], "range": "4.0.0 - 4.6.2", "nodes": [ "node_modules/bootstrap" ], "fixAvailable": { "name": "bootstrap", "version": "5.3.8", "isSemVerMajor": true } } }, "metadata": { "vulnerabilities": { "info": 0, "low": 0, "moderate": 1, "high": 0, "critical": 0, "total": 1 }, "dependencies": { "prod": 1, "dev": 455, "optional": 3, "peer": 3, "peerOptional": 0, "total": 455 } } } } --- end --- {"added": 455, "removed": 0, "changed": 0, "audited": 456, "funding": 99, "audit": {"auditReportVersion": 2, "vulnerabilities": {"bootstrap": {"name": "bootstrap", "severity": "moderate", "isDirect": true, "via": [{"source": 1103908, "name": "bootstrap", "dependency": "bootstrap", "title": "Bootstrap Cross-Site Scripting (XSS) vulnerability", "url": "https://github.com/advisories/GHSA-vc8w-jr9v-vj7f", "severity": "moderate", "cwe": ["CWE-79"], "cvss": {"score": 6.4, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:L/A:L"}, "range": ">=4.0.0 <=4.6.2"}], "effects": [], "range": "4.0.0 - 4.6.2", "nodes": ["node_modules/bootstrap"], "fixAvailable": {"name": "bootstrap", "version": "5.3.8", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 1, "high": 0, "critical": 0, "total": 1}, "dependencies": {"prod": 1, "dev": 455, "optional": 3, "peer": 3, "peerOptional": 0, "total": 455}}}} $ /usr/bin/npm audit fix --only=dev --- stderr --- npm WARN invalid config only="dev" set in command line options npm WARN invalid config Must be one of: null, prod, production npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 npm ERR! code 1 npm ERR! path /src/repo/node_modules/node-sass npm ERR! command failed npm ERR! command sh -c node scripts/build.js npm ERR! Binary found at /src/repo/node_modules/node-sass/vendor/linux-x64-115/binding.node npm ERR! Testing binary npm ERR! Binary has a problem: Error: /src/repo/node_modules/node-sass/vendor/linux-x64-115/binding.node: file too short npm ERR! at Module._extensions..node (node:internal/modules/cjs/loader:1651:18) npm ERR! at Module.load (node:internal/modules/cjs/loader:1275:32) npm ERR! at Module._load (node:internal/modules/cjs/loader:1096:12) npm ERR! at Module.require (node:internal/modules/cjs/loader:1298:19) npm ERR! at require (node:internal/modules/helpers:182:18) npm ERR! at module.exports (/src/repo/node_modules/node-sass/lib/binding.js:19:10) npm ERR! at Object.<anonymous> (/src/repo/node_modules/node-sass/lib/index.js:13:35) npm ERR! at Module._compile (node:internal/modules/cjs/loader:1529:14) npm ERR! at Module._extensions..js (node:internal/modules/cjs/loader:1613:10) npm ERR! at Module.load (node:internal/modules/cjs/loader:1275:32) { npm ERR! code: 'ERR_DLOPEN_FAILED' npm ERR! } npm ERR! Building the binary locally npm ERR! Building: /usr/bin/node /src/repo/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= npm ERR! gyp info it worked if it ends with ok npm ERR! gyp verb cli [ npm ERR! gyp verb cli '/usr/bin/node', npm ERR! gyp verb cli '/src/repo/node_modules/node-gyp/bin/node-gyp.js', npm ERR! gyp verb cli 'rebuild', npm ERR! gyp verb cli '--verbose', npm ERR! gyp verb cli '--libsass_ext=', npm ERR! gyp verb cli '--libsass_cflags=', npm ERR! gyp verb cli '--libsass_ldflags=', npm ERR! gyp verb cli '--libsass_library=' npm ERR! gyp verb cli ] npm ERR! gyp info using node-gyp@8.4.1 npm ERR! gyp info using node@20.19.2 | linux | x64 npm ERR! gyp verb command rebuild [] npm ERR! gyp verb command clean [] npm ERR! gyp verb clean removing "build" directory npm ERR! gyp verb command configure [] npm ERR! gyp verb find Python Python is not set from command line or npm configuration npm ERR! gyp verb find Python Python is not set from environment variable PYTHON npm ERR! gyp verb find Python checking if "python3" can be used npm ERR! gyp verb find Python - executing "python3" to get executable path npm ERR! gyp verb find Python - executable path is "/usr/bin/python3" npm ERR! gyp verb find Python - executing "/usr/bin/python3" to get version npm ERR! gyp verb find Python - version is "3.13.5" npm ERR! gyp info find Python using Python version 3.13.5 found at "/usr/bin/python3" npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 20.19.2 npm ERR! gyp verb command install [ '20.19.2' ] npm ERR! gyp verb install input version string "20.19.2" npm ERR! gyp verb install installing version: 20.19.2 npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed npm ERR! gyp verb install version is already installed, need to check "installVersion" npm ERR! gyp verb got "installVersion" 9 npm ERR! gyp verb needs "installVersion" 9 npm ERR! gyp verb install version is good npm ERR! gyp verb get node dir target node version installed: 20.19.2 npm ERR! gyp verb build dir attempting to create "build" dir: /src/repo/node_modules/node-sass/build npm ERR! gyp verb build dir "build" dir needed to be created? Yes npm ERR! gyp verb build/config.gypi creating config file npm ERR! gyp verb build/config.gypi writing out config file: /src/repo/node_modules/node-sass/build/config.gypi npm ERR! gyp verb config.gypi checking for gypi file: /src/repo/node_modules/node-sass/config.gypi npm ERR! gyp verb common.gypi checking for gypi file: /src/repo/node_modules/node-sass/common.gypi npm ERR! gyp verb gyp gyp format was not specified; forcing "make" npm ERR! gyp info spawn /usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/src/repo/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/src/repo/node_modules/node-sass/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/src/repo/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/cache/node-gyp/20.19.2/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/cache/node-gyp/20.19.2', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/src/repo/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/cache/node-gyp/20.19.2/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/src/repo/node_modules/node-sass', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! Traceback (most recent call last): npm ERR! File "/src/repo/node_modules/node-gyp/gyp/gyp_main.py", line 42, in <module> npm ERR! import gyp # noqa: E402 npm ERR! ^^^^^^^^^^ npm ERR! File "/src/repo/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 9, in <module> npm ERR! import gyp.input npm ERR! File "/src/repo/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in <module> npm ERR! from distutils.version import StrictVersion npm ERR! ModuleNotFoundError: No module named 'distutils' npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1 npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/src/repo/node_modules/node-gyp/lib/configure.js:259:16) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:524:28) npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:293:12) npm ERR! gyp ERR! System Linux 6.1.0-30-cloud-amd64 npm ERR! gyp ERR! command "/usr/bin/node" "/src/repo/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" npm ERR! gyp ERR! cwd /src/repo/node_modules/node-sass npm ERR! gyp ERR! node -v v20.19.2 npm ERR! gyp ERR! node-gyp -v v8.4.1 npm ERR! gyp ERR! not ok npm ERR! Build failed with error code: 1 npm ERR! A complete log of this run can be found in: npm ERR! /cache/_logs/2025-09-25T18_51_42_406Z-debug-0.log --- stdout --- --- end --- Verifying that tests still pass $ /usr/bin/npm ci --- stderr --- npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs npm WARN deprecated @npmcli/move-file@2.0.1: This functionality has been moved to @npmcli/fs npm WARN deprecated popper.js@1.16.1: You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1 npm ERR! code 1 npm ERR! path /src/repo/node_modules/node-sass npm ERR! command failed npm ERR! command sh -c node scripts/build.js npm ERR! Binary found at /src/repo/node_modules/node-sass/vendor/linux-x64-115/binding.node npm ERR! Testing binary npm ERR! Binary has a problem: Error: /src/repo/node_modules/node-sass/vendor/linux-x64-115/binding.node: file too short npm ERR! at Module._extensions..node (node:internal/modules/cjs/loader:1651:18) npm ERR! at Module.load (node:internal/modules/cjs/loader:1275:32) npm ERR! at Module._load (node:internal/modules/cjs/loader:1096:12) npm ERR! at Module.require (node:internal/modules/cjs/loader:1298:19) npm ERR! at require (node:internal/modules/helpers:182:18) npm ERR! at module.exports (/src/repo/node_modules/node-sass/lib/binding.js:19:10) npm ERR! at Object.<anonymous> (/src/repo/node_modules/node-sass/lib/index.js:13:35) npm ERR! at Module._compile (node:internal/modules/cjs/loader:1529:14) npm ERR! at Module._extensions..js (node:internal/modules/cjs/loader:1613:10) npm ERR! at Module.load (node:internal/modules/cjs/loader:1275:32) { npm ERR! code: 'ERR_DLOPEN_FAILED' npm ERR! } npm ERR! Building the binary locally npm ERR! Building: /usr/bin/node /src/repo/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library= npm ERR! gyp info it worked if it ends with ok npm ERR! gyp verb cli [ npm ERR! gyp verb cli '/usr/bin/node', npm ERR! gyp verb cli '/src/repo/node_modules/node-gyp/bin/node-gyp.js', npm ERR! gyp verb cli 'rebuild', npm ERR! gyp verb cli '--verbose', npm ERR! gyp verb cli '--libsass_ext=', npm ERR! gyp verb cli '--libsass_cflags=', npm ERR! gyp verb cli '--libsass_ldflags=', npm ERR! gyp verb cli '--libsass_library=' npm ERR! gyp verb cli ] npm ERR! gyp info using node-gyp@8.4.1 npm ERR! gyp info using node@20.19.2 | linux | x64 npm ERR! gyp verb command rebuild [] npm ERR! gyp verb command clean [] npm ERR! gyp verb clean removing "build" directory npm ERR! gyp verb command configure [] npm ERR! gyp verb find Python Python is not set from command line or npm configuration npm ERR! gyp verb find Python Python is not set from environment variable PYTHON npm ERR! gyp verb find Python checking if "python3" can be used npm ERR! gyp verb find Python - executing "python3" to get executable path npm ERR! gyp verb find Python - executable path is "/usr/bin/python3" npm ERR! gyp verb find Python - executing "/usr/bin/python3" to get version npm ERR! gyp verb find Python - version is "3.13.5" npm ERR! gyp info find Python using Python version 3.13.5 found at "/usr/bin/python3" npm ERR! gyp verb get node dir no --target version specified, falling back to host node version: 20.19.2 npm ERR! gyp verb command install [ '20.19.2' ] npm ERR! gyp verb install input version string "20.19.2" npm ERR! gyp verb install installing version: 20.19.2 npm ERR! gyp verb install --ensure was passed, so won't reinstall if already installed npm ERR! gyp verb install version is already installed, need to check "installVersion" npm ERR! gyp verb got "installVersion" 9 npm ERR! gyp verb needs "installVersion" 9 npm ERR! gyp verb install version is good npm ERR! gyp verb get node dir target node version installed: 20.19.2 npm ERR! gyp verb build dir attempting to create "build" dir: /src/repo/node_modules/node-sass/build npm ERR! gyp verb build dir "build" dir needed to be created? Yes npm ERR! gyp verb build/config.gypi creating config file npm ERR! gyp verb build/config.gypi writing out config file: /src/repo/node_modules/node-sass/build/config.gypi npm ERR! gyp verb config.gypi checking for gypi file: /src/repo/node_modules/node-sass/config.gypi npm ERR! gyp verb common.gypi checking for gypi file: /src/repo/node_modules/node-sass/common.gypi npm ERR! gyp verb gyp gyp format was not specified; forcing "make" npm ERR! gyp info spawn /usr/bin/python3 npm ERR! gyp info spawn args [ npm ERR! gyp info spawn args '/src/repo/node_modules/node-gyp/gyp/gyp_main.py', npm ERR! gyp info spawn args 'binding.gyp', npm ERR! gyp info spawn args '-f', npm ERR! gyp info spawn args 'make', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/src/repo/node_modules/node-sass/build/config.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/src/repo/node_modules/node-gyp/addon.gypi', npm ERR! gyp info spawn args '-I', npm ERR! gyp info spawn args '/cache/node-gyp/20.19.2/include/node/common.gypi', npm ERR! gyp info spawn args '-Dlibrary=shared_library', npm ERR! gyp info spawn args '-Dvisibility=default', npm ERR! gyp info spawn args '-Dnode_root_dir=/cache/node-gyp/20.19.2', npm ERR! gyp info spawn args '-Dnode_gyp_dir=/src/repo/node_modules/node-gyp', npm ERR! gyp info spawn args '-Dnode_lib_file=/cache/node-gyp/20.19.2/<(target_arch)/node.lib', npm ERR! gyp info spawn args '-Dmodule_root_dir=/src/repo/node_modules/node-sass', npm ERR! gyp info spawn args '-Dnode_engine=v8', npm ERR! gyp info spawn args '--depth=.', npm ERR! gyp info spawn args '--no-parallel', npm ERR! gyp info spawn args '--generator-output', npm ERR! gyp info spawn args 'build', npm ERR! gyp info spawn args '-Goutput_dir=.' npm ERR! gyp info spawn args ] npm ERR! Traceback (most recent call last): npm ERR! File "/src/repo/node_modules/node-gyp/gyp/gyp_main.py", line 42, in <module> npm ERR! import gyp # noqa: E402 npm ERR! ^^^^^^^^^^ npm ERR! File "/src/repo/node_modules/node-gyp/gyp/pylib/gyp/__init__.py", line 9, in <module> npm ERR! import gyp.input npm ERR! File "/src/repo/node_modules/node-gyp/gyp/pylib/gyp/input.py", line 19, in <module> npm ERR! from distutils.version import StrictVersion npm ERR! ModuleNotFoundError: No module named 'distutils' npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1 npm ERR! gyp ERR! stack at ChildProcess.onCpExit (/src/repo/node_modules/node-gyp/lib/configure.js:259:16) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:524:28) npm ERR! gyp ERR! stack at ChildProcess._handle.onexit (node:internal/child_process:293:12) npm ERR! gyp ERR! System Linux 6.1.0-30-cloud-amd64 npm ERR! gyp ERR! command "/usr/bin/node" "/src/repo/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library=" npm ERR! gyp ERR! cwd /src/repo/node_modules/node-sass npm ERR! gyp ERR! node -v v20.19.2 npm ERR! gyp ERR! node-gyp -v v8.4.1 npm ERR! gyp ERR! not ok npm ERR! Build failed with error code: 1 npm ERR! A complete log of this run can be found in: npm ERR! /cache/_logs/2025-09-25T18_51_48_653Z-debug-0.log --- stdout --- --- 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 1972, in run self.npm_audit_fix(new_npm_audit) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 274, in npm_audit_fix self.npm_test() ~~~~~~~~~~~~~^^ File "/venv/lib/python3.13/site-packages/runner/__init__.py", line 321, in npm_test self.check_call(["npm", "ci"]) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ 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/npm', 'ci']' returned non-zero exit status 1.