Background
PR #16 (chore/guardrails) evaluated adding an insert-license pre-commit hook that enforces an Apache-2.0 header block on every .py file. It was skipped with the following reasoning:
LICENSE at repo root grants Apache-2.0 for the entire tree — the actual legal grant is covered.
- Per-file headers matter only when (a) someone vendors a single file into another codebase, or (b) legal counsel of a corporate contributor requires it, or (c) a JOSS reviewer explicitly asks. None of those apply today.
- Adding headers touches ~50 files with pure visual noise for zero technical value. Beginners will forget the header on new files → CI red → poor first-time experience.
When to act on this
Trigger conditions:
- A JOSS reviewer asks for per-file headers during review.
- A corporate contributor's legal counsel requires per-file attribution.
- Someone forks and vendors a single GeoPulse module into a downstream project (rare for scientific Python).
Estimated cost when we do act
- Add
insert-license pre-commit hook in .pre-commit-config.yaml with the standard 3-line Apache-2.0 header.
- Bulk-add headers to every
src/geopulse/**/*.py file (~1 PR, ~200 files, mechanically generated).
- Document the requirement in CONTRIBUTING.md as a survival-guide entry.
- Total: ~1 hour.
Priority
Low. Do not action unless one of the trigger conditions above is met.
Background
PR #16 (
chore/guardrails) evaluated adding aninsert-licensepre-commit hook that enforces an Apache-2.0 header block on every.pyfile. It was skipped with the following reasoning:LICENSEat repo root grants Apache-2.0 for the entire tree — the actual legal grant is covered.When to act on this
Trigger conditions:
Estimated cost when we do act
insert-licensepre-commit hook in.pre-commit-config.yamlwith the standard 3-line Apache-2.0 header.src/geopulse/**/*.pyfile (~1 PR, ~200 files, mechanically generated).Priority
Low. Do not action unless one of the trigger conditions above is met.