70 lines
3 KiB
Markdown
70 lines
3 KiB
Markdown
# ADR 0003: Project license and upstream attribution boundary
|
|
|
|
- Status: Accepted
|
|
- Date: 2026-10-21
|
|
- Accepted: 2026-10-23 by Kaz
|
|
|
|
## Context
|
|
|
|
The Pirate Ray is intended to become open source, but the repository currently
|
|
has no project license. Rayforge and MeerK40t are both pinned under MIT terms,
|
|
and the leading architecture is a Rayforge addon informed by BalorMK behavior.
|
|
ADR 0002 forbids copied upstream source until license compatibility and exact
|
|
attribution are recorded.
|
|
|
|
## Proposed decision
|
|
|
|
1. License original The Pirate Ray code under MIT.
|
|
2. Keep exact upstream repositories, revisions, license notices and contract
|
|
hashes in the public repository.
|
|
3. Include applicable notices in every source or binary distribution set.
|
|
4. Treat Rayforge's documented addon API as the preferred host boundary.
|
|
5. Isolate any unavoidable internal Rayforge registry access behind one
|
|
compatibility adapter and remove it when a supported upstream API exists.
|
|
6. Use BalorMK as a pinned behavioral oracle until a separately reviewed
|
|
decision authorizes adaptation of specific MIT-licensed implementation
|
|
files.
|
|
|
|
## Why MIT is proposed
|
|
|
|
MIT matches both principal upstreams, is compatible with contributing the
|
|
addon upstream, and imposes a small, auditable notice obligation. It does not
|
|
solve safety, warranty, trademark or third-party-data questions; those remain
|
|
separate project responsibilities.
|
|
|
|
## Consequences
|
|
|
|
- The root project `LICENSE` grants MIT terms for original The Pirate Ray
|
|
code and documentation.
|
|
- Source provenance becomes part of code review and release acceptance.
|
|
- A Windows installer may not be published alone; its verified license
|
|
sidecar and checkpoint manifest are part of the distribution set.
|
|
- BalorMK code adaptation must identify source files and preserve the
|
|
MeerK40t notice.
|
|
- A Rayforge upgrade fails closed when a pinned license, source hash or
|
|
required symbol changes.
|
|
|
|
## Alternatives considered
|
|
|
|
- **Remain unlicensed:** acceptable for research snapshots but blocks the
|
|
intended open-source product and upstream code adaptation.
|
|
- **Apache-2.0:** provides an explicit patent grant but adds notice and license
|
|
complexity without a current upstream requirement.
|
|
- **GPL-family license:** may be appropriate for stronger reciprocity, but it
|
|
is a larger product-policy decision and is not required by the current MIT
|
|
dependencies.
|
|
|
|
## Acceptance
|
|
|
|
Kaz explicitly accepted the proposed MIT license on 2026-10-23. This ADR is
|
|
therefore Accepted and the root `LICENSE` is authoritative for original The
|
|
Pirate Ray code and documentation. Third-party material retains its own terms
|
|
and attribution requirements.
|
|
|
|
The compatibility-adapter part of item 5 is implemented for the offline addon
|
|
and fails closed outside Rayforge addon API 23. This implementation evidence
|
|
does not accept this ADR or select the project license.
|
|
|
|
See the
|
|
[upstream contract and license audit](../research/upstream-contract-and-license-audit.md)
|
|
for the evidence and API-stability assessment.
|