Skip to content

feat: publish reciprocal license and compliance toolchain - #1

Merged
zackees merged 2 commits into
mainfrom
feat/reciprocal-license-toolchain
Aug 25, 2026
Merged

feat: publish reciprocal license and compliance toolchain#1
zackees merged 2 commits into
mainfrom
feat/reciprocal-license-toolchain

Conversation

@zackees

@zackees zackees commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

  • publish the FastLED Reciprocal License 1.0 release candidate as a custom MPL-2.0-based combined instrument
  • require zero-day publication of Modified FastLED on or before first sale through either a public fork or a reproducible public bug-report patch
  • add legally non-remedial AI-agent instructions, the legacy MIT notice, canonical notice/policy artifacts, provenance hashes, and legal-review gate
  • add a standalone PEP 723 header inventory/check/update/apply tool with pinned ripgrep bootstrap, zccache fingerprints, fail-closed rewrites, and cross-platform CI

Validation

  • uv run pytest -q (18 passed)
  • uv run ruff check .
  • uv run pyright
  • uv run tools/license_headers.py inventory --profile release --no-cache
  • artifact SHA-256 manifest verified
  • pre-push review gate clean
  • RED -> GREEN evidence before the review squash: bace53c was committed first and failed before implementation; the final squashed tree turns that focused suite green

Coordination and release gate

Coordinated with FastLED/FastLED#4046 and FastLED/FastLED#4047.

This PR is intentionally a draft release candidate. LEGAL-REVIEW.md remains PENDING. Do not tag v1.0.0, advertise the license as final, or adopt it in FastLED until an open-source licensing attorney approves and records the reviewed text. This custom license is not ordinary MPL 2.0 and is not represented as OSI-approved.

Draft adoption PR: FastLED/FastLED#4049

Summary by CodeRabbit

  • New Features
    • Added tooling to inventory, check, and update source license headers.
    • Added configurable header policies, validation rules, exclusions, and compliance reporting.
    • Added release-candidate licensing documentation, notices, provenance details, and artifact checksums.
  • Documentation
    • Expanded the README with license scope, adoption requirements, and tool usage.
  • Chores
    • Added cross-platform automated testing, linting, and type-checking.
    • Standardized line endings and ignored Python cache files.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1847c581-ddde-4a6a-afa1-7624dd082e6f

📥 Commits

Reviewing files that changed from the base of the PR and between 06f7d43 and b3c6010.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (18)
  • .gitattributes
  • .github/workflows/test.yml
  • .gitignore
  • ARTIFACTS.sha256
  • LEGAL-REVIEW.md
  • LICENSE
  • LICENSE-AI-AGENT-INSTRUCTIONS.md
  • LICENSE-MIT-LEGACY
  • MPL-2.0.txt
  • NOTICE-TEMPLATE.txt
  • PROVENANCE.md
  • README.md
  • header-policy.schema.json
  • header-policy.toml
  • pyproject.toml
  • tests/test_license_headers.py
  • tools/__init__.py
  • tools/license_headers.py

📝 Walkthrough

Walkthrough

The repository adds a release-candidate FastLED license package, a validated header policy, a license-header management CLI, comprehensive tests, and cross-platform CI checks.

Changes

FastLED licensing and header tooling

Layer / File(s) Summary
Licensing contract and repository records
LICENSE, MPL-2.0.txt, LICENSE-MIT-LEGACY, LICENSE-AI-AGENT-INSTRUCTIONS.md, NOTICE-TEMPLATE.txt, PROVENANCE.md, LEGAL-REVIEW.md, README.md, ARTIFACTS.sha256
Adds the release-candidate license terms, legacy license text, AI-agent instructions, provenance records, legal-review gate, repository documentation, and artifact checksums.
Header policy definition
header-policy.schema.json, header-policy.toml
Defines schema validation, profiles, supported extensions, comment styles, license metadata, safe roots, and exclusions.
Header discovery and update engine
tools/license_headers.py, tools/__init__.py
Adds policy loading, ripgrep resolution, file discovery, header classification, atomic updates, cache fingerprinting, stability checks, and CLI commands.
Validation and execution setup
tests/test_license_headers.py, pyproject.toml, .github/workflows/test.yml, .gitattributes, .gitignore
Adds behavioral, integrity, cache, and platform tests. Configures Python tooling, line endings, ignored caches, and CI checks on Ubuntu, Windows, and macOS.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant CLI as license_headers CLI
  participant Ripgrep
  participant SourceFiles
  participant Cache as zccache
  Developer->>CLI: run inventory, check, update, or apply
  CLI->>Ripgrep: discover configured files
  Ripgrep-->>CLI: return source paths
  CLI->>SourceFiles: classify headers
  SourceFiles-->>CLI: return findings
  CLI->>Cache: read or write compliance fingerprint
  CLI->>SourceFiles: update missing or outdated headers
  SourceFiles-->>CLI: return verification result
Loading
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/reciprocal-license-toolchain

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.

Publish the FastLED Reciprocal License 1.0 release candidate, incorporated MPL 2.0 text, legally non-remedial AI-agent instructions, legacy MIT notice, provenance record, and explicit attorney-review gate.

Commercial publication is due on or before first sale and may use either a public fork or a public bug report containing the exact upstream SHA and complete reproducible patch.
Add the deterministic inventory/check/update/apply tool, managed notice and policy schema, pinned ripgrep bootstrap, zccache fingerprints, artifact hashes, fixtures, and cross-platform CI.

Development evidence before the review-history rewrite: bace53c was committed first as the failing RED acceptance test; this final toolchain makes that focused suite green.
@zackees
zackees force-pushed the feat/reciprocal-license-toolchain branch from 98cac7a to b3c6010 Compare August 25, 2026 05:34
@zackees
zackees marked this pull request as ready for review August 25, 2026 05:34
@zackees
zackees merged commit bf6ddbe into main Aug 25, 2026
3 of 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.

1 participant