Review: golang-github-piprate-json-gold 0.7.0-1
Package Information
| Description | JSON-LD 1.1 processor for Go (library) JSON-goLD implements the JSON-LD 1.1 Processing Algorithms and API in Go. Its processor expands, compacts, flattens and frames JSON-LD documents, converts them to and from RDF datasets in N-Quads form, and normalises datasets with the URDNA2015 and URGNA2012 algorithms. Remote contexts are fetched through pluggable document loaders, including one that caches responses according to their HTTP caching headers. Framing follows an earlier draft of JSON-LD 1.1 Framing, and HTML-based processing is not supported. |
|---|---|
| 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-piprate-json-gold.git (browse) |
| Closes | #1148991 |
| Tracker | https://tracker.debian.org/pkg/golang-github-piprate-json-gold |
| Uploaded | 7 hours ago |
New Package Report
.changes
| Architecture | source all |
|---|---|
| Distribution | unstable |
| Date | Fri, 25 Sep 2026 23:50:00 +0200 |
| Source | golang-github-piprate-json-gold |
| Version | 0.7.0-1 |
| Changed-By | Juan Manuel Méndez Rey <juan.mendezr@proton.me> |
Changelog
golang-github-piprate-json-gold (0.7.0-1) unstable; urgency=medium . * Initial release (Closes: #1148991)
.dsc
| Component | main |
|---|---|
| Package-List | golang-github-piprate-json-gold-dev deb golang optional arch=all |
| Section | golang |
| Priority | optional |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: json-gold
Upstream-Contact: https://github.com/piprate/json-gold/issues
Source: https://github.com/piprate/json-gold
Files: *
Copyright: 2015-2017 Piprate Limited
License: Apache-2.0
Comment: LICENSE is the Apache License 2.0 text with its appendix left as the
template ("Copyright [yyyy] [name of copyright owner]"), so it names no
holder. Holder and years are those of the headers of the Go sources, which
read "Copyright 2015-2017 Piprate Limited" (34 Go files, ld/api.go among
them). ld/context_test.go, ld/errors_test.go, ld/options_test.go,
ld/rdf_compare_test.go and ld/skip_test.go have no header and are covered
by this stanza.
Files: ld/api_compact.go
ld/api_expand.go
ld/context.go
Copyright: 2015-2017 Piprate Limited
2025 Siemens AG
License: Apache-2.0
Files: ld/rdf_dataset.go
Copyright: 2015-2017 Piprate Limited
2014 Alex Saskevich
License: Apache-2.0 and Expat
Comment: The file is Apache-2.0. Its URL validation regular expressions carry
the in-file notice "The URL validation logic below was borrowed from
github.com/asaskevich/govalidator package. The original code is distributed
under MIT license. Copyright (c) 2014 Alex Saskevich"; the MIT licence of
govalidator is the Expat licence reproduced below.
Files: ld/internal/jsoncanonicalizer/*
Copyright: 2006-2019 WebPKI.org (http://webpki.org)
License: Apache-2.0
Comment: Copied unchanged from the Cyberphone JSON Canonicalization Go
library (https://github.com/cyberphone/json-canonicalization), as the
README.md in that directory states.
Files: ld/json_canonicalizer_test.go
Copyright: SecureKey Technologies Inc.
License: Apache-2.0
Files: ld/testdata/*
Copyright: World Wide Web Consortium (MIT, ERCIM, Keio, Beihang)
JSON-LD Community Group <public-linked-json@w3.org>
License: BSD-3-clause
Comment: This directory is the W3C JSON-LD test suite. No file in it outside
normalization/ carries a copyright line. The holders listed are W3C, which
publishes the suite under its test-suite licences as LICENSE.md below
states, and the JSON-LD Community Group, named as author in composer.json;
no years are given because the files state none. Its LICENSE.md says:
"The JSON-LD Test Suite is covered by the dual-licensing approach described
in LICENSES FOR W3C TEST SUITES
(https://www.w3.org/Consortium/Legal/2008/04-testsuite-copyright.html)."
That page (now https://www.w3.org/copyright/test-suites-licenses/) states
that "W3C makes available test suites under two distinct licenses for two
mutually exclusive uses: a 3-clause BSD license for software development,
bug tracking, and other applications that do not require assertions of
performance to the public or implied claims of conformance to a W3C
Specification" and "a W3C test suite license [...]", and that "The choice of
license is up to the licensee for every single use of tests from a W3C Test
Suite." Debian uses the tests to check this library during the build, so it
takes the W3C 3-clause BSD License
(https://www.w3.org/copyright/3-clause-bsd-license-2008/), reproduced below.
README.md, template.haml and the *-manifest.html pages generated from it
name only the W3C Test Suite License, one of the two options.
composer.json, the test suite's package metadata, declares "CC0-1.0",
which would be at least as permissive.
Files: ld/testdata/normalization/*
Copyright: 2015 World Wide Web Consortium (MIT, ERCIM, Keio, Beihang)
License: BSD-3-clause
Comment: The RDF Dataset Normalization test suite. Its index.html and
template.haml say: "Distributed under both the W3C Test Suite License and
the W3C 3-clause BSD License"; Debian uses it under the latter, as for the
rest of ld/testdata.
Files: ld/testdata/schema.org/*
Copyright: Google Inc.
Yahoo Inc.
Microsoft Corporation
Yandex
License: CC-BY-SA-3.0
Comment: Copy of the schema.org JSON-LD context (served at
https://schema.org/docs/jsonldcontext.json), used by the Example tests
through a mock HTTP transport. The schema.org terms of service
(https://schema.org/docs/terms.html) state: "The Sponsors' copyrights in
the schema are licensed to website publishers and other third parties under
the Creative Commons Attribution-ShareAlike License (version 3.0)", the
Sponsors being "Google, Inc., Yahoo, Inc., Microsoft Corporation and
Yandex".
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
.
http://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.
.
On Debian systems, the complete text of the Apache License, Version 2.0
can be found in "/usr/share/common-licenses/Apache-2.0".
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
.
* Redistributions of works must retain the original copyright notice, this
list of conditions and the following disclaimer.
.
* Redistributions in binary form must reproduce the original copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
* Neither the name of W3C nor the names of its contributors may be used to
endorse or promote products derived from this work without specific prior
written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
.
This is the W3C 3-clause BSD License
(https://www.w3.org/copyright/3-clause-bsd-license-2008/), in effect since
20 August 2008 and derived from the OSI 3-clause BSD licence.
License: CC-BY-SA-3.0
On Debian systems, the complete text of the Creative Commons
Attribution-ShareAlike 3.0 Unported License can be found in
"/usr/share/common-licenses/CC-BY-SA-3.0".
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, 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 4 hours ago.
Report
DFSG NEW review for golang-github-piprate-json-gold version 0.7.0-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: Yes - Packaging is of good quality: Yes
- Issues: 0 blocker, 0 important, 1 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
debian/copyright is DEP-5 and accounts for the whole tree. Files: * is Apache-2.0 with copyright 2015-2017 Piprate Limited living only in the Go file headers (the shipped LICENSE is the Apache text with its appendix left as a template, which the file's Comment explains), and later stanzas cover the three Siemens 2025 files, the govalidator regex in ld/rdf_dataset.go (Apache-2.0 and Expat), the Cyberphone jsoncanonicalizer copy (WebPKI.org), ld/json_canonicalizer_test.go (SecureKey) and the W3C JSON-LD test suite (BSD-3-clause), including normalization/ and the schema.org context data (CC-BY-SA-3.0). I read every copyright line in the tree: each is matched by the correct, later-overriding stanza, the short names match the notices and their versions, and the licences not in /usr/share/common-licenses (the W3C 3-clause BSD and Expat) are reproduced in full, so the notices are preserved. The W3C test suite's dual licence is correctly resolved in favour of its BSD option and that choice is documented. No non-free or field-of-use terms, no binaries, fonts, minified files or code without its generator, and Debian ships no library that the embedded sources duplicate.
Packaging
Ordinary, competently done Go team packaging: debhelper compat 14 with dh-go's golang addon and buildsystem and dpkg-build-api (= 1), cachecontrol in Depends because ld/document_loader.go imports it at runtime and testify in Build-Depends because only _test.go files import it, the GOSRC path in debian/rules matching where the golang buildsystem installs, Testsuite: autopkgtest-pkg-go (autodep8's go support and dh-go's /usr/bin/dh_golang_autopkgtest both exist), a DEP-3 patch that applies, gbp.conf, upstream/metadata, salsa-ci.yml and a justified lintian override, Standards-Version 4.7.4 against Policy 4.7.4.1, and a changelog closing the ITP. export CI := true makes the tests use ld/testdata instead of the network, and the autopkgtest rebuilds through debian/rules so it gets that too. The one defect is a fragile rm in debian/rules that makes a DEB_BUILD_OPTIONS=nocheck build fail.
Issues
1. [minor] [packaging] debian/rules removes the test-generated ld/earl.jsonld with plain rm, so a DEB_BUILD_OPTIONS=nocheck build fails
- Files:
debian/rules:21,ld/processor_test.go:584,.gitignore:30 - Basis: checked, in the package or with a reference tool
- Evidence: debian/rules:
rm $(GOSRC)/ld/testdata/mk_vocab.rb \ ... $(GOSRC)/ld/earl.jsonld(no-f); ld/processor_test.go:584earlReport.write("earl.jsonld"); .gitignore:30earl.jsonld - Problem: ld/earl.jsonld is not in the tarball (.gitignore:30) — the test suite writes it into the package directory of the build workspace, and the golang buildsystem's install step copies every file it finds there (
sub installin /usr/share/perl5/Debian/Debhelper/Buildsystem/golang.pm copies all of $builddir/src/$DH_GOPKG), which is why the rules deletes it. From debhelper compat 13,dhskips dh_auto_test when DEB_BUILD_OPTIONS contains nocheck (debhelper tool, dh_auto_test/nocheck, applies at compat 14), so the file is never created and thermof a nonexistent path fails, aborting the build in dh_auto_install. The same would happen if upstream ever drops ld/testdata/mk_vocab.rb. - Fix: Use
rm -ffor ld/earl.jsonld (or move its removal out of the dh_auto_test-dependent path, e.g.rm -f $(GOSRC)/ld/earl.jsonldand keep the plainrmonly for the files that are always in the tarball).
Verified
- The pre-scan listed no files to account for: its only output is the author check, which reports that every copyright holder it detected is named in debian/copyright. I found none missing either.
- debian/copyright read in full (DEP-5, so no proposed replacement):
Files: *Apache-2.0 / 2015-2017 Piprate Limited;ld/api_compact.go,ld/api_expand.go,ld/context.goadd 2025 Siemens AG;ld/rdf_dataset.goApache-2.0 and Expat;ld/internal/jsoncanonicalizer/*Apache-2.0 / 2006-2019 WebPKI.org;ld/json_canonicalizer_test.goApache-2.0 / SecureKey;ld/testdata/*BSD-3-clause / W3C;ld/testdata/normalization/*BSD-3-clause / 2015 W3C;ld/testdata/schema.org/*CC-BY-SA-3.0;debian/*Apache-2.0 / 2026 Juan Manuel Méndez Rey. - Headers of all Go sources read via grep: the only holders in the tree are Piprate Limited, Siemens AG, WebPKI.org, SecureKey Technologies Inc. and (as a comment, for the borrowed regex) 2014 Alex Saskevich; the five Go files with no header are exactly those the
Files: *Comment names (ld/context_test.go, ld/errors_test.go, ld/options_test.go, ld/rdf_compare_test.go, ld/skip_test.go). - LICENSE is the Apache-2.0 text whose appendix is still the template (
Copyright [yyyy] [name of copyright owner]), so it names no holder; there is no NOTICE file. LICENSE.md in ld/testdata states the suite's dual licensing, README.md and the *-manifest.html pages and template.haml name only the W3C Test Suite License, normalization/index.html and normalization/template.haml say "both", and composer.json declares CC0-1.0 — all four cases are recorded in the Comments of the ld/testdata stanzas, and the grammar is allowed by copyright-format 1.0 (Comment, andLicense: A and Bin a Files stanza). - ld/internal/jsoncanonicalizer/{jsoncanonicalizer.go,es6numfmt.go} carry WebPKI.org's Apache-2.0 header and the directory README.md says they are copied from the Cyberphone JSON Canonicalization Go library; ld/rdf_dataset.go:335 records the govalidator (Expat) origin of its URL regexes. The corresponding stanza and the Expat text are in debian/copyright.
- conformance_report.jsonld (524 KB) is a data file, not built code: Makefile
generate-reportcopies it from ld/earl.jsonld, which the tests write (ld/processor_test.go:584); the generator input (the test suite and the library) is in the package, so it is not a missing-source case. Its "foaf:name": "Stan Nazarenko" is the EARL assertor, not a copyright claim; CONTRIBUTORS.md lists contributors and nicknames, not copyright notices, so neither adds a holder the copyright file must name. - No binary or pre-built files in the tree: a glob for png/jpg/gif/pdf/jar/so/a/class/exe/dll/min.js/min.css/woff/ttf/zip/ico/pyc/o found nothing. Grep for non-free wording (non-commercial, no derivative, field of use, "Good, not Evil", research only, ...) found nothing; ld/testdata/remote-doc/.htaccess is the suite's own Apache config, matched by the ld/testdata stanza.
- Packaging read in full: control, rules, changelog, gbp.conf, lrc.config, salsa-ci.yml, source/format, source/lintian-overrides, upstream/metadata, patches/series and the patch (DEP-3 headers,
Forwarded: no, and ld/skip_test.go:62 in the tree does contain the added"#tpr25"). - dh-go 1.69 (apt-cache) provides the sequence addon
golang, the buildsystemgolang, /usr/bin/dh_golang and /usr/bin/dh_golang_autopkgtest, and does not Provide dh-sequence-golang (dh-golang 1.67, which Conflicts with it, does) — so--with=golang, thedh-gobuild-dependency and the first lintian override are right. autodep8's go support matches this control file, soTestsuite: autopkgtest-pkg-gois served, and its generated test uses@builddeps@, so testify needs no place in it. - The GOSRC path in debian/rules is exactly the golang buildsystem's install destination (
$destdir/usr/share/gocode/src/$DH_GOPKG), and the files it deletes (ld/testdata/mk_vocab.rb, ld/testdata/normalization/mk_vocab.rb, ld/testdata/normalization/mk_manifest.rb, ld/earl.jsonld) are exactly what that step copies — the .rb files are in the tarball, ld/earl.jsonld is written by the tests; the second lintian override is about examples/, whose seven .go files are//go:build ignoreprograms that configure() copies as source. dpkg-build-api (= 1)is the documented opt-in (man dpkg-build-api, SYNOPSIS) and its Rules-Requires-Root default ofnosuits this package; Priority may be omitted (deb-src-control: "When omitted, the priority defaults to optional (since dpkg 1.22.13)"). Standards-Version 4.7.4 against Policy 4.7.4.1 is current enough.- Dependency direction checked against the sources:
github.com/pquerna/cachecontrolis imported by ld/document_loader.go (non-test) so the Depends is right,github.com/stretchr/testifyonly by _test.go files so Build-Depends is right (its own deps come transitively, as golang-github-stretchr-testify-dev Depends on them). go.mod asks for a newer cachecontrol commit than Debian's 0.0~git20171018, but the golang buildsystem sets GO111MODULE=off and GOPROXY=off with GOPATH the build dir, so the build uses Debian's version in GOPATH mode and the version requirement is not consulted. - The build-time network dependency is handled: ld/example_test.go:29 installs a mocked http.DefaultTransport for w3c.github.io and schema.org when CI=true, and debian/rules exports CI := true; /usr/bin/dh_golang_autopkgtest runs
make -f debian/rules buildin a copy of the tree, so the autopkgtest gets the same export. - uscan found upstream releases with
debian/watch; a newer upstream version is available (upstream0.9.1, packaged0.7.0), which is not a fault of the package. - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0,CC-BY-SA-3.0).
Not confirmed
- Not built or run (read-only review): I did not verify that the test suite passes, that the tests write ld/earl.jsonld into the build workspace rather than somewhere else, that the two mocked domains are the only ones the suite reaches, or that the four paths in the debian/rules
rmall exist at that point of a normal build. - The claim that the schema.org context data is under CC-BY-SA-3.0 rests on debian/copyright's quotation of https://schema.org/docs/terms.html; the files themselves carry no licence statement and I have no network access to confirm it. It is the best-supported reading, and the alternative (no terms) would be worse, not better.
- autopkgtest was not run, so I cannot confirm that
dh_golang_autopkgtestpasses on the installed sources without the removed .rb files.
Proposed changes
None.
Uploader's response to the LLM review
The uploader was emailed about the review 4 hours ago.
Review Information
accepted — allocated to awm 2 hours ago, started 2 hours ago, completed 2 hours ago.