Nuovi doc: tutorial-primo-giro, risoluzione-problemi, sviluppo, rilascio, glossario e registro delle decisioni (docs/decisioni, 6 ADR). docs/README.md e' l'indice per categoria e la tabella delle fonti uniche; il README di root rimanda a sviluppo/rilascio invece di duplicarli. scripts/CheckDocs.cs verifica link e ancore, <Version> contro CHANGELOG, copertura di architettura.md e presenza di ogni doc nell'indice; .markdownlint-cli2.jsonc configura il lint Markdown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2.4 KiB
Guida per chi sviluppa
Come lavorare sul codice e sui doc. Per capire com'è fatto il programma parti da
architettura.md; per rilasciare vedi rilascio.md.
Requisiti
- Windows e .NET 10 SDK.
- Accesso alla share
X:\solo per indicizzare davvero; i test non ne hanno bisogno. - Node.js (per
npx markdownlint-cli2, solo per i doc).
Build e avvio
cd PrepStep
dotnet build -c Release
dotnet run -c Release
In sviluppo cad_index.db si cerca nella cartella di build, non nella radice del repo: vedi
db-cad-index.md.
Test
cd PrepStep.Tests
dotnet test
I test xUnit chiamano gli internal del progetto principale grazie a InternalsVisibleTo. I
.asm dei test si costruiscono byte per byte con piccoli helper invece di versionare file
binari: ogni caso strano trovato sulla share diventa un test minimale. Elenco dei file di test in
architettura.md.
Script standalone
Si lanciano dalla root del repo, mai da dentro PrepStep/ (che è un WinExe: dotnet run
avvierebbe la GUI e resterebbe bloccato). Elenco in
architettura.md.
dotnet run scripts/Query.cs -- cad_index.db "SELECT COUNT(*) FROM files"
Documentazione come codice
I doc stanno in git, si modificano nello stesso commit del codice e si verificano a mano:
dotnet run scripts/CheckDocs.cs # link, ancore, versione/CHANGELOG, copertura dei doc
npx markdownlint-cli2 # stile Markdown (.markdownlint-cli2.jsonc)
Regole di scrittura:
- Una sola fonte per ogni informazione, altrove un link (tabella in
README.md). - Ogni doc ha un solo scopo (Diátaxis): non mescolare istruzioni, riferimento e motivazioni.
- Un cambiamento strutturale (fasi, formato
.asm, schema DB, criterio di scelta di un file) aggiorna i doc e il CHANGELOG nello stesso commit. - Se la modifica nasce da un fallimento reale di Creo scrivi il sintomo: i messaggi di Creo
non nominano il file né la causa (esempio: §7.3-7.5 di
formato-asm-record.md). - Una scelta con alternative reali non banali merita una voce in
decisioni/. - Un nuovo
.csva descritto inarchitettura.mde un nuovo doc elencato indocs/README.md:CheckDocs.cslo verifica.