66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# Guida per chi sviluppa
|
|||
|
|
|
||
|
|
Come lavorare sul codice e sui doc. Per capire com'è fatto il programma parti da
|
||
|
|
[`architettura.md`](architettura.md); per rilasciare vedi [`rilascio.md`](rilascio.md).
|
||
|
|
|
||
|
|
## Requisiti
|
||
|
|
|
||
|
|
- Windows e [.NET 10 SDK](https://dotnet.microsoft.com/download).
|
||
|
|
- 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
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
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`](db-cad-index.md#come-lapp-trova-il-db-allavvio).
|
||
|
|
|
||
|
|
## Test
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
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`](architettura.md#test).
|
||
|
|
|
||
|
|
## 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`](architettura.md#script-standalone-scripts).
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
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:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
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`](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`](formato-asm-record.md)).
|
||
|
|
- Una scelta con alternative reali non banali merita una voce in
|
||
|
|
[`decisioni/`](decisioni/README.md).
|
||
|
|
- Un nuovo `.cs` va descritto in `architettura.md` e un nuovo doc elencato in `docs/README.md`:
|
||
|
|
`CheckDocs.cs` lo verifica.
|