Skip to content

ADR-0006: License Choice and License-Banner Interaction Policy

Status

Accepted (ratified at Phase 09A enactment of D9 — Q-007 + Q-008 upstream + D11 LICENSE = MIT). Supersedes the Phase 03B interim keep-verbatim policy.

Context

Two coupled ratifications govern the published repo's legal posture:

  1. License choice — which open-source (or proprietary) license governs distribution and downstream use.
  2. License-banner interaction — how the canonical authorship banner (per ADR-0002) interacts with the LICENSE file.

The two are coupled because the banner's last line (All rights reserved) reads differently under different licenses. Under a permissive license (MIT / Apache-2.0 / BSD-3-Clause), All rights reserved is technically unnecessary (the license itself grants the permissions); the banner can either keep the line verbatim (LICENSE controls in case of conflict — industry-standard practice) or replace it with Licensed under <SPDX-id>; see LICENSE for terms. Under a proprietary license, All rights reserved is the load-bearing clause and stays verbatim.

The license-choice option space:

  • MIT — short, permissive, broad downstream-use freedom. Industry-default for small projects.
  • Apache-2.0 — permissive with an explicit patent grant; preferred when the codebase touches potentially-patentable territory.
  • BSD-3-Clause — permissive with an attribution clause and a no-endorsement clause.
  • Proprietary-private — no license grant; private repo only; no downstream-use rights.

The license-banner-interaction option space (per Spec §0.5.3):

  • Keep verbatim — banner remains All rights reserved; LICENSE is the authoritative legal instrument and controls in case of conflict. Industry-standard practice with permissive licenses.
  • Amend per-license — banner's last line is replaced with Licensed under <SPDX-id>; see LICENSE for terms; appropriate for permissive licenses.
  • Proprietary — banner stays verbatim and the LICENSE is a proprietary template; the two are aligned.

The Phase 03B ratification recorded an interim policy of keep-verbatim against the engagement's current pre-publication state (no LICENSE published yet). Phase 09A re-confirms or amends per the operator's ratified license choice.

Decision

  • License choice: MIT. Ratified upstream at D11 (_spec/spec.md §12.2); the LICENSE file at the repository root carries the canonical MIT text and is unchanged by this ADR.
  • License-banner interaction: amend-per-license with SPDX top. The banner's last line is replaced with Licensed under MIT; see LICENSE for terms, and a new top line SPDX-License-Identifier: MIT is prepended per the REUSE specification. The banner is now 6 lines: SPDX top + 4 contact lines + license-clause bottom.

The byte-exact fixture at src/apothem/schemas/authorship-header.txt is updated to the new 6-line form at Phase 09A. ADR-0002's License Interaction subsection is updated by reference (this ADR is the canonical record of the swap). The file-header validator is updated at Phase 09D to enforce the new fixture.

Consequences

  • LICENSE file content. Unchanged — MIT, attributed to Ahmed G. Gad, governs distribution and downstream use.
  • Banner text after re-injection. Every applicable file carries the 6-line form per its filetype variant. Phase 09C re-injects across the ecosystem (~356 files per the Phase 01 audit manifest).
  • license-author-consistency validator behavior. The LICENSE's copyright line and the banner's Copyright (c) line both name Ahmed G. Gad; the SPDX line cross-checks against LICENSE's MIT License heading.
  • Re-injection cadence. One-shot at Phase 09C (comprehensive sweep). New files thereafter inherit the new form via scripts/inject-header.{sh,py} updated at Phase 09B.
  • CHANGELOG entry. Phase 17 (D11 CHANGELOG curation) records the license-banner ratification under the v0.1.0 entry.

Alternatives Considered

  • MIT. Accepted (D11 / _spec/spec.md §12.2). Permissive, short, broadly understood. Industry-default for small projects; aligns with the apothem distribution posture (private repo with controlled-publication surface per Phase 19).
  • Apache-2.0. Rejected. Adds patent-grant complexity not warranted at this scale.
  • BSD-3-Clause. Rejected. The attribution + no-endorsement clauses introduce friction without commensurate benefit at this scale.
  • Proprietary-private. Rejected. Forecloses the option of later open distribution; MIT preserves both private-repo posture and the option of public release.

License-banner interaction:

  • Keep verbatim. Rejected. Pairs All rights reserved with an MIT LICENSE — semantically contradictory; though industry-standard practice, the contradiction is unnecessary when a permissive license is chosen.
  • Amend per-license with SPDX top. Accepted (D9 / Q-007 + Q-008). Banner's last line replaced with Licensed under MIT; see LICENSE for terms; new top line SPDX-License-Identifier: MIT prepended per REUSE spec. Provides both machine-readable license markers (SPDX line) and human-readable license clause (last line) without duplicating LICENSE text into every file.

Cross-references: ADR-0002, src/apothem/schemas/authorship-header.txt, Spec §0.5.3, Spec §2.2 (LICENSE), Phase 09A AskUserQuestion batch.