Where Does REUSE Compliance Live?
REUSE compliance lives in LICENSES/ texts plus SPDX headers per file, verifiable with reuse lint. Bulk exceptions go in .reuse/dep5.
Last updated
REUSE spreads compliance across the tree instead of centralizing it. License texts live in LICENSES/ named by SPDX id; every source file carries SPDX-FileCopyrightText and SPDX-License-Identifier headers; reuse lint audits the whole arrangement.
That per-file design is what makes the lint output trustworthy: missing headers fail loudly by path. Bulk licensing via dep5 covers the awkward remainder, but headers stay the primary mechanism wherever comments exist.
Where REUSE stores this, by platform
[RepoDir]\LICENSES\
SPDX texts by identifier. Per-file headers reference these ids; reuse download --all fetches every license the tool detects in use.
[RepoDir]/LICENSES/
Same layout. reuse lint reports missing, unused and deprecated licenses plus header coverage counts; green across the board means compliant.
[RepoDir]/LICENSES/
Same files. CI typically runs reuse lint alongside formatters, since licensing drift, like style drift, compounds silently.
Frequently asked questions
How do I make a repo REUSE compliant?
Add the license text under LICENSES/ (reuse download fetches SPDX texts) and annotate every file with copyright plus identifier lines (reuse annotate writes them). reuse lint then confirms zero gaps.
Some files cannot hold comment headers. What then?
Use .reuse/dep5 (Debian copyright syntax) for paths that cannot carry headers: generated files, binaries, minified assets. Headers remain the default everywhere they fit.
Notice an outdated path? Let us know.