mirror of
https://github.com/horizon-rust/horizon.git
synced 2026-11-07 11:06:11 -10:00
CONTRIBUTING: another project's code only when its license allows it
Ludovic, 2026-10-30, after arismoko's proposal in #contributors: reading and using another project's source is now allowed, but only under MIT, MIT-0, BSD-2/3-Clause, 0BSD, ISC, zlib, Apache-2.0, Unlicense or CC0. Everything else (GPL, LGPL like Iris, MPL, Polyform like Sodium, custom, closed, unlicensed) stays off limits, even to read. The contributor checks the license at the commit and per file, names the project, commit and license in the PR, keeps the notices and adds a THIRD_PARTY_NOTICES.md entry. The PR template gets an "Other projects' code" section. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
594b50b510
commit
234d5e1cd6
3 files changed
+29
-8
No files matched your search
@@ -21,6 +21,11 @@
|
||||
<!-- The vanilla classes and methods this follows (tools/rea_vanilla.py), and the harness that checks it.
|
||||
"Horizon-only" for a feature vanilla doesn't have; "none" for tooling or docs. -->
|
||||
|
||||
## Other projects' code
|
||||
|
||||
<!-- "none", or for each project you read or copied from: its link at the commit, its license (only MIT, BSD,
|
||||
Apache-2.0, ISC, zlib, 0BSD, MIT-0, Unlicense or CC0), and what you took. CONTRIBUTING.md "Only original code". -->
|
||||
|
||||
## Self-check
|
||||
|
||||
<!-- Paste the block `python3 tools/pr_ready.py` prints (`--base upstream/main` from a fork). -->
|
||||
|
||||
+23
-7
@@ -47,14 +47,30 @@ them (`git config core.hooksPath .githooks` runs it before every commit).
|
||||
The pre-push hook checks the full history reachable from the branches and tags being pushed. Run
|
||||
`python3 tools/check_public_tree.py --history` to audit the history of all local refs.
|
||||
|
||||
## Only original code
|
||||
## Only original code, or code whose license allows it
|
||||
|
||||
Horizon's code is written from Minecraft 26.3 itself and from public documentation, never from another mod, loader
|
||||
or renderer. Don't read, copy, translate or paraphrase the source of Iris, OptiFine, Sodium or any other project,
|
||||
and don't send code an AI tool wrote from it. Their user documentation and file formats are fine to read, and their
|
||||
packs and mods are fine to run and observe. Shader packs were removed on 24 October 2026 (#1561) because their code
|
||||
had been written from another project's source; they come back only as a clean-room rewrite from a written
|
||||
description of the pack format.
|
||||
Horizon is MIT. Its code is written from Minecraft 26.3 itself and from public documentation. Since 30 October 2026
|
||||
another project's source may also be read and used, **only when that project's license allows it**:
|
||||
|
||||
- **Allowed:** MIT, MIT-0, BSD-2-Clause, BSD-3-Clause, 0BSD, ISC, zlib, Apache-2.0, Unlicense, CC0-1.0. That code
|
||||
may be read, copied or adapted.
|
||||
- **Everything else is off limits, even to read:** GPL, LGPL (Iris), AGPL, MPL, EPL, Polyform (Sodium), Creative
|
||||
Commons licenses, custom or "source available" licenses, all rights reserved (OptiFine), and any project with no
|
||||
license or an unclear one. Don't read, copy, translate or paraphrase their source, and don't send code an AI tool
|
||||
wrote from it. Being able to download a mod or a pack does not give you the right to read its files.
|
||||
- **Check the license yourself.** Read the LICENSE file at the commit you use and the header of each file you take:
|
||||
some repositories mix licenses, and a file under another license is off limits. A license that changed: the one
|
||||
at your commit counts. In doubt, don't: ask in #contributors first.
|
||||
- **Say it in the pull request:** the project, a link to the commit, its license, and what you read or copied. A
|
||||
pull request that used another project's source without saying so is closed.
|
||||
- **Copied or adapted code** keeps its copyright line and license notice at the top of the file, and gets an entry
|
||||
in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). Apache-2.0 code also keeps its NOTICE text and says what
|
||||
was changed.
|
||||
|
||||
User documentation and file formats are fine to read, and packs and mods are fine to run and observe, whatever
|
||||
their license. Shader packs were removed on 24 October 2026 (#1561) because their code had been written from
|
||||
another project's source; they come back only as a clean-room rewrite from a written description of the pack
|
||||
format.
|
||||
|
||||
## Before asking for review
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ Not every line is read by a person. Instead, every change is checked against the
|
||||
## What it doesn't contain
|
||||
|
||||
- **No Minecraft files.** Horizon contains no Minecraft code, assets or data, and never downloads them. The launcher builds the game files on your computer from your own copy of Minecraft: Java Edition 26.3. A check that runs on every pull request (`tools/check_public_tree.py`) keeps game files and decompiled code out of the repository and its history.
|
||||
- **No code from other mods.** Since 24 October 2026, Horizon's code may only be written from Minecraft 26.3 itself and public documentation, never from another mod, loader or renderer ([the rule](../CONTRIBUTING.md#only-original-code)). That day shader packs were removed ([#1561](https://github.com/horizon-rust/horizon/pull/1561)), after a developer of Iris showed that our shader pack code had been written from Iris's source. They are being written again from a description of the pack format only.
|
||||
- **Other projects' code only when their license allows it.** Since 24 October 2026, Horizon's code is written from Minecraft 26.3 itself and public documentation. Since 30 October 2026 it may also use another project's source, but only under one of the licenses listed there (MIT, BSD, Apache-2.0, ISC, zlib, 0BSD, MIT-0, Unlicense, CC0), credited in the pull request and in THIRD_PARTY_NOTICES.md; GPL, LGPL, MPL, unlicensed and closed projects stay off limits, even to read ([the rule](../CONTRIBUTING.md#only-original-code-or-code-whose-license-allows-it)). On 24 October shader packs were removed ([#1561](https://github.com/horizon-rust/horizon/pull/1561)), after a developer of Iris showed that our shader pack code had been written from Iris's source. They are being written again from a description of the pack format only.
|
||||
|
||||
## Check it yourself
|
||||
|
||||
|
||||
Reference in new issue
Block a user