Skip to content

Contribuire

Validazione

Esegui la superficie standard di validazione prima di committare:

uv run python scripts/validate_repo.py

scripts/validate_repo.py è l'entrypoint autorevole di validazione. Instrada gli strumenti tramite scripts/run_repo_tool.py, in modo che cache e stato temporaneo restino fuori dal checkout.

La validazione include un guard privacy sul contenuto che Git vede come tracciato o nuovo non ignorato. Il guard blocca dati locali e path host-locali che finirebbero nel commit; non sostituisce la revisione manuale di testi clinici, log e screenshot.

Inizializzazione

Un clone nuovo deve essere inizializzato con lo script di bootstrap del repository:

python3 scripts/bootstrap_dev_environment.py

Alias Git

Il repository installa alias Git locali per le attività comuni del progetto. Usa git config --local --get-regexp '^alias\.' per ispezionare l'insieme corrente.

Disciplina di Rilascio

Prima di inviare modifiche su main o un tag di rilascio, esegui:

git release-audit

La push diretta su main e' bloccata dall'hook pre-push. Dopo il commit e l'audit, usa il solo percorso controllato:

git rel

git rel aggiorna il ramo, ripete l'audit (incluso il controllo privacy dei contenuti candidati) e invia main. Il workflow GitHub Release calcola poi la versione da feat/fix e dalle modifiche incompatibili, aggiorna il changelog e crea tag e release. Quando il workflow è verde, eseguire git pull --ff-only && uv sync && uv run sanikey -V per usare localmente la versione taggata. git release-check controlla invece hook, alias e configurazione del rilascio.

Il contratto conservativo di rilascio è documentato in docs/release/checklist.md e docs/release/process.md.

Formato dei Commit

Il repository usa un hook locale commit-msg che impone:

type(scope): summary

I tipi consentiti sono feat, fix, docs, perf, refactor, test, chore e style. Gli scope sono limitati da .githooks/commit-msg.py.