Source: node-node-sass
Version: 7.0.1+git20211229.3bb51da+dfsg-1
Severity: serious
X-Debbugs-CC: nod...@packages.debian.org
Tags: sid bookworm
User: debian...@lists.debian.org
Usertags: needs-update
Control: affects -1 src:nodejs

Dear maintainer(s),

With a recent upload of nodejs the autopkgtest of node-node-sass fails in testing when that autopkgtest is run with the binary packages of nodejs from unstable (even with the rebuild binaries from node-node-sass). It passes when run with only packages from testing. In tabular form:

                       pass            fail
nodejs                 from testing    16.13.2+really14.19.1~dfsg-6
node-node-sass         from testing    7.0.1+git20211229.3bb51da+dfsg-1
versioned deps [0]     from testing    from unstable
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of nodejs to testing [1]. Of course, nodejs shouldn't just break your autopkgtest (or even worse, your package), but it seems to me that the change in nodejs was intended and your package needs to update to the new situation.

If this is a real problem in your package (and not only in your autopkgtest), the right binary package(s) from nodejs should really add a versioned Breaks on the unfixed version of (one of your) package(s). Note: the Breaks is nice even if the issue is only in the autopkgtest as it helps the migration software to figure out the right versions to combine in the tests.

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[0] You can see what packages were added from the second line of the log file quoted below. The migration software adds source package from unstable to the list if they are needed to install packages from nodejs/16.13.2+really14.19.1~dfsg-6. I.e. due to versioned dependencies or breaks/conflicts.
[1] https://qa.debian.org/excuses.php?package=nodejs

https://ci.debian.net/data/autopkgtest/testing/amd64/n/node-node-sass/20479893/log.gz

# Using ./package.(json|yaml)
# Node module name is node-sass
# Build files found: # Test files found: test
# Found debian/tests/pkg-js/files, let's use it
# Files/dir to be installed from source: test
sass-spec
debian/tests/test_modules
# Copy test files
# Copy debian/tests/pkg-js content
'debian/tests/pkg-js' -> '/tmp/autopkgtest-lxc.3dgeerq5/downtmp/autopkgtest_tmp/smokeyoCSIg/debian/tests/pkg-js' 'debian/tests/pkg-js/files' -> '/tmp/autopkgtest-lxc.3dgeerq5/downtmp/autopkgtest_tmp/smokeyoCSIg/debian/tests/pkg-js/files' 'debian/tests/pkg-js/test' -> '/tmp/autopkgtest-lxc.3dgeerq5/downtmp/autopkgtest_tmp/smokeyoCSIg/debian/tests/pkg-js/test'
Found debian/tests/test_modules
'get-stdin' linked into node_modules
# Searching module in /usr/lib/nodejs/node-sass
# Searching module in /usr/lib/x86_64-linux-gnu/nodejs/node-sass
# Found /usr/lib/x86_64-linux-gnu/nodejs/node-sass
# Searching files to link in /usr/lib/x86_64-linux-gnu/nodejs/node-sass
'./bin' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/bin'
'./lib' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/lib'
# subdir node_modules already exists:
# Searching files to link in /usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules './async-foreach' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/async-foreach'
'./gaze' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/gaze'
# subdir get-stdin already exists:
# Searching files to link in /usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/get-stdin
ln: failed to create symbolic link './index.js': File exists
### skipping ln: failed to create symbolic link './package.json': File exists ### skipping './js-base64' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/js-base64' './sass-graph' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/sass-graph' './scss-tokenizer' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/scss-tokenizer' './stdout-stream' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/stdout-stream' './true-case-path' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/node_modules/true-case-path' './package.json' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/package.json'
'./scripts' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/scripts'
'./src' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/src'
'./vendor' -> '/usr/lib/x86_64-linux-gnu/nodejs/node-sass/vendor'
# Searching module in /usr/share/nodejs/node-sass
# Launch debian/tests/pkg-js/test with sh -ex
+ ls test/api.js+ test/binding.js test/cli.js test/downloadoptions.js test/errors.js test/lowlevel.js test/runtime.js test/types.js test/useragent.js test/watcher.js
grep -Ev (cli.js|spec.js)
+ mocha test/api.js test/binding.js test/downloadoptions.js test/errors.js test/lowlevel.js test/runtime.js test/types.js test/useragent.js test/watcher.js
internal/modules/cjs/loader.js:1102
      throw new ERR_REQUIRE_ESM(filename, parentPath, packageJsonPath);
      ^

Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: /usr/share/nodejs/path-exists/index.js
require() of ES modules is not supported.
require() of /usr/share/nodejs/path-exists/index.js from /usr/share/nodejs/find-up/index.js is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules. Instead rename /usr/share/nodejs/path-exists/index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from /usr/share/nodejs/path-exists/package.json.

    at new NodeError (internal/errors.js:322:7)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1102:13)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:101:18)
    at Object.<anonymous> (/usr/share/nodejs/find-up/index.js:4:20)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32) {
  code: 'ERR_REQUIRE_ESM'
}
autopkgtest [19:42:26]: test pkg-js-autopkgtest

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to