Zum Inhalt springen
DispatchAtlas
Suchen

Lizenz-Header

Jede kommentierbare Quelldatei in DispatchAtlas trägt einen Einzeilen-Header SPDX-License-Identifier: MIT; alles andere ist durch die Annotationsblöcke in REUSE.toml und das Projekt-LICENSE abgedeckt. Diese Seite ist die ratifizierte Richtlinie; die Maschinenprojektion, die das Gate konsumiert, ist tools/license_header.toml, und tools/license_header.py erzwingt sie (check schlägt in Pre-Commit und CI schließend fehl, inject fügt einen fehlenden Header an der korrekten Position idempotent hinzu).

Inline-Header-Formen

DateiklasseHeader-ZeilePosition
.py .toml .yml .yaml .sh .ps1 .cff .editorconfig .gitattributes .gitignore CODEOWNERS# SPDX-License-Identifier: MITErste Zeile; nach dem Shebang, wenn einer vorhanden ist
.ts .tsx .mjs// SPDX-License-Identifier: MITErste Zeile
.js// SPDX-License-Identifier: MIT (die Blockform /* SPDX-License-Identifier: MIT */ wird ebenfalls akzeptiert)Erste Zeile
.css/* SPDX-License-Identifier: MIT */Erste Zeile
.md<!-- SPDX-License-Identifier: MIT -->Erste Zeile, oder erste nicht-leere Zeile nach dem schließenden YAML-Frontmatter-Zaun
.mdx{/* SPDX-License-Identifier: MIT */}Erste nicht-leere Zeile nach dem schließenden Frontmatter-Zaun (HTML-Kommentare sind in MDX-Körpern ungültig)
.xml<!-- SPDX-License-Identifier: MIT -->Erste Zeile, oder direkt nach der <?xml …?>-Deklaration

Pauschal-abgedeckte Klassen

Nicht-kommentierbare, Daten-, Asset-, Lockfile-, und Marker-Klassen tragen keinen Inline-Header; REUSE.toml versichert ihre Lizenz und ihr Copyright zentral: .json .svg .csv .gz .whl .ttf .woff2 .pdf .png .ico .log .hash .map .tsbuildinfo .txt .html .lock .typed und die Pagefind-Index-Klassen, plus die Basenamen LICENSE, CNAME, .nojekyll, py.typed, und .gitkeep.

Generierte-Ausgabe-Bäume

Jede Datei unter einem generierten-Ausgabe-Baum ist maschinell emittierter Beleg oder Build-Ausgabe und wird unabhängig von der Erweiterung pauschal abgedeckt: site/out/ und das dist/ jedes Pakets, plus die lokalen Schichten des Experimente-Arbeitsbereichs. Das Gate fordert oder injiziert dort niemals Inline-Header.

Ausnahmen und Geltungsbereich

Lizenztexte unter LICENSES/ sind die Lizenzen selbst und tragen keinen Header. Abhängigkeits- und Cache-Bäume (.venv/, node_modules/, Byte-Code- und Tool-Caches) sind außerhalb der Richtlinie: sie sind keine DispatchAtlas-Dateien. Eine Dateiklasse, die in diesem Register fehlt, wird vom Gate als nicht registriert gemeldet und besteht die Prüfung nicht — neue Klassen werden hier ratifiziert, bevor sie ausgeliefert werden.

Das Gate ausführen

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

check durchläuft jeden Baum — verfolgt, privat, und generiert — und beendet non-zero bei jedem fehlenden oder nicht registrierten Befund. inject schreibt den kanonischen Header für die Klasse der Datei an der korrekten Position und ändert bei einem zweiten Lauf nichts.