Skip to content

[INFRA] Introduce REUSE specification compliance - #2564

Open
yarikoptic wants to merge 1 commit into
masterfrom
enh-reuse
Open

yarikoptic wants to merge 1 commit into
masterfrom
enh-reuse

Conversation

@yarikoptic

@yarikoptic yarikoptic commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This covers the "this repository itself" item of

It makes the repository's existing licensing machine-readable under REUSE: it adds LICENSES/, a REUSE.toml, and a reuse pre-commit hook. Nothing is relicensed. The annotations only record what the repository already declares:

Path License Copyright Source of the declaration
** (default) CC-BY-4.0 2016-2026 BIDS Contributors root LICENSE, CITATION.cff, mkdocs.yml
tools/schemacode/** MIT 2020-2026 Brain Imaging Data Structure tools/schemacode/LICENSE, its pyproject.toml
BIDS_logo/bids-animated.webm CC-BY-SA-4.0 2021 Adina Wagner BIDS_logo/README.md

reuse lint reports 365/365 files compliant with REUSE 3.3.

Question for maintainers: license of the remaining code

Apart from bidsschematools, the repository has more code: tools/*.py, tools/mkdocs_macros_bids/, tools/typescript/, tools/examplecode/, scripts/, and pdf_build_src/. This code has no license of its own, so the root CC-BY-4.0 applies to it, and this PR records it that way. CC licenses are not recommended for software.

Should this code move to MIT, the same as bidsschematools?

That is a relicensing decision. It is not part of this PR. The files date from 2020–2026 and have between 1 and 9 authors each, so the change would need agreement from those contributors. With agreement, the change is one more [[annotations]] block in REUSE.toml.

Details
  • Years: CC-BY-4.0 starts at 2016, the BIDS 1.0.0 release (the spec existed as a Google Doc before it moved to git in 2018). bidsschematools starts at 2020, when schemacode/ first appears in history, although its LICENSE file says 2022 (the year that file was added in MIT license document #1207).
  • License texts: the CC texts are the canonical files from creativecommons.org legalcode.txt. MIT.txt comes from reuse download (the SPDX list). The root LICENSE and tools/schemacode/LICENSE are unchanged; they differ from the LICENSES/ copies only in the copyright line and whitespace.
  • pre-commit: adds the reuse hook from codeberg.org/fsfe/reuse-tool, frozen at v6.2.0, which lints the whole repository. pre-commit.ci will enforce it.
  • README: adds a short Licensing section.

Test plan

  • uvx --from reuse reuse lint: compliant
  • pre-commit run reuse --all-files: passed
  • Spot-checked reuse spdx: schemacode files resolve to MIT, the animated logo to CC-BY-SA-4.0, and the rest to CC-BY-4.0
  • Maintainers decide on the code-licensing question above (can be a follow-up issue)
  • Depending on above, remove exclude-from-changelog label ;-)

🤖 Generated with Claude Code

Make the existing licensing of this repository machine-readable per
https://reuse.software (part of #2015). No relicensing: annotations only
record what the repository already declares.

- REUSE.toml:
  - "**": CC-BY-4.0, 2016-2026 BIDS Contributors (root LICENSE;
    2016 = BIDS 1.0.0 release, predating the git history)
  - tools/schemacode/**: MIT (tools/schemacode/LICENSE, pyproject.toml);
    2020 = first appearance of schemacode in history
  - BIDS_logo/bids-animated.webm: CC-BY-SA-4.0, Adina Wagner
    (as stated in BIDS_logo/README.md)
- LICENSES/: CC-BY-4.0.txt and CC-BY-SA-4.0.txt fetched from
  https://creativecommons.org/licenses/{by,by-sa}/4.0/legalcode.txt;
  MIT.txt via `reuse download` (SPDX license-list-data).
  Root LICENSE and tools/schemacode/LICENSE are kept as is.
- pre-commit: add reuse-tool `reuse` hook (v6.2.0)
- README: add Licensing section

`reuse lint`: 365/365 files compliant with REUSE 3.3.

Co-Authored-By: Claude Code 2.1.312 / Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the exclude-from-changelog This item will not feature in the automatically generated changelog label Oct 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

I have applied any labels matching special text in your title and description.

Please review the labels and make any necessary changes.

@codecov

codecov Bot commented Oct 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.09%. Comparing base (8973fdf) to head (9c67986).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #2564   +/-   ##
=======================================
  Coverage   83.09%   83.09%           
=======================================
  Files          22       22           
  Lines        1698     1698           
=======================================
  Hits         1411     1411           
  Misses        287      287           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

exclude-from-changelog This item will not feature in the automatically generated changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant