Visitar URL original
Adopt reciprocal license policy and source-header enforcement by zackees · Pull Request #4049 · FastLED/FastLED · GitHub
Skip to content

Adopt reciprocal license policy and source-header enforcement - #4049

Draft
zackees wants to merge 8 commits into
masterfrom
feat/reciprocal-license-adoption
Draft

zackees wants to merge 8 commits into
masterfrom
feat/reciprocal-license-adoption

Conversation

@zackees

@zackees zackees commented Aug 25, 2026

Copy link
Copy Markdown
Member

Summary

Adopts the release-candidate FastLED Reciprocal License 1.0 materials and enforcement toolchain from FastLED/license#1.

The policy incorporates MPL 2.0 in full and adds FastLED-specific reciprocal terms. Proprietary applications, sketches, firmware, plugins, and products may continue to use, link, embed, ship, and sell FastLED without disclosing independent surrounding source. Only modifications to FastLED or source derived from FastLED are subject to reciprocal publication.

For commercial release, modified FastLED source must be public on or before first sale, with no grace period. Compliance can use either a public fork/repository or a public issue/bug report containing the exact upstream commit and complete reproducible unified diff, regardless of patch size.

What changes

  • Vendors the release-candidate license, exact MPL 2.0 text, AI-agent instructions, legacy MIT notice, policy/schema, enforcement tool, provenance, and compatibility notes.
  • Adds the four-line discovery notice to 2,083 FastLED-owned source files.
  • Excludes and hash-locks 253 generated, vendored, third-party, separately licensed, and Animartrix files.
  • Enforces exact exclusion-inventory coverage so new files cannot silently enter a broad exclusion.
  • Runs fail-closed source-header checks on Linux, Windows, macOS, and GitHub source archives without .git metadata.
  • Updates README and CONTRIBUTING guidance, including contributor copyright/patent grants.
  • Leaves the PlatformIO license field unset because PlatformIO 6.1.19 rejects the custom LicenseRef; the package still includes all controlling license files.

Validation

  • bash lint
  • bash test --cpp — 368/368 passed (284 unit, 84 examples)
  • bash compile uno --examples Blink — release firmware built
  • focused license pytest — 4 passed
  • Rust line-10/line-11 suppression-boundary regression — passed
  • uncached working-tree scan — 2,083 current, 253 excluded, zero violations
  • uncached git-archive scan without .git — same inventory, zero violations
  • second migration apply — zero changes
  • all 253 excluded paths remained byte-for-byte unchanged and hash-valid
  • canonical tool CI — Linux, Windows, and macOS green
  • pre-push review — clean

Merge gate

Do not merge yet. The license remains a release candidate marked PENDING LEGAL REVIEW. Adoption must wait for licensing counsel, a reviewed immutable release/tag in FastLED/license, final transition commit/tag/release selection, and replacement of the pending provenance marker.

Related: #4046, #4047, #4048.
Depends on: FastLED/license#1.

@coderabbitai

coderabbitai Bot commented Aug 25, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

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.

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

None yet

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant