Review: node-graphlib-dot 0.6.4+ds-1
Package Information
| Description | DOT language parser and writer for graphlib graphlib-dot reads graphs written in the DOT language of Graphviz into graphlib graphs, and writes graphlib graphs back as DOT. It is used together with dagre and dagre-d3 to lay out and draw directed graphs in web pages. Besides the Node.js module, the package ships browser bundles in /usr/share/nodejs/graphlib-dot/dist/ (global graphlibDot): graphlib-dot.js includes graphlib and lodash, graphlib-dot.core.js expects them as the globals graphlib and _. Node.js is an event-based server-side JavaScript engine. |
|---|---|
| Maintainer | Debian Javascript Maintainers <pkg-javascript-devel@lists.alioth.debian.org> |
| Changed By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Sponsor | tsimonq2@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/js-team/node-graphlib-dot.git (browse) |
| Closes | #1149861 |
| Tracker | https://tracker.debian.org/pkg/node-graphlib-dot |
| Uploaded | 11 days ago |
New Package Report
.changes
| Version | 0.6.4+ds-1 |
|---|---|
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Architecture | source all |
| Distribution | unstable |
| Date | Sat, 03 Oct 2026 14:00:00 +0200 |
| Source | node-graphlib-dot |
Changelog
node-graphlib-dot (0.6.4+ds-1) unstable; urgency=medium . * Initial release. (Closes: #1149861)
.dsc
| Priority | optional |
|---|---|
| Component | main |
| Package-List | node-graphlib-dot deb javascript optional arch=all |
| Section | javascript |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: graphlib-dot
Upstream-Contact: https://github.com/dagrejs/graphlib-dot/issues
Source: https://github.com/dagrejs/graphlib-dot
Comment:
The orig tarball is repacked (+ds) to drop files generated by upstream's
release process; debian/rules builds them again from source:
- dist/: browserify bundles of the library, with graphlib and lodash
inside;
- lib/dot-grammar.js: the DOT parser that PEG.js generates from
src/dot-grammar.pegjs.
Files-Excluded:
dist
lib/dot-grammar.js
Files: *
Copyright: 2012-2013, Chris Pettitt
License: Expat
Files: debian/*
Copyright: 2026, Juan Manuel Méndez Rey <juan.mendezr@proton.me>
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 0 blocker, 0 important, 0 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 10 days ago.
Report
DFSG NEW review for node-graphlib-dot version 0.6.4+ds-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
Every file in the tree is covered by the DEP-5 debian/copyright: upstream under Files: * as Expat, with the 2012-2013 Chris Pettitt notice that matches LICENSE, browser.js and package.json, and the packaging under a later debian/* stanza for Juan Manuel Méndez Rey. The full Expat text is included, correctly, since Expat is not in /usr/share/common-licenses, and the licence combines fine with the MIT/Expat code of graphlib and lodash. The +ds repack drops exactly dist/ and lib/dot-grammar.js, whose inputs (browser.js, lib/*.js, src/dot-grammar.pegjs) are shipped, so no file lacks its preferred form for modification. No non-free terms, unlicensed files or unnamed holders were found; the prescan's holder check was clean.
Packaging
Modern, complete packaging: debhelper compat 14 with dh-sequence-nodejs, a full Build-Depends (browserify, uglifyjs, pegjs, graphlib, lodash, and mocha/chai under <!nocheck>), debian/rules regenerating the parser and browser bundles that the repack removed while debian/clean removes them again, and tests wired both into the build (pkg-js-tools' dh_auto_test runs debian/tests/pkg-js/test) and into autopkgtest (Testsuite: autopkgtest-pkg-nodejs, which autodep8 supports). Standards-Version: 4.7.4 is current against Policy 4.7.4.1, the changelog, Vcs fields, gbp.conf and upstream/metadata are consistent, and no patches or maintainer scripts are needed. The graphlib and lodash code in the full browser bundle is recorded with Static-Built-Using, a valid dpkg field.
Issues
None.
Verified ◂
- Read every file under
debian/exceptdebian/watch(out of scope), and every non-debian file in the tree;lib/write-one.js,lib/build-graph.jsandpackage-lock.jsonwere only sampled (the last contains no licence material). - The only copyright notices in the source are in
LICENSEandbrowser.js:Copyright (c) 2012-2013 Chris Pettitt, Expat.debian/copyrightnames him forFiles: *with the complete Expat text, and names Juan Manuel Méndez Rey fordebian/*; both match the files. - Grep over the whole tree for
Copyright,(C),©,SPDX-License-Identifier,Licensed under,Permission is hereby granted,GNU General/Lesser,Apache License,Mozilla Public,public domain,All rights reservedand for restrictive wording (commercial,proprietary,not permitted,non-free) found nothing beyond the Expat notices; the prescan's holder check likewise found every holder named. lib/lodash.js,lib/graphlib.jsandtest/chai.jsare short shims thatrequire()the Debian packages or fall back to a browser global; they are not copies of lodash, graphlib or chai, so theembedded-javascript-libraryoverride forlib/lodash.jsis justified and no vendored library needs its own stanza.- The repack is consistent with the documentation:
dist/andlib/dot-grammar.jsare absent from bothnode-graphlib-dot_0.6.4+ds.orig.tar.xzand the unpacked tree, and absent from the.debian.tar.xz;src/dot-grammar.pegjs,browser.jsandlib/*.jsare present,debian/rules:14-25regenerates the parser and bundles, anddebian/cleanremoves them. - No binaries, images, fonts, PDFs or minified JavaScript are in the source tree (a glob for the usual binary/minified extensions returned nothing);
package-lock.jsonis npm's lockfile, not code, and the only third-party code is the graphlib/lodash that the build bundles from Debian's packages. debian/rules:27-36recordsnode-graphlibraryandnode-lodashwith exact source versions inStatic-Built-Using; the field exists in dpkg (Dpkg::Control::FieldsCoreallows it for packages,deb-control(5)documents it since dpkg 1.21.3) andapt-cacheconfirms both source packages exist. The full bundle really does contain them, becausebrowserifyis called with-r $(GRAPHLIB):graphlib -r $(LODASH):lodash.- The Build-Depends names resolve:
node-browserify,uglifyjs,node-graphlibraryandnode-lodashare real packages in the archive;pegjs,node-chai,node-mochaanddh-sequence-nodejsare virtual and provided bynode-pegjs,chai,mochaanddh-nodejs(apt-cache). Testsuite: autopkgtest-pkg-nodejsplusdebian/tests/pkg-js/testis the documented autodep8 nodejs mechanism (read/usr/share/autodep8/support/nodejs/detectandgenerate); pkg-js-tools' buildsystem runs the same file during the build (/usr/share/perl5/Debian/Debhelper/Buildsystem/nodejs.pm,sub test), sonode-mocha/node-chaiare correctly<!nocheck>andnode-graphlibrary/node-lodashcover the tests'require("graphlib")/require("lodash").Standards-Version: 4.7.4matches the first two components of Policy 4.7.4.1, so it is current;debian/changelogis0.6.4+ds-1in unstable with an ITP closure,debian/source/formatis3.0 (quilt), andVcs-*,Homepage,debian/gbp.confanddebian/upstream/metadataagree with the source.- The four test files that
debian/tests/pkg-js/testruns use only chai-4-compatible assertions; the chai-1 alias.eqlsoccurs only intest/bundle-test.js, which is not run. No maintainer scripts,.maintscript, install/links files or patches exist, and none are needed. - No file was found with a different licence: the tree is uniformly Expat/MIT, so the licences combined in the package are compatible.
- uscan found the packaged version as the newest upstream release (upstream
0.6.4, packaged0.6.4+ds).
Not confirmed ◂
- Could not run anything: the
pegjs,browserifyanduglifyjssteps were not executed and the generatedlib/dot-grammar.jsanddist/bundles were therefore not inspected; that the parser generated by Debian's PEG.js 0.10 matches the behaviour of upstream's 0.8 build rests on the rules comment and the test-suite design, not on a run. - Could not verify that
node-pegjs, the only provider of the virtualpegjsBuild-Depends, installs the/usr/bin/pegjsthatdebian/rules:18invokes; a build on a clean chroot would show it, and nothing in the package indicates another provider. - Could not confirm, without running
browserify, that--no-bundle-externalleaves graphlib and lodash out ofdist/graphlib-dot.core.js, asdebian/control's description states; if it does not, the description would be slightly inaccurate but the bundle would still work. - Did not review
debian/watch(checked separately) and could not check network-only facts such as the ITP bug or the Salsa repository.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader was emailed about the review 10 days ago.
Review Information
accepted — allocated to awm 10 days ago, started 10 days ago, completed 10 days ago.