Passa al contenuto principale

Sentinel Compliance: Apache-2.0 + REUSE 3.3

"Ogni file in Zenzic porta la firma crittografica della sua licenza. Non esistono angoli bui."


1. La Licenza

Zenzic è rilasciato sotto la Apache License 2.0. Questa non è una scelta di policy — è un impegno ingegneristico. Apache-2.0 garantisce:

PermessoDettagli
✅ Uso commercialeNessuna restrizione
✅ ModificaFork, patch, estensione
✅ DistribuzioneRidistribuzione sotto la stessa licenza
✅ Concessione brevettiLicenza brevetto esplicita da tutti i contributori

Condizioni: Preservare i file LICENSE e NOTICE nelle distribuzioni.

Testo completo: File LICENSE alla radice di ogni repository Zenzic.


2. La Firma della Licenza — SPDX + REUSE 3.3

Ogni file sorgente in Zenzic porta un header SPDX — una dichiarazione leggibile dalla macchina di autorialità e licenza:

# SPDX-FileCopyrightText: 2026 PythonWoods <[email protected]>
# SPDX-License-Identifier: Apache-2.0

Questo non è un commento. È una firma di licenza — analizzabile da qualsiasi strumento conforme a REUSE 3.3, incluso reuse lint.

I file senza header individuale sono coperti da dichiarazioni bulk in REUSE.toml:

REUSE.toml
[[annotations]]
path = ["docs/**", "i18n/**", "*.md"]
SPDX-FileCopyrightText = "2026 PythonWoods <[email protected]>"
SPDX-License-Identifier = "Apache-2.0"

Strategia di copertura:

ComponenteMetodo
File sorgente PythonHeader SPDX per file
Script shellHeader SPDX per file
Configurazioni (TOML, YAML)Header per file o REUSE.toml
Documentazione (.mdx, .md)Dichiarazione bulk REUSE.toml
File auto-generatiCopertura REUSE.toml
Asset binari (SVG, PNG)Dichiarazione bulk REUSE.toml

3. L'Unico Gate della Verità

uv run reuse lint

Questo è il solo comando di verifica della conformità autorizzato. Esso:

  1. Analizza ogni header SPDX in ogni file.
  2. Valida tutte le dichiarazioni bulk in REUSE.toml.
  3. Riporta qualsiasi file senza copertura come fallimento di conformità.
  4. Restituisce exit 0 solo quando il 100% dei file ha una licenza dichiarata.

Output atteso:

Congratulations! Your project is compliant with version 3.3 of the REUSE Specification.

Questo gate viene eseguito in:

  • L'hook pre-commit Sentinel Guard (hook 8 di 8)
  • just preflight — il mirror completo della CI locale

Qualsiasi PR che fallisce uv run reuse lint non viene integrata.


Zenzic usa il modello di copyright multi-autore. Non è richiesto alcun Contributor License Agreement (CLA).

ScenarioAzione
Nuovo file (qualsiasi contributore)Aggiungi la tua riga di copyright SPDX
Modifica piccola (< 10 righe)Mantieni gli header esistenti invariati
Contribuzione sostanzialeAggiungi la tua riga di copyright sotto quelle esistenti

Esempio di file multi-autore:

# SPDX-FileCopyrightText: 2026 PythonWoods <[email protected]>
# SPDX-FileCopyrightText: 2026 Nome Contributore <[email protected]>
# SPDX-License-Identifier: Apache-2.0

Mantieni il copyright del tuo contributo. La licenza Apache-2.0 — inclusa la concessione di brevetti — si applica automaticamente all'atto della sottomissione.


5. Policy Dipendenze di Terze Parti

Zenzic può dipendere solo da librerie con licenze compatibili con Apache-2.0:

LicenzaCompatibileNote
MITPermissiva
BSD 2/3-ClausePermissiva
Apache-2.0Identica
LGPL-3.0Solo uso come libreria
ISCEquivalente a MIT
GPL-2.0 / GPL-3.0Contaminazione copyleft
ProprietariaNon open-source

Quando si aggiunge una dipendenza: verificare la compatibilità, aggiungere al file NOTICE, eseguire uv run reuse lint.


6. Disclaimer Legale

Questo documento fornisce orientamenti operativi, non consulenza legale. Per domande sulla conformità Apache-2.0, concessioni di brevetti o diritti di contribuzione, consultare un professionista legale qualificato.

Riferimenti:

Saga VI: The Governance of Quartz — leggi la cronaca