Nothing fails when a new source file ships with no licence header #111

Open
opened 2026-09-21 07:18:33 +00:00 by cgalo5758 · 0 comments
Owner

What a contributor runs into

A file added without a licence header is accepted. The stamper script writes the dual-licence identifier into the hand-written sources it covers (Go, SQL migrations and seeds, the templates, the first-party assets) and a make target runs it, but only when somebody remembers to run it.

Why it costs

The repository's licence metadata is only as complete as the last run of that target, and a commercial buyer's counsel reads missing metadata as an unresolved question. The REUSE convention closes both halves, with a linter that fails on an unstamped file and a generated bill of materials, for about an afternoon of setup. It earns its keep only if something runs it, and this repository has no continuous integration yet, so adopting it now means maintaining a check nobody runs.

One item stays open until then: the commercial half of the identifier is a licence reference, which the convention resolves to a file under LICENSES/ that does not exist, so a run would report it as dangling. Nothing is broken by that today; the reference signals that a commercial option exists rather than granting anything, and COMMERCIAL.md carries the human-readable side.

Where

scripts/spdx-headers.sh and its make target; LICENSES/; the continuous-integration configuration, when there is one.

Done when

Continuous integration runs the REUSE lint as a step; the declaration file covers by glob the two exclusions the stamper records in its own header (the query files, whose leading comments the query generator copies into the generated code, and the vendored browser assets, which keep their own licences in NOTICE); and the commercial reference resolves to a file that points at COMMERCIAL.md instead of restating it.

Migrated from status/issues.md at b7a0e15

## What a contributor runs into A file added without a licence header is accepted. The stamper script writes the dual-licence identifier into the hand-written sources it covers (Go, SQL migrations and seeds, the templates, the first-party assets) and a make target runs it, but only when somebody remembers to run it. ## Why it costs The repository's licence metadata is only as complete as the last run of that target, and a commercial buyer's counsel reads missing metadata as an unresolved question. The REUSE convention closes both halves, with a linter that fails on an unstamped file and a generated bill of materials, for about an afternoon of setup. It earns its keep only if something runs it, and this repository has no continuous integration yet, so adopting it now means maintaining a check nobody runs. One item stays open until then: the commercial half of the identifier is a licence reference, which the convention resolves to a file under `LICENSES/` that does not exist, so a run would report it as dangling. Nothing is broken by that today; the reference signals that a commercial option exists rather than granting anything, and [`COMMERCIAL.md`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/COMMERCIAL.md) carries the human-readable side. ## Where [`scripts/spdx-headers.sh`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/scripts/spdx-headers.sh) and its make target; `LICENSES/`; the continuous-integration configuration, when there is one. ## Done when Continuous integration runs the REUSE lint as a step; the declaration file covers by glob the two exclusions the stamper records in its own header (the query files, whose leading comments the query generator copies into the generated code, and the vendored browser assets, which keep their own licences in [`NOTICE`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/NOTICE)); and the commercial reference resolves to a file that points at [`COMMERCIAL.md`](https://git.coopcloud.tech/wiki-cafe/member-console/src/commit/b7a0e15/COMMERCIAL.md) instead of restating it. Migrated from status/issues.md at b7a0e15
cgalo5758 added the
kind
debt
area/licensingarea/meta
labels 2026-09-21 07:18:33 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#111