Why
verify fails on a reachable vulnerability but looks at no licence. A
dependency whose licence does not fit Apache-2.0 can land in a change request
without any reviewer seeing it, and NOTICE lists only the vendored browser
assets, not the Go modules or the fonts’ origin.
Nor can a reviewer see what a change request does to the dependency set: the
verification log shows go build and go test, not “this adds a module”.
Scope
- Check every module in the build list against an allowlist and fail
verifyon an unknown licence, with the tool pinned likegovulncheck. - Keep the allowlist in one file in the repository with a one-line reason per entry, so widening it is a deliberate, reviewed edit.
- Print the module diff on the verification log: modules added, removed, or bumped, each with its licence.
- Check that
NOTICEstill describes the vendored assets that are actually present (the*.LICENSEandOFL-*.txtfiles beside the static files), and fail when one is missing or unlisted. - Document the policy: which licences are accepted, and what a contributor does when they need one that is not.
Acceptance
verifyfails when a module with a licence outside the allowlist is added.- A change request’s verification log names the modules it added or removed.
- Removing a
*.LICENSEfile next to a vendored asset fails a check. - The accepted licences and the policy are in the docs.
Part of #14.