ENH: Add REUSE specification and checks for compliance#1844
ENH: Add REUSE specification and checks for compliance#1844yarikoptic merged 2 commits intomasterfrom
Conversation
Adopt the REUSE specification (https://reuse.software/) so that every file in the repository carries machine-readable copyright and license information. `reuse lint` now reports 246/246 files compliant. Changes: * `LICENSES/` — full SPDX license texts (downloaded via `reuse download`): - `Apache-2.0.txt` — project license - `Unlicense.txt` — vendored python-versioneer - `BSD-2-Clause.txt` — vendored duecredit stub (`dandi/due.py`) * `REUSE.toml` — three annotation blocks: - default `precedence = "aggregate"` over `**` → `Apache-2.0`, "2019-2026 DANDI developers <team@dandiarchive.org>" - `precedence = "override"` for `versioneer.py` and `dandi/_version.py` → `Unlicense` (public domain, per upstream) - `precedence = "override"` for `dandi/due.py` → `BSD-2-Clause`, "2015-2019 DueCredit developers" (matches the in-file header from upstream) * `.gitignore` — add `.mypy_cache/`, `.pytest_cache/`, `.ruff_cache/`, `.venv*/` so transient build/test artifacts are not picked up by `reuse lint` (REUSE 3.x honors `.gitignore`; no `.reuseignore` is needed). * Build-system integration: - `tox.ini` — new `[testenv:reuse]` running `reuse lint` - `.pre-commit-config.yaml` — add `fsfe/reuse-tool` hook (v5.0.2) - `.github/workflows/lint.yml` — new `reuse` job using `fsfe/reuse-action@v5` The existing root `LICENSE` file is left in place: it remains the canonical reference from `pyproject.toml` and is the file PyPI/GitHub display by default. `LICENSES/Apache-2.0.txt` is its REUSE-shaped counterpart. This change was prepared with the `reuse-compliance` skill currently under review at con/skills#3. Co-Authored-By: Claude Code 2.1.123 / Claude Opus 4.7 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1844 +/- ##
=======================================
Coverage 76.26% 76.26%
=======================================
Files 87 87
Lines 12486 12486
=======================================
Hits 9523 9523
Misses 2963 2963
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
What joy, 'one more' config file for the outer level 😆
There was a problem hiding this comment.
I love to see this, but will you ever let me fully enable the pre-commit.ci bot so I can be absolutely positive this is passing without any extra steps?
There was a problem hiding this comment.
I do see https://github.com/dandi/dandi-cli/actions/runs/25110788921/job/73583956810?pr=1844 but now there's like at least 3 or 4 different action runs that could all be one single CI
|
Some comments above Only one blocking question if we should fill in that one placeholder on the BSD-2? Technically the |
|
as I commented on -- I would not bother expanding on copyright in "LICENSES/" folder. |
|
🚀 PR was released in |
Adopt the REUSE specification (https://reuse.software/) so that every file in the repository carries machine-readable copyright and license information.
reuse lintnow reports 246/246 files compliant.Changes:
LICENSES/— full SPDX license texts (downloaded viareuse download):Apache-2.0.txt— project licenseUnlicense.txt— vendored python-versioneerBSD-2-Clause.txt— vendored duecredit stub (dandi/due.py)REUSE.toml— three annotation blocks:precedence = "aggregate"over**→Apache-2.0, "2019-2026 DANDI developers team@dandiarchive.org"precedence = "override"forversioneer.pyanddandi/_version.py→Unlicense(public domain, per upstream)precedence = "override"fordandi/due.py→BSD-2-Clause, "2015-2019 DueCredit developers" (matches the in-file header from upstream).gitignore— add.mypy_cache/,.pytest_cache/,.ruff_cache/,.venv*/so transient build/test artifacts are not picked up byreuse lint(REUSE 3.x honors.gitignore; no.reuseignoreis needed).Build-system integration:
tox.ini— new[testenv:reuse]runningreuse lint.pre-commit-config.yaml— addfsfe/reuse-toolhook (v5.0.2).github/workflows/lint.yml— newreusejob usingfsfe/reuse-action@v5The existing root
LICENSEfile is left in place: it remains the canonical reference frompyproject.tomland is the file PyPI/GitHub display by default.LICENSES/Apache-2.0.txtis its REUSE-shaped counterpart.This change was prepared with the
reuse-complianceskill currently under review at