Skip to content

@loopover/miner is published under AGPL-3.0-only and ships no LICENSE file #9786

Description

@JSONbored

The defect

packages/loopover-miner/package.json declares "license": "AGPL-3.0-only" and is published (no private: true). It ships no LICENSE file.

Every one of its published siblings does — @loopover/engine, @loopover/mcp, @loopover/ui-kit, @loopover/contract. packages/discovery-index also has none, but it is private: true and declares no license, so it is correctly excluded.

Distributing a copyleft package without its license text is a licensing problem, not a packaging tidiness one.

Why it could not simply be added

scripts/check-miner-package.ts's ALLOWED list has no /^LICENSE$/ entry. Dropping the file in would have failed npm run test:miner-pack with "Unexpected file in miner package: LICENSE" — so the omission was actively enforced.

The wider class

No published package's checker ever asserted LICENSE. check-engine-package.ts and check-ui-kit-package.ts allow it but leave it out of REQUIRED; check-mcp-package.ts has no required-files concept at all, only an allowlist. So the file could silently drop out of any of them and nothing would notice — miner is simply where it actually happened.

That is the same shape as the DEPLOYMENT.md / Dockerfile regression check-miner-package.ts already guards against, and its comment states the principle: "asserted present so they can never silently drop out of the package again." LICENSE deserves the same treatment, more so — a missing operational doc is an inconvenience, a missing license is a distribution defect.

Scope

  1. Ship packages/loopover-miner/LICENSE (AGPL-3.0, matching what the package declares and what its siblings carry).
  2. Add LICENSE to miner's ALLOWED, since that omission is what blocked it.
  3. Require LICENSE in every published package's pack check — including giving check-mcp-package.ts a required-files assertion, which it lacks entirely.

@loopover/contract needs no change here: it has a LICENSE, and publish-contract.yml already validates its tarball inline with an allowlist that includes it.

Note npm pack includes LICENSE automatically regardless of the files array, so no package.json change is needed — which is precisely why the checker, not files, is where this has to be enforced.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions