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 | 8 hours ago |
New Package Report
.changes
| Date | Thu, 05 Nov 2026 16:30:00 +0000 |
|---|---|
| Source | node-reflect-metadata |
| Version | 0.2.2~git20260824.acdeee4-1 |
| Changed-By | Ying-Chun Liu (PaulLiu) <paulliu@debian.org> |
| Architecture | source all |
| Distribution | unstable |
Changelog
node-reflect-metadata (0.2.2~git20260824.acdeee4-1) unstable; urgency=low . * Initial release (Closes: #1152958)
.dsc
| Package-List | node-reflect-metadata 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: 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: docs/ecmarkup.js
docs/ecmarkup.css
Copyright: 2015 Nicolas Bevacqua
2016 Brian Terlson
License: MIT
Files: docs/index.html
Copyright: 2015-2024, Microsoft Corporation
2015-2024, Ron Buckton <ron.buckton@microsoft.com> (https://github.com/rbuckton)
2015 Nicolas Bevacqua
2016 Brian Terlson
License: Apache-2.0 and MIT
Comment:
The MIT fuzzysearch function embedded in docs/index.html
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".
License: MIT
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 7 hours 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: 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 with the correct Format URL and matches the tree. Files: * covers everything as Apache-2.0 (Microsoft Corporation, Ron Buckton), matching the Copyright (C) Microsoft / Apache-2.0 headers on every source file, the Apache-2.0 LICENSE and package.json. It is correctly overridden for docs/ecmarkup.js and docs/ecmarkup.css (MIT, the only third-party code in the tree, whose embedded fuzzysearch notice is (c) 2015 Nicolas Bevacqua / (c) 2016 Brian Terlson) and for the generated docs/index.html (Apache-2.0 and MIT). The MIT text is reproduced in full and Apache-2.0 points at /usr/share/common-licenses/Apache-2.0. No non-free terms, no unlicensed file, and the one generated document has its generator input (spec.html) in the tree.
Packaging
Conventional pkg-js-tools packaging: debhelper compat 13 with dh-sequence-nodejs, a gulp build helper in debian/nodejs/build that compiles Reflect.js from Reflect.ts with the release tsconfig, debian/clean removing the build products, and a well-headed DEP-3 patch for gulp 4/TypeScript 6. The install list plus package.json's main/types/exports fields produce the expected /usr/share/nodejs/reflect-metadata contents. The one real defect is the missing nodejs runtime dependency; the autopkgtest dependency declaration is unconfirmed.
Issues
minor packaging 1. Depends does not include nodejs, so an install need not have the interpreter the module runs under ◂
-
Files:
debian/control -
Basis: checked, in the package or with a reference tool
-
Evidence:
Package: node-reflect-metadata
Depends:
${misc:Depends}Nothing in dh-sequence-nodejs adds it for a library package:
/usr/share/perl5/Debian/Debhelper/Buildsystem/nodejs.pm:928doesaddsubstvar( $package, "misc:Depends", 'nodejs:any' )only insideadd_linkwhen a/usr/binor/usr/sbinlink is created, and this package has none. Comparable JS-team binaries all declare it: node-lodashDepends: nodejs:any, node-acornDepends: nodejs:any, node-semverDepends: nodejs:any. -
Problem: The package only ships JavaScript files under /usr/share/nodejs; they can do nothing without a Node.js interpreter, and nothing in the dependency tree guarantees one. Debian Policy 7.2 says Depends should be used when the depended-on package is required for the package to provide a significant amount of functionality, and every other node-* library in the archive follows that.
-
Fix: Make the stanza
Depends: ${misc:Depends}, nodejs:any(the form used by the rest of the team's packages).
Verified ◂
- Read debian/ in full except debian/watch (out of scope): changelog, clean, control, copyright, gbp.conf, nodejs/build, nodejs/files, patches/0001-gulp4-and-node-compat.patch, patches/series, rules, source/format, tests/pkg-js/files, tests/pkg-js/test, upstream/metadata.
- Inventoried and sampled all 40 files outside debian/ and .pc/; none is binary. The prescan's author check found no holder missing from debian/copyright and listed no files to explain.
- Every source file with a notice has the same
Copyright (C) Microsoft. All rights reserved./Licensed under the Apache License, Version 2.0header (Reflect.ts, ReflectLite.ts, ReflectNoConflict.ts, globals.d.ts, index.d.ts, no-conflict.d.ts, standalone.d.ts, CopyrightNotice.txt); LICENSE is the Apache-2.0 text and package.json says"license": "Apache-2.0". Most files (gulpfile.js, tsconfig*.json, test/.ts, spec.html, README.md, docs/) have no header of their own and are covered by the repository licence through Files: *. - grep for Copyright/(C)/(c)/SPDX/Licensed under/Permission is hereby granted/GNU/Apache/BSD/ISC/MPL/GPL/public domain/non-commercial/NoDerivatives found no other holder and no non-free wording anywhere in the tree.
- The only third-party notices are the MIT fuzzysearch block in docs/ecmarkup.js (lines 564-582) and in the same text embedded in docs/index.html (lines 575-593):
Copyright (c) 2015 Nicolas Bevacqua,Copyright (c) 2016 Brian Terlson. debian/copyright has a stanza for docs/ecmarkup.js and docs/ecmarkup.css (MIT, both holders) and for docs/index.html (Apache-2.0 and MIT, both holders), and reproduces the full MIT text. - docs/index.html is the ecmarkup build of spec.html and docs/spec.biblio.json the matching biblio; both sources are present, so the generated documents are not shipped without their preferred form. The generated file is not installed in the binary, and the tarball ships no compiled .js (debian/clean removes Reflect*.js, their maps and test/*.js that the build creates).
- Files: patterns behave correctly per copyright-format 6.9:
Files: *matches everything at any depth, and the later docs/ stanzas (exact paths, no subdirectory reach) override it for the three files they name; debian/* has its own stanza, so the maintainer copyright is covered. - AUTHORS.md names Cy Brown, Oleh Dokuka, Ron Buckton and William Buchwalter as authors, but only Ron Buckton appears in a copyright notice; the others are contributors, not holders with a notice, and debian/copyright names Buckton.
- The single patch has DEP-3 headers (Description, Author, Forwarded: not-needed, Last-Update) and only adapts the gulpfile, tsconfig files, globals.d.ts, Reflect*.ts type annotations and test/vm.ts to packaged gulp 4/TypeScript 6 and mainline Node.js APIs; it does not change runtime behaviour.
- Standards-Version 4.7.4 against Policy 4.7.4.1 from the policy tool: the first two components match, so it is current enough.
- Changelog: initial release, version 0.2.2~git20260824.acdeee4-1, distribution unstable, closes ITP #1152958; date 2026-11-05 is a Thursday, as written.
- Binary contents follow from the packaging: Reflect.js via package.json main (forced by dh-nodejs), ReflectLite.js/ReflectNoConflict.js/no-conflict.d.ts/index.d.ts via package.json types and exports, the debian/nodejs/files list, and README.md/AUTHORS.md via dh_nodejs_autodocs; docs/, spec.html and spec/ stay in the source only.
- Build-Depends resolve in the archive: dh-nodejs provides dh-sequence-nodejs (0.17.14), gulp 4.0.2, node-del 7.1.0, node-gulp-mocha 8.0.0, node-gulp-tsb 4.0.5, node-typescript 6.0.3; @types/chai and @types/mocha are provided by chai and mocha (Provides node-types-chai/node-types-mocha) and @types/node by the nodejs package (Provides node-types-node), which dh-nodejs pulls in at build time.
- 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 ◂
- autopkgtest dependencies: debian/tests/pkg-js/test runs
gulp test:installed, which needs gulp, node-gulp-tsb, node-typescript, mocha and chai (and the @types files), but there is no debian/tests/control. pkg-js-tools is not installed on the reviewing system, so I could not read the generated 'nodejs' test definition to see whether pkg-js-autopkgtest installs those or only the package itself; an autopkgtest run would show. If it installs only the package, the test needs a debian/tests/control declaring them (and nodejs). - Version scheme:
0.2.2~git20260824.acdeee4sorts below a 0.2.2 release although package.json already says 0.2.2 and the snapshot is from 2026-08-24. If upstream has published 0.2.2,0.2.2+git20260824.acdeee4would be the correct sort order so that a later 0.2.2-1 is not treated as an upgrade over this snapshot; I could not check upstream tags without network access. - The licence of the ecmarkup runtime and stylesheet in docs/ecmarkup.js and docs/ecmarkup.css is stated only by debian/copyright (MIT); the files themselves carry only the embedded MIT fuzzysearch notice, and upstream ecmarkup could not be consulted (node-ecmarkup is not in the archive lists).
- I could not build the package or run its tests.
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.
Review Information
accepted — allocated to mechtilde 7 hours ago, started 7 hours ago, completed 7 hours ago.
Final Comment
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 | 683b9801… | 2026-11-06 17:45 | 2026-11-06 17:45 | 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 |