Skip to content

chore: strip per-file license headers; LICENSE is single source of truth#260

Merged
ChrisonSimtian merged 1 commit into
mainfrom
chore/strip-license-headers
May 28, 2026
Merged

chore: strip per-file license headers; LICENSE is single source of truth#260
ChrisonSimtian merged 1 commit into
mainfrom
chore/strip-license-headers

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

Why

Per-file license headers duplicate a 4-line block across 614 source files. MIT compliance only requires the notice in distributed copies of the software — LICENSE at the repo root and README.md both already preserve matkoch's attribution, and every NuGet package declares MIT via PackageLicenseExpression in Directory.Build.props. So the per-file blocks are pure overhead.

The concrete trigger: the header URL https://github.com/ChrisonSimtian/Fallout/blob/main/LICENSE would have rotted across hundreds of files the moment the repo transfers to the Fallout-build org (#11). Better to consolidate once than to mass-edit a stale URL later.

One source of truth, cleaner source files, things live where they belong instead of being duplicated 614 times. #housekeeping

What

  • Removed the 4-line // Copyright … Maintainers of Fallout. // Originally based on NUKE … block from 614 first-party .cs files under src/, tests/, build/, and the repo root.
  • Preserved third-party headers: files under src/Persistence/Fallout.Persistence.Solution/ (inlined Microsoft vs-solutionpersistence) keep their // Copyright (c) Microsoft Corporation. headers — MIT requires it.
  • Preserved auto-gen headers: *.Generated.cs tool wrappers and .verified.cs snapshot fixtures keep their existing auto-gen comments.
  • Updated convention docs: AGENTS.md (rule chore(deps): patch vulnerable transitives (CVE-2026-33116, Scriban) #4 replaced with explicit no-headers rule), docs/agents/conventions.md, docs/architecture.md, CONTRIBUTING.md.
  • Added CHANGELOG.md entry under [Unreleased] — 11.0### Misc.

Legal check

  • LICENSE preserves Copyright 2017-2025 Maintainers of NUKE (matkoch's attribution) alongside Copyright 2026 Maintainers of Fallout.
  • README.md lines 34-38 explicitly credit Matthias Koch and the NUKE origin.
  • Every NuGet package carries <PackageLicenseExpression>MIT</PackageLicenseExpression> + <Copyright>Copyright … Maintainers of Fallout</Copyright> via Directory.Build.props.
  • Vendored MIT code retains its own copyright headers (untouched in this PR).

Verification

  • git grep "Maintainers of Fallout" -- '*.cs' → 0 hits (was 614).
  • git grep "Copyright (c) Microsoft Corporation" -- '*.cs' → unchanged (Persistence files preserved).
  • ./build.sh Compile passes (verified on a parallel worktree carrying the same strip).
  • BOM and CRLF/LF line endings preserved per-file by the strip script.

Test plan

  • No first-party .cs file still contains "Maintainers of Fallout"
  • All Microsoft-copyright files under Fallout.Persistence.Solution/ unchanged
  • .Generated.cs and .verified.cs files unchanged
  • Compilation clean (0 errors)
  • CI green on this PR (pending)

🤖 Generated with Claude Code

Removes the 4-line `// Copyright ... Maintainers of Fallout. // Originally
based on NUKE ...` block from 614 first-party .cs files under src/, tests/,
build/, and the repo root.

MIT compliance is already satisfied at the top level:
- LICENSE preserves "Maintainers of NUKE 2017-2025" (matkoch's attribution)
  alongside "Maintainers of Fallout 2026".
- README acknowledges the NUKE origin and links upstream.
- Every NuGet package declares MIT via PackageLicenseExpression in
  Directory.Build.props.

Vendored third-party code keeps its own copyright headers untouched - files
under src/Persistence/Fallout.Persistence.Solution/ retain Microsoft's MIT
notice as required, and the .Generated.cs tool wrappers + Verify snapshots
keep their auto-generated headers.

Rationale:
- One source of truth is easier to maintain than 614 copies.
- The header URL "github.com/ChrisonSimtian/Fallout/blob/main/LICENSE" would
  have rotted across hundreds of files the moment the repo transfers to the
  Fallout-build org (#11).
- Cleaner source files; things live where they belong.
- Housekeeping aligned with the rebrand cleanup.

Convention docs updated to match:
- AGENTS.md rule #4 replaced with explicit no-headers rule
- docs/agents/conventions.md license-header bullet rewritten
- docs/architecture.md mandate replaced with "no per-file headers"
- CONTRIBUTING.md "license headers are mechanical" aside dropped

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ChrisonSimtian ChrisonSimtian merged commit e052f28 into main May 28, 2026
2 checks passed
@ChrisonSimtian ChrisonSimtian deleted the chore/strip-license-headers branch May 28, 2026 08:01
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