Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0
# SPDX-License-Identifier: MPL-2.0
name: CodeQL Security Analysis

on:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/language-policy.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0
# SPDX-License-Identifier: MPL-2.0
name: Language Policy Enforcement

on:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPDX-License-Identifier: PMPL-1.0
# SPDX-License-Identifier: MPL-2.0
name: Scorecards supply-chain security

on:
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/AGENTIC.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ structural-rules = [
"no SCM files — use A2ML",
"no state files in repo root — must be in .machine_readable/",
"no .git in subdirs (exception: declared submodules)",
"no AGPL (JtV is PMPL)"
"no AGPL (JtV code is MPL-2.0, docs CC-BY-SA-4.0)"
]
thesis-protection = [
"Harvard separation: Data MUST NOT contain Control constructs",
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/META.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ last-updated = "2026-06-02"

[project-info]
license = "MPL-2.0"
license-fallback = "MPL-2.0 (automatic legal fallback until PMPL formally recognised)"
license = "MPL-2.0 (code) + CC-BY-SA-4.0 (docs)"
author = "Jonathan D.A. Jewell (hyperpolymath)"
author-email = "j.d.a.jewell@open.ac.uk"
git-author-email = "6759885+hyperpolymath@users.noreply.github.com"
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/6a2/STATE.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ issues = [
{ id = "gap-003", description = "Coprocessor implementation gated on PataCL Phase 1", severity = "medium", status = "external-dependency" },
{ id = "gap-004", description = "Reversibility round-trip not guaranteed end-to-end at integration level", severity = "medium", status = "known" },
{ id = "gap-005", description = "Semantic model is Int-only: the 7 number systems are typed but stated-unproven at the value level; type_preservation mechanised only for τ=int (see ADR-0007 D6 + PROOF-CAPABILITY-MATRIX.adoc)", severity = "medium", status = "known", follow-up = "number-system-semantics work" },
{ id = "gap-006", description = "License-identifier discrepancy: 8 files (codeql.yml, scorecard.yml, language-policy.yml, README.adoc, PALIMPSEST.adoc, playground/README.adoc, playground/PALIMPSEST.adoc, playground/jtv/README.adoc) carry SPDX-License-Identifier: PMPL-1.0, not an SPDX-recognised identifier; ADR-0007 + spec + 6a2 + new governance/wiki files use MPL-2.0 (PMPL noted only as aspirational). estate standard (absolute-zero) is MPL-2.0-only with PMPL-1.0 -> MPL-2.0. Needs governance decision: normalise to MPL-2.0, or formally keep/adopt PMPL via PALIMPSEST.adoc.", severity = "medium", status = "flagged", follow-up = "user governance decision" }
{ id = "gap-006", description = "RESOLVED 2026-06-15: license decision = MPL-2.0 (code) + CC-BY-SA-4.0 (docs), full per-file. 75 doc headers -> CC-BY-SA-4.0; code stragglers (3 PMPL-1.0 workflows, MPL-2.0-or-later, PLMP/GPL typos, and a deliberate MIT-OR-GPL-3.0-or-later-OR-Palimpsest tri-license on formatter/repl/rsr_check) -> MPL-2.0; PALIMPSEST.adoc (both copies) retired; LICENSING.md rewritten; PMPL badges replaced. Follow-ups: populate LICENSES/ with canonical MPL-2.0 + CC-BY-SA-4.0 texts; add SPDX headers to ~49 header-less docs.", severity = "low", status = "resolved", follow-up = "LICENSES/ texts + header-less docs" }
]

[critical-next-actions]
Expand Down
1 change: 0 additions & 1 deletion .machine_readable/COPROC-TRAJECTORIES.a2ml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
;; SPDX-License-Identifier: MPL-2.0
;; (MPL-2.0 is automatic legal fallback until PMPL is formally recognised)
;; Copyright (c) 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
;;
;; COPROC-TRAJECTORIES.a2ml — Authoritative trajectory status for JtV
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/agent_instructions/README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
= Agent Instructions
:toc: preamble
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/bot_directives/README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell
= Bot directives — julia-the-viper
:toc:
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/self-validating/README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell
= Self-validating K9 templates — julia-the-viper
:toc:
Expand Down
2 changes: 1 addition & 1 deletion ALIGNMENT-AFFINESCRIPT.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= Julia the Viper → AffineScript Alignment Plan
:toc:
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
= Changelog

All notable changes to Julia the Viper will be documented in this file.
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<!--
SPDX-License-Identifier: MPL-2.0
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath)
-->

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,7 @@ By contributing, you agree that your contributions will be licensed under the sa

[source]
----
SPDX-License-Identifier: MPL-2.0-or-later
SPDX-License-Identifier: CC-BY-SA-4.0
----

See link:LICENSE.txt[LICENSE.txt] for details.
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Contributing

Contributions are welcome! Please:
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPMENT_PLAN.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Julia the Viper: Development Roadmap & Technical Decisions

**SPDX-License-Identifier: MPL-2.0
**SPDX-License-Identifier: CC-BY-SA-4.0
**Version:** 1.0
**Date:** 2025

Expand Down
2 changes: 1 addition & 1 deletion EXPLAINME.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= Julia the Viper — EXPLAINME
:toc: left
Expand Down
2 changes: 1 addition & 1 deletion GOVERNANCE.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -494,4 +494,4 @@ This governance model draws inspiration from:

Last updated: 2025-01-22 +
Version: 1.0 +
SPDX-License-Identifier: MPL-2.0-or-later
SPDX-License-Identifier: CC-BY-SA-4.0
180 changes: 33 additions & 147 deletions LICENSING.md
Original file line number Diff line number Diff line change
@@ -1,164 +1,50 @@
# Licensing Information
<!--
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
-->

Julia the Viper is **dual-licensed** under your choice of:
# Licensing

1. **MIT License** (LICENSE-MIT) - Permissive, business-friendly
2. **Palimpsest Software License v0.8** (LICENSE-PALIMPSEST) - Ethical, community-focused
Julia the Viper is **dual-licensed by artifact type**:

You may choose which license to use based on your needs.
| Artifact | License | SPDX |
|----------|---------|------|
| **Source code** (`.rs`, `.lean`, `.idr`, `.yml`, `.toml`, `.sh`, `.a2ml`, `.scm`, `.ncl`, `.pest`, `.ebnf`, `Justfile`, build/CI config) | Mozilla Public License 2.0 | `MPL-2.0` |
| **Documentation & prose** (`.adoc`, `.md`, wiki, specs, ADRs, tutorials) | Creative Commons Attribution-ShareAlike 4.0 | `CC-BY-SA-4.0` |

## Quick Guidance
This supersedes the earlier PMPL-1.0 / Palimpsest, `MIT OR GPL-3.0-or-later OR Palimpsest`, and `MPL-2.0-or-later` arrangements (see *History*).

### Choose MIT if:
- You need maximum business compatibility
- You're integrating into proprietary software
- You want minimal restrictions
- You're familiar with standard open source licenses
## Per-file SPDX headers

### Choose Palimpsest if:
- You value ethical software development
- You want to support politically autonomous software
- You appreciate emotional safety in development
- You want to contribute back to community (encouraged, not required)
Every file declares its license in an SPDX header:

## Dual Licensing Rationale
- Code: `// SPDX-License-Identifier: MPL-2.0` (or `# …` for shell/YAML/TOML).
- Docs (Markdown): `<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->`
- Docs (AsciiDoc): `// SPDX-License-Identifier: CC-BY-SA-4.0`

We dual-license to:
Full license texts live in `LICENSES/` (REUSE layout); the repository-root `LICENSE` is the MPL-2.0 code license.

1. **Maximize Adoption**: MIT removes barriers for commercial use
2. **Support Values**: Palimpsest expresses our development philosophy
3. **Offer Choice**: Different projects have different needs
## Why this split

## License Compatibility
- **MPL-2.0 for code** — file-level copyleft that stays permissive enough to embed JtV as an "aspect" in other languages (the AOLD goal), while keeping modifications open.
- **CC-BY-SA-4.0 for docs** — the natural license for prose and specs: share and adapt with attribution, share-alike.

### MIT License
- **Compatible with**: Everything (GPL, Apache, proprietary, etc.)
- **Restrictions**: None (just attribution)
- **Best for**: Maximum flexibility
## Third-party dependencies

### Palimpsest License
- **Compatible with**: MIT, Apache 2.0, GPL 3.0+, other Palimpsest
- **Restrictions**: Ethical use conditions, political autonomy clauses
- **Best for**: Values-aligned development
| Crate | License |
|-------|---------|
| `pest`, `pest_derive` | MIT/Apache-2.0 |
| `num-rational`, `num-complex`, `num-traits` | MIT/Apache-2.0 |
| `thiserror`, `serde`, `serde_json` | MIT/Apache-2.0 |
| `wasm-bindgen`, `clap`, `criterion` | MIT/Apache-2.0 |
| `colored` | MPL-2.0 |

## Which License Applies?
All are compatible with MPL-2.0.

**You choose!** When using Julia the Viper:
## History

```rust
// To use under MIT:
// SPDX-License-Identifier: MPL-2.0
// See LICENSE-MIT
Earlier revisions experimented with a bespoke **Palimpsest (PMPL-1.0)** license and, in places, an `MIT OR GPL-3.0-or-later OR Palimpsest` tri-license and `MPL-2.0-or-later`. As of 2026-06 the project standardises on **MPL-2.0 (code) + CC-BY-SA-4.0 (docs)**; `PALIMPSEST.adoc` and the PMPL badges are retired. Already-released versions remain under whatever terms they shipped with.

// To use under Palimpsest:
// SPDX-License-Identifier: MPL-2.0
// See LICENSE-PALIMPSEST
## Questions

// To explicitly dual-license your derivative:
// SPDX-License-Identifier: MPL-2.0
```

## Contributing

When you contribute to Julia the Viper:

- Your contributions are licensed under **both** MIT and Palimpsest
- You retain copyright to your contributions
- You grant us permission to distribute under both licenses
- See CONTRIBUTING.md for details

## Patent Grant

Both licenses include implicit patent grants:

- **MIT**: Implied patent license for use
- **Palimpsest**: Explicit patent non-assert for ethical use

## Trademark

"Julia the Viper" and the snake logo are trademarks (pending):

- You may use them to refer to this project
- You may not use them to imply endorsement without permission
- You may not register confusingly similar trademarks

## Third-Party Dependencies

Julia the Viper uses the following dependencies:

### Rust Crates
- `pest` and `pest_derive`: MIT/Apache-2.0
- `num-rational`, `num-complex`, `num-traits`: MIT/Apache-2.0
- `thiserror`: MIT/Apache-2.0
- `serde`, `serde_json`: MIT/Apache-2.0
- `wasm-bindgen`: MIT/Apache-2.0
- `clap`: MIT/Apache-2.0
- `colored`: MPL-2.0
- `criterion`: MIT/Apache-2.0

All dependencies are compatible with both our licenses.

## Examples

Example programs in `examples/` are licensed under **CC0-1.0** (Public Domain):

- Use them freely without attribution
- Modify them without restriction
- Learn from them and build your own

## Documentation

Documentation in `docs/` is licensed under **CC-BY-4.0**:

- Share and adapt with attribution
- Use in your own documentation
- Translate to other languages

## Standard Library

The standard library (`packages/jtzig/stdlib/`) is dual-licensed:

- Use under MIT for maximum compatibility
- Use under Palimpsest if you prefer ethical licensing

## License Text Location

- **MIT**: `LICENSE-MIT` file in repository root
- **Palimpsest**: `LICENSE-PALIMPSEST` file in repository root
- **Legacy GPL-3.0**: `LICENSE` file (historical, superseded by dual licensing)

## Changing Licenses

We will **not** change the license of existing versions retroactively.

Future versions may:
- Update to newer Palimpsest versions (v0.9, v1.0, etc.)
- Update MIT terms if MIT itself is updated
- Add additional compatible licenses

Existing versions remain under their original license terms.

## Questions?

For licensing questions:
- **Email**: license@julia-viper.dev
- **GitHub**: Open a discussion with "licensing" tag

## SPDX Identifiers

For SPDX compliance in your projects:

```
# Using MIT only
SPDX-License-Identifier: MPL-2.0-or-later

# Using Palimpsest only
SPDX-License-Identifier: MPL-2.0-or-later

# Using either (recommended)
SPDX-License-Identifier: MPL-2.0-or-later
```

---

Last updated: 2025-01-22
Open a GitHub discussion tagged `licensing`.
2 changes: 1 addition & 1 deletion MAINTAINERS.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
= Maintainers
:toc: preamble

Expand Down
41 changes: 0 additions & 41 deletions PALIMPSEST.adoc

This file was deleted.

2 changes: 1 addition & 1 deletion QUICKSTART-DEV.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// Template: QUICKSTART-DEV.adoc — clone → build → test → PR
// Replace julia-the-viper, {{BUILD_CMD}}, {{TEST_CMD}}, {{LANG_STACK}} with actuals
= julia-the-viper — Quick Start for Developers
Expand Down
2 changes: 1 addition & 1 deletion QUICKSTART-MAINTAINER.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// Template: QUICKSTART-MAINTAINER.adoc — packaging, deploying, and maintaining
// Replace julia-the-viper, {{PACKAGE_NAME}}, {{DEPS}} with actuals
= julia-the-viper — Quick Start for Platform Maintainers
Expand Down
2 changes: 1 addition & 1 deletion QUICKSTART-USER.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// Template: QUICKSTART-USER.adoc — 5-minute path to working software
// Replace julia-the-viper, Julia The Viper — See README.adoc for details., just run, Julia The Viper started successfully. with actuals
= julia-the-viper — Quick Start for Users
Expand Down
Loading
Loading