Review: node-reflect-metadata 0.2.2~git20260824.acdeee4-1
Package Information
| Description | polyfill for the ECMAScript Metadata Reflection API reflect-metadata provides a prototype implementation and polyfill for an ECMAScript Metadata Reflection API. It extends the global Reflect object with methods such as Reflect.metadata, Reflect.defineMetadata, Reflect.getMetadata, and Reflect.hasMetadata to declaratively or imperatively attach and introspect metadata on classes, methods, and properties. It is widely used by TypeScript and JavaScript projects that rely on decorator metadata (via TypeScript's --experimentalDecorators and --emitDecoratorMetadata options) for dependency injection, runtime type assertions, and reflection. Node.js is an event-based server-side JavaScript engine. |
|---|---|
| Maintainer | Debian Javascript Maintainers <pkg-javascript-devel@lists.alioth.debian.org> |
| Changed By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
| Sponsor | paulliu@debian.org |
| Distribution | unstable |
| Architecture | all |
| VCS | git: https://salsa.debian.org/js-team/node-reflect-metadata.git (browse) |
| Closes | #1152958 |
| Tracker | https://tracker.debian.org/pkg/node-reflect-metadata |
| Uploaded | 1 day ago |
New Package Report
.changes
| Version | 0.2.2~git20260824.acdeee4-1 |
|---|---|
| Changed-By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
| Architecture | source all |
| Distribution | unstable |
| Date | Thu, 05 Nov 2026 16:30:00 +0000 |
| Source | node-reflect-metadata |
Changelog
node-reflect-metadata (0.2.2~git20260824.acdeee4-1) unstable; urgency=low . * Initial release (Closes: #1152958)
.dsc
| Section | javascript |
|---|---|
| Priority | optional |
| Component | main |
| Package-List | node-reflect-metadata deb javascript optional arch=all |
debian/copyright
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: reflect-metadata
Upstream-Contact: https://github.com/rbuckton/reflect-metadata/issues
Source: https://github.com/rbuckton/reflect-metadata
Files: *
Copyright: 2015-2024, Microsoft Corporation
2015-2024, Ron Buckton <ron.buckton@microsoft.com> (https://github.com/rbuckton)
License: Apache-2.0
Files: debian/*
Copyright: 2026, Ying-Chun Liu (PaulLiu) <paulliu@debian.org>
License: Apache-2.0
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 version 2.0 license
can be found in "/usr/share/common-licenses/Apache-2.0".
DFSG Assistant LLM REVIEW 1 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 1 day ago.
Report
DFSG NEW review for node-reflect-metadata version 0.2.2~git20260824.acdeee4-1
Summary
- Licensing is DFSG-compliant and
debian/copyrightis accurate: No - Packaging is of good quality: Yes
- Issues: 1 blocker, 0 important, 0 minor
- debian/watch: version 5
- debian/copyright: machine-readable
- Scan before the review: nothing found
Licensing
Both licences present are DFSG-free (Apache-2.0 for the bulk of the tree, MIT for a small embedded function), so nothing here is non-free. debian/copyright is not accurate, however: it declares Files: * to be Apache-2.0 only, while docs/ecmarkup.js and docs/index.html contain an MIT-licensed fuzzysearch function whose notice names Nicolas Bevacqua (2015) and Brian Terlson (2016); neither holder nor the MIT licence is mentioned, and MIT is not in /usr/share/common-licenses. Everything else (all .ts/.d.ts, LICENSE, CopyrightNotice.txt) is consistently Apache-2.0 with the Microsoft notice, and the Microsoft and Ron Buckton entries in the copyright file match.
Packaging
The packaging is conventional and sound: compat 13 with dh-sequence-nodejs, a single DEP-3-headed Debian-specific patch, autopkgtest through Testsuite: autopkgtest-pkg-nodejs with debian/tests/pkg-js/{test,files}, Standards-Version 4.7.4 against Policy 4.7.4.1, debian/nodejs/files matching package.json's exports, and built files removed by debian/clean. Build dependencies were checked against unstable and all exist (gulp 4.0.2, node-gulp-tsb 4.0.5, node-typescript 6.0.3, node-del 7.1.0, node-gulp-mocha 8.0.0, chai/mocha, dh-nodejs 0.17.14). Only the version suffix is worth a second look.
Issues
blocker licensing 1. Files: * says Apache-2.0 only, but docs/ecmarkup.js and docs/index.html contain MIT code by Nicolas Bevacqua and Brian Terlson ◂
- Files:
debian/copyright:6-10,docs/ecmarkup.js:565-580,docs/index.html:576-591 - Basis: checked, in the package or with a reference tool
- Evidence: debian/copyright:
Files: */Copyright: 2015-2024, Microsoft Corporation ... 2015-2024, Ron Buckton .../License: Apache-2.0. In both docs files:// The following license applies to the fuzzysearch function/// The MIT License (MIT)/// Copyright © 2015 Nicolas Bevacqua/// Copyright © 2016 Brian Terlson/// Permission is hereby granted, free of charge, ..., i.e. full MIT text. - Problem: Two files that are part of the source package carry a third-party MIT notice naming two holders that debian/copyright does not name and a licence it does not state; DEP-5 requires each file to be covered by a stanza whose Copyright and License match it, and MIT is not in /usr/share/common-licenses so its text has to be given in the copyright file. The rest of docs/ecmarkup.js (and docs/ecmarkup.css) is the bundled ecmarkup tool, which carries no licence notice of its own, so the blanket Apache-2.0 claim is also unverified for those bytes. Policy 12.5 and copyright-format 6.7/6.9.
- Fix: Add a stanza after
Files: *covering docs/ecmarkup.js and docs/index.html withCopyright: 2015 Nicolas Bevacqua/2016 Brian Terlson, aLicense: MIT(orApache-2.0 and MITfor the file as a whole) and a stand-aloneLicense: MITparagraph with the full MIT text; confirm with upstream what licence the ecmarkup bundle itself is under and record that too (docs/ecmarkup.css belongs in the same stanza for that part).
Verified ◂
- Read debian/ in full: control, rules, changelog, copyright, clean, gbp.conf, source/format, nodejs/build, nodejs/files, patches/series and the patch, tests/pkg-js/{test,files}, upstream/metadata.
- Tree inventory outside debian/ and .pc/ (about 30 files): three Reflect*.ts entry points, globals.d.ts, index.d.ts, no-conflict.d.ts, standalone.d.ts, gulpfile.js, two tsconfig files, package.json, README.md, AUTHORS.md, CopyrightNotice.txt, LICENSE, spec.html, spec/metadata.md, test/*.ts, .github/, .vscode/, .gitignore, .npmignore, .npmrc, docs/.
- LICENSE is the complete Apache-2.0 text; CopyrightNotice.txt and every .ts/.d.ts file carry
Copyright (C) Microsoft. All rights reserved.plus the Apache-2.0 header. debian/copyright names Microsoft Corporation and Ron Buckton, which matches. - AUTHORS.md (upstream file, identical in the orig tarball) lists Cy Brown, Oleh Dokuka, Ron Buckton and William Buchwalter as authors; it asserts no copyright and the source files carry only the Microsoft notice, so no separate holder entry is required beyond Ron Buckton.
- Whole-tree grep for Copyright/(C)/©/SPDX-License-Identifier/Licensed under/Permission is hereby granted/GNU/Apache/public domain/All rights reserved/MIT/BSD/CC0/non-commercial/No Evil: the only wording outside the Apache-2.0 headers is the MIT block in docs/ecmarkup.js and docs/index.html (reported as an issue).
- docs/index.html is ecmarkup output generated from spec.html, which is present and complete; docs/ecmarkup.{js,css} and docs/spec.biblio.json are the ecmarkup tool's own assets shipped by upstream for the GitHub Pages docs. They are not part of the installed package and nothing in the build depends on regenerating them.
- No built binaries, bytecode, minified code or PDFs in the tree: Reflect.js/ReflectLite.js/ReflectNoConflict.js and test/*.js are produced by
gulp build/gulp testand removed by debian/clean; debian/nodejs/files installs only package.json, the three generated .js and the two .d.ts named in package.json's exports. - The orig tarball contains the same files as the unpacked tree apart from the applied quilt patch (gulpfile.js, tsconfig*.json, globals.d.ts, test/tsconfig.json, Reflect*.ts, test/vm.ts).
- Packaging checks: compat 13 + dh-sequence-nodejs (provided by dh-nodejs 0.17.14) with
%: dh $@; ${misc:Depends} present, which suffices at compat 13; Standards-Version 4.7.4 vs Policy 4.7.4.1; changelog distribution unstable, initial release closing the ITP; Rules-Requires-Root: no; Multi-Arch: foreign and Architecture: all appropriate for a pure-JS module. - Patch checks: one quilt patch with DEP-3 headers (Description, Author, Forwarded: not-needed, Last-Update), Debian-specific (gulp 4 / TypeScript 6 / @types paths under /usr/share/nodejs), no unrelated hunks.
- Autopkgtest: Testsuite: autopkgtest-pkg-nodejs with debian/tests/pkg-js/test running
gulp test:installedafter symlinking the installed Reflect*.js, and debian/tests/pkg-js/files copying the gulpfile, tsconfigs and test sources; test-only Build-Depends carry <!nocheck>. - All Build-Depends resolve in unstable: gulp 4.0.2, node-gulp-tsb 4.0.5, node-typescript 6.0.3, node-del 7.1.0, node-gulp-mocha 8.0.0, chai, mocha, dh-nodejs 0.17.14; no unconditional circular or missing dependency found.
- uscan found the packaged version as the newest upstream release (upstream
0.2.2~git20260824.acdeee4, packaged0.2.2~git20260824.acdeee4). - Every pointer of
debian/copyrightto /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
- Version string 0.2.2
git20260824.acdeee4-1 sorts below 0.2.2 although package.json in this 2026-08-24 snapshot already says 0.2.2. If upstream released 0.2.2 before that commit (I could not check upstream's releases), the snapshot should be based on the next version (e.g. 0.2.3git...) so that a later 0.2.2 upload is not treated as newer; if 0.2.2 is still unreleased, the current name is correct. - The licence of the non-fuzzysearch part of docs/ecmarkup.js and of docs/ecmarkup.css (the ecmarkup tool bundle) could not be determined from the package: those files carry no licence notice and ecmarkup is not packaged in Debian, so the Apache-2.0 claim of Files: * for them rests on the upstream project's word.
- The test compile path was not executed; whether gulp-tsb 4.0.5 parses tsconfig.json/tsconfig-release.json eagerly at load (they list Reflect.ts files not copied into the autopkgtest directory by debian/tests/pkg-js/files) could not be checked, as gulp-tsb is not installed on this system.
debian/watchlooks atgithub.com/microsoft/reflect-metadata, but theSourcefield ofdebian/copyrightnamesgithub.com/rbuckton/reflect-metadata. Whether these are the same upstream was not checked.debian/watchlooks atgithub.com/microsoft/reflect-metadata, butRepositoryindebian/upstream/metadatanamesgithub.com/rbuckton/reflect-metadata. Whether these are the same upstream was not checked.
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.
Other Reviews of this Package
| Version | Hash | Allocated | Completed | Reviewer | Status | Details |
|---|---|---|---|---|---|---|
| 0.2.2-1 | 9e5f864d… | 2026-11-05 04:11 | 2026-11-05 04:11 | dfsg-uploader | rejected | VIEW |
| 0.2.2-1 | bd3d03bd… | 2026-11-05 18:21 | 2026-11-05 18:21 | dfsg-uploader | rejected | VIEW |
| 0.2.2~git20260824.acdeee4-1 | 80c2e404… | 2026-11-07 04:15 | 2026-11-07 04:15 | dfsg-uploader | rejected | VIEW |
| 0.2.2~git20260824.acdeee4-1 | 861a19a4… | 2026-11-07 16:28 | 2026-11-07 16:28 | dfsg-uploader | rejected | VIEW |
| 0.2.2~git20260824.acdeee4-1 | 255775e8… | 2026-11-07 19:24 | 2026-11-07 19:26 | mechtilde | accepted | VIEW |