Skip to content

Relicense the Wave standard library under Apache 2.0 - #335

Merged
LunaStev merged 1 commit into
wavefnd:masterfrom
LunaStev:license/std-apache-2.0
Aug 9, 2026
Merged

Relicense the Wave standard library under Apache 2.0#335
LunaStev merged 1 commit into
wavefnd:masterfrom
LunaStev:license/std-apache-2.0

Conversation

@LunaStev

@LunaStev LunaStev commented Aug 9, 2026

Copy link
Copy Markdown
Member

Summary

  • license the Wave standard library under Apache License 2.0
  • keep the Wave compiler and all repository components outside std/ under MPL-2.0
  • add the canonical Apache 2.0 license text at std/LICENSE
  • replace the license headers in all 79 standard library Wave source files with Apache-2.0 SPDX headers
  • declare Apache-2.0 in std/manifest.json
  • document the repository license boundary in README, NOTICE, COPYRIGHT, and contribution terms

Motivation

The standard library is maintained in the same repository for distribution and update purposes, but it is independent from the compiler implementation. Apache 2.0 allows companies and other downstream users to modify, redistribute, and embed the standard library in their products under a widely used permissive license, while the compiler remains protected by MPL-2.0.

License scope

  • std/: Apache License 2.0
  • compiler and all other repository components: Mozilla Public License 2.0

Validation

  • matched std/LICENSE byte-for-byte with the Apache Software Foundation license text
  • verified all 79 std/**/*.wave files use SPDX-License-Identifier: Apache-2.0
  • verified no MPL or additional use-restriction header remains in standard library source files
  • ./tools/check_std_policy.sh
  • jq empty std/manifest.json
  • cargo fmt --all -- --check
  • cargo test --locked: 22 passed
  • python3 tools/run_tests.py: 96 passed, 12 skipped, 0 failed, 0 timed out

Establish std/ as a separately licensed standard library while retaining MPL-2.0 for the Wave compiler and every repository component outside that directory.

Add the canonical Apache License 2.0 text under std/LICENSE, declare Apache-2.0 in the standard library manifest, and replace the MPL headers in all 79 Wave standard library source files with Apache-2.0 headers. Remove the std-only AI training restriction so the standard library is distributed under the unmodified Apache license terms without an additional use restriction.

Document the license boundary in the root README, std README, NOTICE, COPYRIGHT, and contribution terms so users, redistributors, and future contributors can identify the applicable license from either repository scope.

Validated the license text against the Apache Software Foundation copy, verified every std Wave source carries the Apache-2.0 SPDX identifier, ran the std policy checker, parsed the manifest, passed all 22 Rust tests, and completed the Wave suite with 96 passes, 12 platform skips, and no failures or timeouts.

Signed-off-by: LunaStev <luna@lunastev.org>
@LunaStev
LunaStev marked this pull request as ready for review August 9, 2026 13:17
@LunaStev
LunaStev merged commit ecce726 into wavefnd:master Aug 9, 2026
4 checks passed
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