iseriser: normalize licensing to MPL-2.0 (code) + CC-BY-SA-4.0 (docs) by hyperpolymath · Pull Request #68 · hyperpolymath/iseriser · GitHub
Skip to content

iseriser: normalize licensing to MPL-2.0 (code) + CC-BY-SA-4.0 (docs)#68

Merged
hyperpolymath merged 3 commits into
mainfrom
claude/iseriser-proofs-review-rtdcwb
Jun 26, 2026
Merged

iseriser: normalize licensing to MPL-2.0 (code) + CC-BY-SA-4.0 (docs)#68
hyperpolymath merged 3 commits into
mainfrom
claude/iseriser-proofs-review-rtdcwb

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Reference implementation of the estate licensing normalization (to be propagated family-wide). Makes iseriser's licensing single and consistent: code/config = MPL-2.0, documentation prose = CC-BY-SA-4.0, both full texts in LICENSES/, MPL-2.0 LICENSE at root so GitHub's licence chip shows MPL-2.0.

Changes

  • README: replaced the rendered-PMPL-1.0-or-later badge + "Palimpsest Covenant" badge + "Licensed under the Palimpsest License" footer with MPL-2.0 (code) + CC-BY-SA-4.0 (docs) badges/text linking LICENSES/.
  • dep5: added a docs carve-out (*.adoc, *.md, docs/**) → CC-BY-SA-4.0 so the two-SPDX split is actually encoded (was * → MPL-2.0 with no docs split).
  • Removed contradictory self-claims in QUICKSTART-MAINTAINER.adoc, docs/RSR_OUTLINE.adoc, docs/STATE-VISUALIZER.adoc, rhodibot.yml comments, and the two Trustfile.a2ml LICENSE-content checks.

Deliberately preserved (not self-claims)

  • cargo-deny's AGPL deny-list (dependency policy);
  • the "never use AGPL → use MPL-2.0" estate policy in copilot-instructions.md / AGENTIC.a2ml;
  • the Contributor Covenant Code of Conduct (not a licence).

Verification

standards/scripts/check-licence-consistency.sh iseriser → all [OK], passes.

Note

The two pre-existing CI reds (rust-ci toolchain input bug; Hypatia baseline) are unrelated to this change and were present before #67.

🤖 Generated with Claude Code


Generated by Claude Code

Jonathan D.A. Jewell and others added 3 commits June 26, 2026 11:13
The hand-written Idris2 ABI was never compiler-checked and did not
typecheck under Idris2 0.7.0. Make the foundation real and machine-verified.

Layout.idr
- Discharge the two open holes: ?fieldsAlignedProof and ?offsetInBoundsProof.
- Add a sound decDivides decision procedure (builds genuine m = k*n
  witnesses) and decFieldsAligned; checkCABI now returns a real
  CABICompliant proof or an error.
- offsetInBounds had an unsound signature (claimed every field fits any
  layout); make it an honest decidable Maybe.
- Fix paddingFor (Nat has no Neg; use minus) and give the three concrete
  struct layouts explicit alignment witnesses.
- Replace alignUpCorrect's non-compiling Refl proof with a sound
  alignUpDivides decision; the general lemma is noted as residual work.

Types.idr
- FullyResolved and GenerationComplete carried no obligation; give them
  real So-proofs (no {{/}} markers remain; all seven categories present).
- thisPlatform was a %runElab stub needing ElabReflection; make it total.
- DecEq Result used `No absurd` with no Uninhabited instance; discharge
  the off-diagonal cases explicitly.
- createHandle left the auto So (ptr /= 0) unsolved; use choose.

Proofs.idr (new)
- Machine-checked theorems: the three concrete FFI struct layouts are
  provably C-ABI aligned; Result→C-int pins; generation-completeness.

Structure / tooling
- Move ABI into src/interface/abi/Iseriser/ABI/ so it builds as an Idris2
  package (matches the chapeliser layout); add iseriser-abi.ipkg.
- Add `just proofs` recipe; ignore Idris build artifacts.
- verification/proofs/ now documents and points at the verified proofs.

Verified: `idris2 --build iseriser-abi.ipkg` clean (0 warnings);
cargo test green (57 unit + 9 integration).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DF9CcCuL4YJoqs26eHsYiA
The governance/licence-consistency check requires an SPDX-License-Identifier
header on the LICENSE file and a `license` field in the manifest. The LICENSE
body is MPL-2.0 text, so stamp `SPDX-License-Identifier: MPL-2.0` (matching the
actual body) and set `license = "MPL-2.0"` (replacing `license-file`).

Verified with standards/scripts/check-licence-consistency.sh (passes).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DF9CcCuL4YJoqs26eHsYiA
Make the repo's licensing story single and consistent: code/config under
MPL-2.0, documentation prose under CC-BY-SA-4.0, with both full texts in
LICENSES/ and the MPL-2.0 LICENSE at root for GitHub's licence chip.

- README: replace the PMPL-1.0/Palimpsest-Covenant badges and the
  "Licensed under the Palimpsest License" footer with MPL-2.0 (code) +
  CC-BY-SA-4.0 (docs) badges/text linking LICENSES/.
- dep5: add a docs carve-out (*.adoc, *.md, docs/**) -> CC-BY-SA-4.0 so the
  two-SPDX split is actually encoded (was *-> MPL-2.0 with no docs split).
- Remove contradictory self-licence claims from QUICKSTART-MAINTAINER.adoc,
  docs/RSR_OUTLINE.adoc, docs/STATE-VISUALIZER.adoc, rhodibot.yml comments,
  and the two Trustfile LICENSE-content checks.
- Preserve legitimate non-self references: cargo-deny's AGPL deny-list, the
  "never use AGPL" estate policy, and the Contributor Covenant CoC.

Verified: standards/scripts/check-licence-consistency.sh passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DF9CcCuL4YJoqs26eHsYiA
@hyperpolymath hyperpolymath marked this pull request as ready for review June 26, 2026 11:31
@hyperpolymath hyperpolymath merged commit 5f6dc0d into main Jun 26, 2026
20 of 22 checks passed
@hyperpolymath hyperpolymath deleted the claude/iseriser-proofs-review-rtdcwb branch June 26, 2026 11:31
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