Review: node-marijn-testtool 0.1.3-1
Package Information
| Description | run Mocha test suites in Node.js and in a browser testtool is a utility for running collections of Mocha test files that contain both Node-based and browser-based tests. It finds test/*.js and test/webtest-*.js files, serves the web tests from a small HTTP server together with the modules they import, and drives a browser to run them. The browser tests need a WebDriver implementation, such as the chromedriver server from the chromium-driver package. It is used by the ProseMirror packages through the pm-runtests command from node-prosemirror-buildhelper. Node.js is an event-based server-side JavaScript engine. |
|---|---|
| Maintainer | Debian Javascript Maintainers <pkg-javascript-devel@lists.alioth.debian.org> |
| Changed By | Emfox Zhou <emfox@debian.org> |
| Sponsor | emfox@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/js-team/node-marijn-testtool.git (browse) |
| Closes | #1150579 |
| Tracker | https://tracker.debian.org/pkg/node-marijn-testtool |
| Uploaded | 27 days ago |
New Package Report
.changes
| Date | Sun, 11 Oct 2026 10:05:00 +0800 |
|---|---|
| Source | node-marijn-testtool |
| Version | 0.1.3-1 |
| Changed-By | Emfox Zhou <emfox@debian.org> |
| Architecture | source all |
| Distribution | unstable |
Changelog
node-marijn-testtool (0.1.3-1) unstable; urgency=medium . * Initial release. (Closes: #1150579)
.dsc
| Package-List | node-marijn-testtool deb javascript optional arch=all |
|---|---|
| Section | javascript |
| Priority | optional |
| Component | main |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: testtool Source: https://code.haverbeke.berlin/marijn/testtool Files: * Copyright: 2022 Marijn Haverbeke <marijn@haverbeke.berlin> License: Expat Files: debian/* Copyright: 2026 Emfox Zhou <emfox@debian.org> License: Expat License: Expat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DFSG Assistant LLM REVIEW 1 blocker, 1 important, 1 minor
This is an LLM based review using a Debian Inference based workflow. It was not written by a member of the DFSG team and has not been checked by one. It is not a decision on the package: it may be wrong, and it may have missed things.
Reviewed 21 days ago.
Report
DFSG NEW review for node-marijn-testtool version 0.1.3-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: No
- Issues: 1 blocker, 1 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The upstream code is Expat/MIT and DFSG-free: package.json declares "license": "MIT", the README points to the MIT licence, and the upstream files contain no other notices. debian/copyright is DEP-5 and reproduces the full Expat text. It is however inaccurate: use-system-chromedriver.patch creates src/browserdriver.js and rewrites part of src/testtool.js, yet Files: * attributes every upstream-path file to Marijn Haverbeke, and nothing attributes the Debian-authored code in src/ to its author.
Packaging
Most of debian/ is well done: compat 14 with pkg-js-tools, DEP-3 patches, a man page, a correct debian/nodejs/links entry, autopkgtest and a README.Debian explaining the known limitation; dependencies all exist in the archive and the compat-14 substvar handling is correct. But the shipped CLI crashes on --help and on the documented --server option owing to two undefined identifiers, and the browser-test half of the tool cannot work with Debian's mocha because require.resolve("mocha/mocha") has no target there.
Issues
blocker licensing 1. debian/copyright attributes Debian-authored src/ files to upstream ◂
- Files:
debian/copyright:5-7,src/browserdriver.js:1,debian/patches/use-system-chromedriver.patch - Basis: checked, in the package or with a reference tool
- Evidence:
Files: */Copyright: 2022 Marijn Haverbeke <marijn@haverbeke.berlin>; the patch addsnew file mode 100644forsrc/browserdriver.js(119 lines, no copyright header) and rewritesrunBrowserTestsinsrc/testtool.js. Onlydebian/*names Emfox Zhou. - Problem:
src/browserdriver.jsis new code written for Debian by Emfox Zhou, andsrc/testtool.jsnow contains his replacement of the selenium code; neither is covered by thedebian/*stanza, soFiles: *misattributes both to the upstream author. The copyright file must name the copyright holder of every file in the source. - Fix: Add stanzas such as
Files: src/browserdriver.jswithCopyright: 2026 Emfox Zhou <emfox@debian.org>andLicense: Expat, andFiles: src/testtool.jsnaming both Marijn Haverbeke (2022) and Emfox Zhou (2026), keeping the existing Expat licence paragraph.
important packaging 2. testtool --help and --server crash with ReferenceError ◂
- Files:
bin/testtool.js:15,bin/testtool.js:32,debian/testtool.1 - Basis: checked, in the package or with a reference tool
- Evidence:
else if (arg == "--help") exit(0)but the function defined ishelp(exit = 1); androot: dirs.length == 1 ? dirs[0] : path.dirname(dirs[0])while the file only doesconst {resolve} = require("path"). - Problem:
testtool --helpcalls an undefinedexitand dies withReferenceError: exit is not defined;testtool --server, which the man page documents (--server:Do not run any test, only start the HTTP server), dies withpath is not defined. Both are user-visible crashes in the installed/usr/bin/testtool. - Fix: Call
help(0)for--helpand import/usedirname(orpath.dirname). Forward the fix upstream, and add at least a smoke line fortesttool --helptodebian/tests/pkg-js/test.
minor packaging 3. Browser tests cannot run with Debian's mocha, but the Description still advertises them ◂
- Files:
src/testtool.js:81,src/testtool.js:108,debian/README.Debian:5-11,debian/control - Basis: checked, in the package or with a reference tool
- Evidence:
let base = require.resolve("mocha/mocha"); the installed mocha has/usr/share/nodejs/mocha/{index.js,browser-entry.js,mocha.css}and nomocha.js. README.Debian says:Browser tests (test/webtest-*.js) do not work at the moment ... Cannot find module 'mocha/mocha'. - Problem: Every browser-test run throws before the browser starts, so half of what the package's synopsis ("run Mocha test suites in Node.js and in a browser") and
Recommends: chromium-driverpromise is unusable. The limitation is honestly documented and blocked by the mocha packaging bug named in README.Debian, hence not a blocker for this package, but the Description should not keep advertising the browser half unqualified. - Fix: Either patch
createTestServerto serve a browser build mocha actually ships in Debian (none at present) or qualify the Description and dropRecommends: chromium-driveruntil mocha bug #1150583 is fixed, keeping the README.Debian note.
Verified ◂
- Read every file under
debian/(copyright, control, rules, changelog, gbp.conf, links, manpages, tests, metadata, README.Debian, source/format, both patches and the series) and every upstream file:package.json,README.md,bin/testtool.js,src/testtool.js,src/browserdriver.js,.gitignore,.npmignore;.pc/was excluded as instructed. - Upstream licensing: the only licence statements are
"license": "MIT"in package.json and the MIT link in README.md; no file carries a different notice, and there is no vendored third-party code, minified JavaScript, generated file, archive or binary in the tree. The pre-review scan listed no suspect files and its six scanned source files' holder, Marijn Haverbeke, is named indebian/copyright. - The two patches carry DEP-3 headers (
Description,Origin: vendor,Forwarded: not-needed) and the applied tree matches them;src/browserdriver.jsis the only file they create. - The trailing comma after
node-serve-staticinBuild-Dependsis harmless:Dpkg::Deps::deps_parsesplits on commas and Perl drops the empty trailing item (and the shipped .dsc shows no trailing comma). - Build-depends packages
mocha,node-esmoduleserve,node-istandnode-serve-staticexist in the archive;dh-sequence-single-binaryis provided by debhelper 14.5;chromium-driverexists. - Compat 14:
dh_gencontrolautomatically appends${misc:Depends}(including thenodejs:anythat pkg-js'sdebian/nodejs/linkshandling adds) toDepends, so its absence fromdebian/controlis not a fault;execute_after_dh_fixpermsis a supported hook, and dh_fixperms' own*.js-> 0644 rule makes thechmod 755indebian/rulesnecessary and correctly targeted. debian/nodejs/linksis the pkg-js-tools mechanism (read byDebian::Debhelper::Buildsystem::nodejs), whose source is relative to /usr/share/nodejs, so@marijn/testtool/bin/testtool.js /usr/bin/testtoolis correct, not a dangling link.Standards-Version: 4.7.4against Policy 4.7.4.1;debian/source/formatis3.0 (quilt); the changelog distribution is unstable, version 0.1.3-1, and the date's weekday is consistent.- uscan found the packaged version as the newest upstream release (upstream
0.1.3, packaged0.1.3).
Not confirmed ◂
- No build or autopkgtest was run. Not verified: the executable mode of
debian/tests/pkg-js/test, the exact working directory it is run from (whethersrc/testtool.jsis present there), and the installed man page/mode of/usr/bin/testtool. - The Debian bug numbers cited in the changelog and README.Debian (#1150579, #1150583) could not be checked without network access.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader hasn't responded yet, and is welcome to at any time. The 24-hour hold has ended, so the package is now open for review as usual.
Review Information
accepted — allocated to babelouest 18 days ago, started 18 days ago, completed 18 days ago.