Lewati ke konten
DispatchAtlas
Cari

Header lisensi

Setiap berkas sumber yang dapat-dikomentari di DispatchAtlas membawa satu header satu-baris SPDX-License-Identifier: MIT; segala yang lain tercakup oleh blok anotasi di REUSE.toml dan LICENSE proyek. Halaman ini adalah kebijakan yang diratifikasi; proyeksi mesin yang dikonsumsi gate adalah tools/license_header.toml, dan tools/license_header.py menegakkannya (check gagal-menutup di pre-commit dan CI, inject menambahkan header yang hilang pada posisi yang benar secara idempoten).

Bentuk header inline

Kelas berkasBaris headerPosisi
.py .toml .yml .yaml .sh .ps1 .cff .editorconfig .gitattributes .gitignore CODEOWNERS# SPDX-License-Identifier: MITBaris pertama; setelah shebang bila ada
.ts .tsx .mjs// SPDX-License-Identifier: MITBaris pertama
.js// SPDX-License-Identifier: MIT (bentuk blok /* SPDX-License-Identifier: MIT */ juga diterima)Baris pertama
.css/* SPDX-License-Identifier: MIT */Baris pertama
.md<!-- SPDX-License-Identifier: MIT -->Baris pertama, atau baris non-kosong pertama setelah pagar frontmatter YAML penutup
.mdx{/* SPDX-License-Identifier: MIT */}Baris non-kosong pertama setelah pagar frontmatter penutup (komentar HTML tidak valid dalam tubuh MDX)
.xml<!-- SPDX-License-Identifier: MIT -->Baris pertama, atau langsung setelah deklarasi <?xml …?>

Kelas tercakup-menyeluruh

Kelas yang tidak-dapat-dikomentari, data, aset, lockfile, dan penanda tidak membawa header inline; REUSE.toml menegaskan lisensi dan hak ciptanya secara terpusat: .json .svg .csv .gz .whl .ttf .woff2 .pdf .png .ico .log .hash .map .tsbuildinfo .txt .html .lock .typed dan kelas indeks pagefind, ditambah basename LICENSE, CNAME, .nojekyll, py.typed, dan .gitkeep.

Pohon keluaran-yang-dihasilkan

Setiap berkas di bawah pohon keluaran-yang-dihasilkan adalah bukti yang dipancarkan-mesin atau keluaran build dan tercakup-menyeluruh terlepas dari ekstensi: site/out/ dan dist/ setiap paket, ditambah lapisan lokal ruang kerja eksperimen. Gate tidak pernah mensyaratkan atau menyuntikkan header inline di sana.

Pengecualian dan cakupan

Teks lisensi di bawah LICENSES/ adalah lisensi itu sendiri dan tidak membawa header. Pohon dependensi dan cache (.venv/, node_modules/, cache byte-code dan alat) berada di luar kebijakan: mereka bukan berkas DispatchAtlas. Kelas berkas yang tidak ada dari registri ini dilaporkan oleh gate sebagai tak-terdaftar dan menggagalkan pemeriksaan — kelas baru diratifikasi di sini sebelum dikapalkan.

Menjalankan gate

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

check menelusuri setiap pohon — terlacak, privat, dan dihasilkan — dan keluar non-nol pada temuan yang hilang atau tak-terdaftar apa pun. inject menulis header kanonik untuk kelas berkas pada posisi yang benar dan tidak mengubah apa pun pada eksekusi kedua.