Skip to content

Add NOTICE identifying the copyright holder#4

Merged
kikashy merged 1 commit into
mainfrom
feat/attribution-notice
Jul 23, 2026
Merged

Add NOTICE identifying the copyright holder#4
kikashy merged 1 commit into
mainfrom
feat/attribution-notice

Conversation

@kikashy

@kikashy kikashy commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

What

The repository ships canonical Apache-2.0 at LICENSE but names no copyright owner anywhere, and has no NOTICE. This adds one.

  • NOTICE (new) — names Brian Jin, sole author of the repository to date.
  • tools/build_release.pyNOTICE added to BUNDLE_PATHS so it ships in the release archives.
  • CHANGELOG.mdUnreleased entry.

Why the LICENSE file is untouched

LICENSE is byte-identical to the canonical Apache-2.0 text (sha256 cfc7749b…, 11358 bytes) and stays that way. Its appendix line Copyright [yyyy] [name of copyright owner] is a template telling you how to mark your own files — not a field to fill in. Editing it costs a clean Apache-2.0 match on licensee/SPDX/FOSSA scanners, which is a real adoption cost for a specification. The copyright holder belongs in NOTICE.

Why a personal name rather than a collective one

The Judgment Pack Authors would point at nothing: there is no AUTHORS file, no CONTRIBUTORS file, and no CLA, so the term is undefined. git shortlog shows one human across the repository's history. A copyright notice is a factual assertion, and this one is accurate and verifiable. It also names someone who can actually act — a collective label is not a legal person and cannot sign or grant anything.

Contributors are unaffected: the DCO in CONTRIBUTING.md is a certification of origin, not an assignment. Every contributor retains copyright in their own work and licenses it under Apache-2.0. When a second human contributor lands, that is the moment to add an AUTHORS file and switch to a collective form.

Note on the runtime

judgment-pack-runtime embeds 51 files from this repository into every shipped binary (//go:embed jps) with no attribution. Apache-2.0 §4(d) binds only "If the Work includes a NOTICE file" — so merging this PR is what creates that obligation. The corresponding runtime change (its own NOTICE plus a specification entry in THIRD_PARTY_NOTICES) is prepared and must land before the runtime's next release.

Verification

  • python -m unittest discover -s tests — 26 pass
  • Release bundle built from the staged tree contains NOTICE alongside LICENSE
  • Archiving NOTICE from main exits 128, confirming git archive + check=True makes the release build hard-fail if NOTICE is ever removed rather than silently omitting it

🤖 Generated with Claude Code

The repository shipped canonical Apache-2.0 at LICENSE but named no owner
anywhere. The appendix line "Copyright [yyyy] [name of copyright owner]" is a
template for marking your own files, not a field to fill in, so the repository
asserted no copyright at all.

Add a NOTICE naming Brian Jin, sole author of the repository to date, and add
it to BUNDLE_PATHS so it ships in the release archives.

LICENSE is deliberately left byte-identical to the canonical Apache-2.0 text.
Editing its appendix costs a clean Apache-2.0 match on automated license
scanners, and the copyright holder belongs in NOTICE instead.

Because git archive fails on a pathspec that matches nothing and
build_release.py runs it with check=True, the release build now hard-fails if
NOTICE is ever removed rather than silently omitting it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: kikashy <kikashy@hotmail.com>
@kikashy
kikashy force-pushed the feat/attribution-notice branch from d0a9c0a to 55d667a Compare July 23, 2026 21:52
@kikashy
kikashy merged commit 4609d83 into main Jul 23, 2026
4 checks passed
@kikashy
kikashy deleted the feat/attribution-notice branch July 23, 2026 22:11
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