Review: golang-github-aquasecurity-go-npm-version 0.0.2+git20261005.1f16ed7-1
Package Information
| Description | library for parsing npm versions and version constraints go-npm-version is a library for parsing npm versions and version constraints, and verifying versions against a set of constraints. go-npm-version can sort a collection of versions properly, handles prerelease versions, etc. Versions used with go-npm-version must follow Semantic Versioning. Constraints used with go-npm-version must follow npm rules. |
|---|---|
| Maintainer | Debian Go Packaging Team <team+pkg-go@tracker.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/go-team/packages/golang-github-aquasecurity-go-npm-version.git (browse) |
| Closes | #1152493 |
| Tracker | https://tracker.debian.org/pkg/golang-github-aquasecurity-go-npm-version |
| Uploaded | 2 days ago |
New Package Report
.changes
| Version | 0.0.2+git20261005.1f16ed7-1 |
|---|---|
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
| Architecture | source all |
| Distribution | unstable |
| Date | Fri, 30 Oct 2026 03:16:50 +0100 |
| Source | golang-github-aquasecurity-go-npm-version |
Changelog
golang-github-aquasecurity-go-npm-version (0.0.2+git20261005.1f16ed7-1) unstable; urgency=medium . * Initial release (Closes: #1152493)
.dsc
| Section | golang |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | golang-github-aquasecurity-go-npm-version-dev deb golang optional arch=all |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/aquasecurity/go-npm-version
Upstream-Name: go-npm-version
Upstream-Contact: https://github.com/aquasecurity/go-npm-version/issues
Files: *
Copyright: 2020 Teppei Fukuda <knqyf263@gmail.com>
2025-2026 DmitriyLewen <https://github.com/DmitriyLewen>
License: Apache-2.0
Comment: Upstream has no copyright notice (LICENSE carries the unfilled
Apache-2.0 appendix and no file has a header). The holders are the authors
of the commits in the upstream history.
Files: hack/generator/package.json
Copyright: 2020 Teppei Fukuda <knqyf263@gmail.com>
License: ISC
Comment: The npm metadata of the test-data generator declares ISC. The
generator is not built or installed.
Files: debian/*
Copyright: 2026 Juan Manuel Méndez Rey <juan.mendezr@proton.me>
License: Apache-2.0
Comment: Debian packaging is licensed under the same terms as upstream
License: Apache-2.0
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
.
https://www.apache.org/licenses/LICENSE-2.0
.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comment:
On Debian systems, the complete text of the Apache version 2.0 license
can be found in "/usr/share/common-licenses/Apache-2.0".
License: ISC
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
DFSG Assistant LLM REVIEW 0 blocker, 1 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 1 day ago.
Report
DFSG NEW review for golang-github-aquasecurity-go-npm-version version 0.0.2+git20261005.1f16ed7-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Unclear - Packaging is of good quality: Yes
- Issues: 0 blocker, 1 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
The licences the package declares are free: Apache-2.0 for the tree (LICENSE is the Apache-2.0 text, its appendix left unfilled, no NOTICE, no per-file headers) and ISC for hack/generator/package.json, whose own "license": "ISC" declares it; the DEP-5 file matches every path (last stanza wins), gives the full ISC text and points Apache-2.0 at /usr/share/common-licenses. The unresolved point is pkg/constraint.go, which reproduces Masterminds/semver's cvRegex literal, its tilde and caret comment tables and its error strings verbatim. If, as that indicates, the file is adapted from that Expat-licensed project, debian/copyright's Files: * stanza names too few holders and carries no Expat text; upstream's history, not shipped, is what decides it.
Packaging
The packaging is in line with current Go-team practice: debhelper compat 14 with dh-go (which provides the golang addon), dpkg-build-api (= 1), Standards-Version 4.7.4 against Policy 4.7.4.1, Testsuite: autopkgtest-pkg-go, DEP-5 copyright, gbp.conf, salsa-ci and upstream metadata. The build-dependencies are right for a library-only package: cmd/ and examples/ are excluded from both build targets and installed source, so the urfave/cli import of cmd/version is not needed, testify is marked <!nocheck>, and the runtime Depends match the imports of pkg/. Nothing in debian/ needs fixing; one doubt about the non-default build directory is recorded under Not confirmed.
Issues
important licensing 1. pkg/constraint.go reproduces Masterminds/semver's cvRegex and tilde/caret comment tables verbatim, and debian/copyright names no Masterminds holder ◂
- Files:
pkg/constraint.go:14-16,pkg/constraint.go:314-320,pkg/constraint.go:325-334,debian/copyright:6-12 - Basis: inferred from what was read, not seen directly
- Evidence: Package:
const cvRegex string = \v?([0-9|x|X|*]+)(.[0-9|x|X|*]+)?(.[0-9|x|X|*]+)?` +(constraint.go:14) and the blocks// ~, ~> --> >= 0.0.0 (any)…// ~1.2.0, ~>1.2.0 --> >=1.2.0, <1.3.0(315-320),// ^* --> (any)…// ^0 --> >=0.0.0 <1.0.0(326-334), error textimproper constraint: %s. Identical text in /usr/share/gocode/src/github.com/Masterminds/semver/constraints.go:180-182, 462-467 and 518-526 (constraintTilde,constraintCaret,improper constraint: %s), whose Debian copyright saysCopyright: 2014-2015 Matt Butcher and Matt Farina,License: Expat. debian/copyright'sFiles: *says onlyCopyright: 2020 Teppei Fukudaand2025-2026 DmitriyLewenunderLicense: Apache-2.0`. - Problem: The comment tables and the regex are expressive text, not the only way to write the npm grammar, and their reproduction points to
pkg/constraint.gobeing adapted from Masterminds/semver (Expat/MIT). Expat requires that copyright and permission notice to be included in copies and substantial portions, and Apache-2.0 section 4(c) requires third-party notices to be retained, so if the file is adapted the notice is missing both upstream and indebian/copyright, which then does not accurately describe the file (Policy 12.5, and the DEP-5Files/Copyrightfields). Apache-2.0 can absorb Expat code, so the fix is attribution, not relicensing. - Fix: Ask upstream whether
pkg/constraint.go(and the test vectors inpkg/constraint_test.go) derive from github.com/Masterminds/semver, and have upstream restore its Expat notice. Then add aFiles: pkg/constraint.gostanza withCopyright: 2014-2015 Matt Butcher and Matt Farinaand a stand-aloneLicense: Expatparagraph (its full text, as it is not in /usr/share/common-licenses) to debian/copyright; if upstream shows the file was written independently, record that instead.
Verified ◂
- Tree covered in full: 22 upstream files (LICENSE, README.md, go.mod, go.sum, .gitignore, .github/workflows/test.yml, cmd/version/main.go, three examples, hack/generate.sh, hack/input.csv, hack/generator/{main.js,package.json,package-lock.json}, seven files in pkg/) plus the nine files of debian/.
.pc/was left alone. - The prescan's author check found every holder it matched already named and listed no other file to account for; no file carries a copyright notice apart from LICENSE's unfilled
Copyright [yyyy] [name of copyright owner]appendix, which is why the file names commit authors as holders. - A grep for
Copyright,(C),©,SPDX-License-Identifier,Licensed under,Permission is hereby granted,GNU (Lesser) Public,Apache License,Mozilla Public,public domain,All rights reserved,ISCover the tree with gitignore disabled finds licence wording only in LICENSE (Apache-2.0), debian/copyright and hack/generator/package.json ("license": "ISC"); no non-free or field-of-use wording anywhere. pkg/constraint_testcase.gois generated: it starts// Code generated by Node.js. DO NOT EDIT.andhack/generate.shregenerates it fromhack/input.csvwithhack/generator/main.js; the generator and its input are both shipped, so the preferred form for modification is present.hack/generator/package.json(npm boilerplate with"license": "ISC") is covered by its own ISC stanza in debian/copyright with the full ISC text;hack/generator/package-lock.jsonis npm dependency metadata (names, versions, integrity hashes), not code, and is covered byFiles: *;hack/input.csvis 159 lines of version/constraint test data.- No vendored third-party tree (no vendor/, no node_modules), no binaries, fonts, images, PDFs or minified files; every source file is small readable text.
- debian/copyright is DEP-5 with the exact 1.0
Format:URL;Files: *is the catch-all, thehack/generator/package.jsonstanza overrides it for that path anddebian/*covers the packaging, so every path in the tree is matched. - Packaging files read in full: control, rules, changelog, copyright, gbp.conf, salsa-ci.yml, source/format, upstream/metadata; there is no debian/patches, no maintainer scripts and no debian/tests.
dh-goexists in unstable (1.69, provides thegolangaddon anddh_golang_autopkgtest) anddpkg-build-api (= 1)is provided by dpkg-dev 1.23.11 (verified with apt-cache/man);golang-github-aquasecurity-go-version-dev0.0~git20210121.637058c-2 is newer than the go.mod snapshot, which GOPATH-mode building ignores; testify is test-only.DH_GOLANG_EXCLUDES := cmd examplesremoves both from the build targets and, with DH_GOLANG_EXCLUDES_ALL defaulting to on at compat 12+, from the installed source, so theurfave/cliimport of cmd/version is never compiled (dh-golang's_set_go111modulesets GOPATH mode, GOPROXY=off); the dev package therefore needs only go-version and xerrors.dist = DEP14in gbp.conf is accepted: gbp's buildpackage.py:212 treats bothDEP-14andDEP14as the special value.- Standards-Version 4.7.4 matches the reviewing system's Policy 4.7.4.1 in its first two components; the changelog is a well-formed initial release for unstable closing #1152493, and the Vcs-*, Homepage and XS-Go-Import-Path fields are consistent.
- uscan found the packaged version as the newest upstream release (upstream
0.0.2+git20261005.1f16ed7, packaged0.0.2+git20261005.1f16ed7). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
debian/rules:9passes--builddirectory=debian/_build, whiledh_golang_autopkgtest— the helper that runs the implicit test forTestsuite: autopkgtest-pkg-go— works out the build directory withload_buildsystem("golang")->get_builddir(), i.e. the default_build(golang.pm's DEFAULT_BUILD_DIRECTORY at compat 14), and its generatedoverride_dh_auto_configurecopies /usr/share/gocode/src into that directory. If that runner is used, it fills_buildwhiledh_auto_buildchdirs intodebian/_build, which the override never created (Dh_Lib.pm:607 errors on a failed chdir). autopkgtest is not installed on the reviewing system, so I could not confirm that the pkg-go suite invokes this helper; an autopkgtest run would show it. Dropping the option (or using_build) removes the risk.- Whether
pkg/constraint.goreally is adapted from Masterminds/semver cannot be settled from the package: upstream's git history is not shipped and there is no network access, so the licensing answer rests on the verbatim text comparison described in the issue.
Proposed changes ◂
None.
Uploader's response to the LLM review
The uploader rejected this upload in response to the review.
Review Information
rejected — allocated to dfsg-uploader 1 day ago, started 1 day ago, completed 1 day ago.
Final Comment
The uploader rejected this upload in response to the automated (LLM) review of it, so that they can fix the problems it found and upload again.
The uploader said:
Confirmed.
Rejecting and reuploading
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 0.0.2+git20261005.1f16ed7-1 | 12046208… | 2026-11-07 10:12 | 2026-11-07 10:15 | awm | accepted | VIEW |