DFSG NEW Queue

DFSG, Licensing & New Packages Team

Review: node-reflect-metadata 0.2.2~git20260824.acdeee4-1

Package Information

Descriptionpolyfill 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.

MaintainerDebian Javascript Maintainers <pkg-javascript-devel@lists.alioth.debian.org>
Changed ByYing-Chun Liu (PaulLiu) <paulliu@debian.org>
Sponsorpaulliu@debian.org
Distributionunstable
Architectureall
VCSgit: https://salsa.debian.org/js-team/node-reflect-metadata.git (browse)
Closes#1152958
Trackerhttps://tracker.debian.org/pkg/node-reflect-metadata
Uploaded1 day ago

New Package Report

.changes◂
Version0.2.2~git20260824.acdeee4-1
Changed-ByYing-Chun Liu (PaulLiu) <paulliu@debian.org>
Architecturesource all
Distributionunstable
DateThu, 05 Nov 2026 16:30:00 +0000
Sourcenode-reflect-metadata
Changelog◂
node-reflect-metadata (0.2.2~git20260824.acdeee4-1) unstable; urgency=low
 .
   * Initial release (Closes: #1152958)
.dsc◂
Sectionjavascript
Priorityoptional
Componentmain
Package-Listnode-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/copyright is 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 with Copyright: 2015 Nicolas Bevacqua / 2016 Brian Terlson, a License: MIT (or Apache-2.0 and MIT for the file as a whole) and a stand-alone License: MIT paragraph 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 test and 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:installed after 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, packaged 0.2.2~git20260824.acdeee4).
  • Every pointer of debian/copyright to /usr/share/common-licenses names a file that is there (Apache-2.0).
Not confirmed ◂
  • Version string 0.2.2git20260824.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/watch looks at github.com/microsoft/reflect-metadata, but the Source field of debian/copyright names github.com/rbuckton/reflect-metadata. Whether these are the same upstream was not checked.
  • debian/watch looks at github.com/microsoft/reflect-metadata, but Repository in debian/upstream/metadata names github.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

VersionHashAllocatedCompletedReviewerStatusDetails
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

Back to Dashboard | View all reviews for this package