License: copyright holder, SPDX headers, DCO for outside contributions - #17
Merged
Merged
Conversation
Name the copyright holder by legal name (Suruch Chakrapeesirisuk) in the LICENSE appendix and NOTICE; the Apache 2.0 text and the Noto font attribution are unchanged. Every tracked source file now starts with a copyright line and an SPDX-License-Identifier: Apache-2.0 header, added by scripts/license-headers.mjs (the same script as the other repositories in the ecosystem). Applied Supabase migrations are excluded because editing one changes what was applied. A new "License" workflow checks the headers on every push and requires a DCO sign-off on every commit of a pull request from a fork, so the origin of outside contributions is recorded. CONTRIBUTING.md gains the DCO and file-header sections, AGENTS.md the rule and the check command, and both READMEs the holder, SPDX and DCO notes in their License section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wvwwbj3f6bNuw8bF4cUg6M
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
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.
What changed
Copyright 2026 Suruch Chakrapeesirisuk. The Apache 2.0 text is byte-for-byte the same, so GitHub still detects the license as Apache-2.0.Copyrightand "developed by" lines is now the legal name. The GitHub/LinkedIn links and the Noto Sans Thai (OFL) attribution have not changed..ts, 51.tsx, 13.mjs, 1.js(public/sw.js, hand-written), 1.css) now starts with:"use client"directives, which Next allows, and the production build confirms it. Existing header comments stay below the new header.scripts/license-headers.mjs: a new dependency-free script that checks the headers, or adds them with--fix. It is the same script used in the other ecosystem repos. Excludes:node_modules/andmigrations/. The migrations exclude coverssupabase/migrations/*.sql, which are applied Supabase migrations. Editing one changes what a database already ran. No tracked file is generated (next-env.d.tsis gitignored), so nothing else needed excluding..github/workflows/license-check.yml: a "License headers" job that runs on every push and PR. A "DCO sign-off" job checks only pull requests from forks: each commit in them must carry aSigned-off-by:line for its author.--fixadds it, and that CI fails without it.node scripts/license-headers.mjsis added to the command list.Why
This names the copyright holder by legal name and makes the license of every file machine-readable. It also records where outside contributions come from, without asking the owner to sign off their own work.
Gates
npm run verifyis green: lint, check:readme, check:screens, check:deps, 1363 tests, check:mutants 31/32, build, check:bundle, check:a11y 38 checks, check:e2e 12 flows.node scripts/license-headers.mjspasses.The one surviving mutant (
structuralShift.ts<=→<) was already there: it also survives onmainwith the same seed. This PR does not touch it.🤖 Generated with Claude Code
https://claude.ai/code/session_01Wvwwbj3f6bNuw8bF4cUg6M
Generated by Claude Code