Proper Licensing - #25
Merged
Merged
Conversation
The root LICENCE becomes the canonical Apache License 2.0 text (byte-identical to https://www.apache.org/licenses/LICENSE-2.0.txt). The vendored Fortran keeps its BSD 3-Clause licence in fortran/LICENCE, untouched, which together with the per-file Crown Copyright headers satisfies BSD clause 1 for source redistribution. Acceptance: root LICENCE asserts as Apache 2.0, fortran/LICENCE asserts as BSD-3 with Crown Copyright, both in tests/test_licensing.py. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Wheels contain only the JAX port, not fortran/, so BSD-3 clause 2 (reproduce the notice, conditions and disclaimer with binary distributions) is satisfied by a NOTICE file that embeds fortran/LICENCE byte-for-byte alongside the no-endorsement disclaimer. Apache 2.0 section 4(d) then propagates it to downstream derivatives. Acceptance: test_notice_carries_bsd_attribution_verbatim asserts the embedded text matches fortran/LICENCE exactly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… claim New code is Apache 2.0; vendored fortran/ stays BSD-3; fortran/src/box/ and validation overlays stay BSD-3 deliberately so they remain upstreamable to glomap-box. Removes the 'reimplementation, not a translation' characterisation: the port is written from the Fortran source by rule, so it is treated as a derivative work. Nothing depends on the stronger claim, and the compliance posture (retain notices everywhere) is identical either way. Acceptance: test_copyright_file_separates_vendored_from_new_code now asserts both licence names alongside both owners. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
README, docs/index.md: Apache 2.0 for the port, BSD-3 for fortran/. PROVENANCE.md: the BSD text now lives at fortran/LICENCE, not the root. pyproject: PEP 639 licence expression plus license-files, so every wheel and sdist ships LICENCE, NOTICE and fortran/LICENCE (verified: all three land in dist-info/licenses/ of a locally built wheel, and METADATA carries License-Expression: Apache-2.0). hatchling pinned >=1.27 for PEP 639 support. Acceptance: test_pyproject_ships_both_licences_in_distributions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The f2py shims and overlay patches say 'BSD 3-Clause (see LICENCE)', a pointer that resolved to the BSD text until the root LICENCE became Apache 2.0. Repointed to fortran/LICENCE (verified all patches still apply cleanly to a staged fortran/ copy). COPYRIGHT.md now carves the validation Fortran out of the Apache section explicitly. fortran/src/box/ headers are untouched: their 'see LICENCE' resolves within fortran/, and the tree stays byte-comparable with glomap-box. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Thanks @johnorcutt ! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes sure that we are properly attributing and licensing the fortran source code.