Skip to content

docs: use the SPDX identifier for the licence in README - #115

Merged
thedavidmeister merged 1 commit into
mainfrom
licence-shorthand-spdx
Aug 16, 2026
Merged

docs: use the SPDX identifier for the licence in README#115
thedavidmeister merged 1 commit into
mainfrom
licence-shorthand-spdx

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

Closes #69

Audit finding D3-07 (dimension 3, INFO).

README's License section wrote the licence as DecentraLicense 1.0 (DCL-1.0).
DCL-1.0 is not a valid SPDX identifier for this licence — the repo's
identifier is LicenseRef-DCL-1.0 everywhere it is actually load-bearing
(every src/** and test/** SPDX header, REUSE.toml, foundry.toml, the
LICENSE symlink target) and in CLAUDE.md's own parallel License section.
README was the one place stating a form a consumer could copy into their own
headers, where reuse lint would then fail on it.

The expansion "DecentraLicense 1.0" was already correct — the licence file's
own first heading is # DecentraLicense — so only the parenthetical changes:

-DecentraLicense 1.0 (DCL-1.0) — full text in
+DecentraLicense 1.0 (SPDX: `LicenseRef-DCL-1.0`) — full text in

SPDX: labels it as the identifier rather than an abbreviation, which is the
distinction that was missing — the whole defect was that a bare parenthetical
reads as "here is the short name you may use".

Verification

  • Repo-wide grep for DCL-1.0 (excluding dependencies/, out/, cache/,
    .git/) now returns zero bare occurrences: every remaining hit is
    LicenseRef-DCL-1.0. README.md:364 was the only one.
  • Adjacent CAL-1.0 on line 365 is untouched and correct — that IS a valid
    SPDX identifier, for the unrelated licence it compares against.
  • New line is 63 characters, inside the wrap the rest of the file uses.
  • No behaviour, compile, CI or on-chain surface is touched. Nothing lints
    README prose (rainix-sol-legal runs reuse lint, which checks SPDX
    headers and REUSE.toml), and no test in test/ asserts on README text —
    which is why the divergence survived in the first place.

QA

  • Discriminating tests: n/a — the diff is one line of README prose. Nothing in
    the repo asserts on README text, and adding a README-prose linter is a
    different change than the one the issue asks for. The issue's own
    verification block establishes the same thing: reuse lint covers SPDX
    headers and REUSE.toml, not prose, and no test in test/ reads README.
  • Mutations applied: n/a — a docs-only diff has no executable line to mutate.
    The equivalent check for a text change is exhaustiveness, and that was run:
    repo-wide grep -rn "DCL-1\.0" excluding dependencies/, out/, cache/,
    .git/ now returns zero hits that are not LicenseRef-DCL-1.0 (exit 1, no
    matches). Stated plainly: grep-zero is not mutation coverage, it is proof
    the string is gone.
  • Oracle: independent of README. The SPDX spec requires the LicenseRef-
    prefix for a licence not on the SPDX list; the licence file's own first
    heading (LICENSES/LicenseRef-DCL-1.0.txt:1) is # DecentraLicense,
    confirming the expansion; and REUSE.toml, foundry.toml, the LICENSE
    symlink target and every src/** / test/** SPDX header independently
    spell the identifier as LicenseRef-DCL-1.0. README was measured against
    those, not against itself.
  • Category check: the issue asks for one thing — README's licence shorthand is
    not the identifier used everywhere else — and gives the exact replacement
    text. Covered exactly. Widened past the single cited line to the whole repo
    by grep to confirm README.md:364 really was the only instance of the
    category, rather than fixing only the example the issue named; it was.

README's License section wrote "DecentraLicense 1.0 (DCL-1.0)". `DCL-1.0` is
not a valid SPDX identifier for this licence; `LicenseRef-DCL-1.0` is, and is
what every SPDX header, REUSE.toml, foundry.toml, the LICENSE symlink target
and CLAUDE.md's parallel License section already use. README was the only bare
occurrence, and the one a consumer could copy into their own headers where
`reuse lint` would fail on it.

Closes #69

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@thedavidmeister thedavidmeister self-assigned this Aug 15, 2026
@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@thedavidmeister, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 15 minutes

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 5b0215b8-7da7-42d5-96ae-167a9a8e6ca4

📥 Commits

Reviewing files that changed from the base of the PR and between 86f8d96 and f6cdc67.

📒 Files selected for processing (1)
  • README.md

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thedavidmeister

Copy link
Copy Markdown
Contributor Author

Reviewed f6cdc67: ready — Closes #69. One line. DCL-1.0 is not a registered SPDX identifier, so the correct spelling for a custom licence is the LicenseRef- form, which is also the filename the link already points at and what every SPDX header in the tree declares. The link target and the CAL-1.0 comparison are untouched.

CI green, 0 unresolved threads — vacuous, CodeRabbit reports Review rate limited.

@thedavidmeister
thedavidmeister merged commit d51391c into main Aug 16, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Licence shorthand (DCL-1.0) is not the identifier the repo uses anywhere else

1 participant