본문으로 건너뛰기
DispatchAtlas
검색

라이선스 헤더

DispatchAtlas 의 모든 주석 가능 소스 파일은 단일-행 SPDX-License-Identifier: MIT 헤더를 담습니다; 나머지 모두는 REUSE.toml 의 주석 블록과 프로젝트 LICENSE 로 커버됩니다. 이 페이지는 비준된 정책입니다; 게이트가 소비하는 기계 투영은 tools/license_header.toml 이며, tools/license_header.py 가 그것을 강제합니다(check 는 pre-commit 과 CI 에서 닫는 쪽으로 실패하고, inject 는 누락 헤더를 올바른 위치에 멱등하게 추가함).

인라인 헤더 형식

파일 클래스헤더 행위치
.py .toml .yml .yaml .sh .ps1 .cff .editorconfig .gitattributes .gitignore CODEOWNERS# SPDX-License-Identifier: MIT첫 행; shebang 이 있을 때 그 뒤
.ts .tsx .mjs// SPDX-License-Identifier: MIT첫 행
.js// SPDX-License-Identifier: MIT(블록 형식 /* SPDX-License-Identifier: MIT */ 도 허용)첫 행
.css/* SPDX-License-Identifier: MIT */첫 행
.md<!-- SPDX-License-Identifier: MIT -->첫 행, 또는 닫는 YAML frontmatter 펜스 뒤의 첫 비공백 행
.mdx{/* SPDX-License-Identifier: MIT */}닫는 frontmatter 펜스 뒤의 첫 비공백 행(HTML 주석은 MDX 본문에서 무효)
.xml<!-- SPDX-License-Identifier: MIT -->첫 행, 또는 <?xml …?> 선언 바로 뒤

일괄-커버되는 클래스

주석 불가, 데이터, 자산, lockfile, 마커 클래스는 인라인 헤더를 담지 않습니다; REUSE.toml 이 그것들의 라이선스와 저작권을 중앙에서 주장합니다: .json .svg .csv .gz .whl .ttf .woff2 .pdf .png .ico .log .hash .map .tsbuildinfo .txt .html .lock .typed 그리고 pagefind 인덱스 클래스, 더하여 베이스네임 LICENSE, CNAME, .nojekyll, py.typed, .gitkeep.

생성-출력 트리

생성-출력 트리 아래의 모든 파일은 기계-발행 증거나 빌드 출력이며 확장자와 무관하게 일괄-커버됩니다: site/out/ 와 각 패키지의 dist/, 더하여 실험 작업공간의 로컬 계층. 게이트는 거기서 인라인 헤더를 요구하지도 주입하지도 않습니다.

면제와 범위

LICENSES/ 아래의 라이선스 텍스트는 라이선스 자체이며 헤더를 담지 않습니다. 의존성과 캐시 트리(.venv/, node_modules/, 바이트코드 및 도구 캐시)는 정책 밖입니다: 그것들은 DispatchAtlas 파일이 아닙니다. 이 등록부에 없는 파일 클래스는 게이트가 미등록으로 보고하고 검사를 실패시킵니다 — 새 클래스는 출하 전에 여기서 비준됩니다.

게이트 실행

uv run python tools/license_header.py check
uv run python tools/license_header.py inject

check 는 모든 트리 — 추적, 비공개, 생성 — 를 순회하고 누락 또는 미등록 발견 시 비-영으로 종료합니다. inject 는 파일 클래스의 정전적 헤더를 올바른 위치에 쓰고 두 번째 실행에서는 아무것도 변경하지 않습니다.