Aggiungi docs-as-code: indice Diátaxis, nuovi doc e controllo automatico
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>
This commit is contained in:
1 parent
5fac2edf52
commit
ccfa00ff52
19 files changed
+557
-86
No files matched your search
@@ -40,7 +40,8 @@ passaggio, non lo sostituisce.
|
||||
manuale, fuori da quest'app): scrive in `step/`, dentro la cartella di
|
||||
lavoro.
|
||||
|
||||
Guida utente passo-passo completa in [`docs/guida-utente.md`](docs/guida-utente.md)
|
||||
Primo uso: [`docs/tutorial-primo-giro.md`](docs/tutorial-primo-giro.md). Guida utente completa in
|
||||
[`docs/guida-utente.md`](docs/guida-utente.md)
|
||||
(stessa sintesi anche in-app da **Aiuto → Guida**, F1).
|
||||
|
||||
## Requisiti
|
||||
@@ -50,83 +51,20 @@ Guida utente passo-passo completa in [`docs/guida-utente.md`](docs/guida-utente.
|
||||
- Accesso alla share di rete con i file CAD (`X:\` di default) per
|
||||
l'indicizzazione
|
||||
|
||||
## Build
|
||||
## Build, test e rilascio
|
||||
|
||||
```powershell
|
||||
cd PrepStep
|
||||
dotnet build -c Release
|
||||
```
|
||||
Build, avvio e test: [`docs/sviluppo.md`](docs/sviluppo.md). Pubblicazione dell'eseguibile e
|
||||
generazione del setup di installazione: [`docs/rilascio.md`](docs/rilascio.md).
|
||||
|
||||
## Avvio
|
||||
|
||||
Da sorgente:
|
||||
|
||||
```powershell
|
||||
cd PrepStep
|
||||
dotnet run -c Release
|
||||
```
|
||||
|
||||
Oppure l'eseguibile già compilato:
|
||||
|
||||
```powershell
|
||||
cd PrepStep\bin\Release\net10.0-windows
|
||||
.\PrepStep.exe
|
||||
```
|
||||
|
||||
## Pubblicazione (eseguibile standalone)
|
||||
|
||||
Genera un `.exe` self-contained per Windows x64, senza bisogno del runtime
|
||||
.NET installato sulla macchina di destinazione:
|
||||
|
||||
```powershell
|
||||
cd PrepStep
|
||||
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o publish
|
||||
```
|
||||
|
||||
L'eseguibile risultante è in `PrepStep\publish\PrepStep.exe` — un unico
|
||||
file, si copia e si lancia su un'altra macchina Windows senza bisogno di .NET
|
||||
installato.
|
||||
|
||||
## Setup di installazione
|
||||
|
||||
Per distribuire l'app agli utenti si genera un setup con
|
||||
[Inno Setup 6](https://jrsoftware.org/isinfo.php).
|
||||
|
||||
Una volta sola, per installare Inno Setup (per l'utente corrente, senza admin):
|
||||
|
||||
```powershell
|
||||
winget install --id JRSoftware.InnoSetup -e --scope user
|
||||
```
|
||||
|
||||
A ogni release, dalla root del repo:
|
||||
|
||||
```powershell
|
||||
# 1. aggiorna <Version> in PrepStep\PrepStep.csproj e la voce in CHANGELOG.md
|
||||
# 2. chiudi l'app se è aperta (l'exe in uso blocca la build)
|
||||
dotnet publish PrepStep -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o PrepStep\publish
|
||||
& "$env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe" installer\PrepStep.iss
|
||||
```
|
||||
|
||||
Produce `installer\Output\PrepStep-Setup-<versione>.exe` (versione letta dall'exe, cioè
|
||||
`<Version>` del csproj): è l'unico file da distribuire. Per provarlo sul proprio PC basta
|
||||
lanciarlo (`.\installer\Output\PrepStep-Setup-<versione>.exe`). Il setup:
|
||||
|
||||
- installa **solo per l'utente corrente**, in `%LOCALAPPDATA%\Programs\PrepStep`, senza
|
||||
chiedere i diritti di amministratore;
|
||||
- crea nel menu Start i collegamenti al programma e al disinstallatore (quello sul desktop
|
||||
è facoltativo);
|
||||
- compare in "Impostazioni → App installate", da cui si disinstalla.
|
||||
|
||||
Se l'app è già installata, il setup chiede prima cosa fare: **Sì** aggiorna/reinstalla (DB e
|
||||
impostazioni restano), **No** disinstalla, **Annulla** esce. Installazione silenziosa (aggiorna
|
||||
senza chiedere) — es. per distribuirla da script:
|
||||
`PrepStep-Setup-<versione>.exe /VERYSILENT /SUPPRESSMSGBOXES`.
|
||||
Il setup installa **solo per l'utente corrente**, in `%LOCALAPPDATA%\Programs\PrepStep`, senza
|
||||
diritti di amministratore; si disinstalla da "Impostazioni → App installate".
|
||||
|
||||
## Struttura del progetto
|
||||
|
||||
Il codice dell'app è tutto in `PrepStep/` (GUI e indicizzazione integrate); accanto ci sono
|
||||
il progetto di test `PrepStep.Tests/`, gli script standalone `scripts/` e lo script del setup
|
||||
`installer/`. Mappa file-per-file completa in [`docs/architettura.md`](docs/architettura.md).
|
||||
`installer/`. Mappa file-per-file completa in [`docs/architettura.md`](docs/architettura.md); indice di tutti i doc in
|
||||
[`docs/README.md`](docs/README.md).
|
||||
|
||||
- `Program.cs` — entry point.
|
||||
- `Form1.cs` — finestra principale, wizard a 5 fasi e menu; UI costruita interamente in
|
||||
@@ -145,18 +83,7 @@ Il database generato (`cad_index.db`), i file Excel/CSV della distinta
|
||||
trascinati nella root e le cartelle `raw/`/`step/` sono rigenerabili e non
|
||||
sono tracciati in git (vedi `.gitignore`).
|
||||
|
||||
## Test
|
||||
|
||||
`PrepStep.Tests/` (xUnit) contiene unit test (lettore esatto e euristica di
|
||||
estrazione dei componenti dai `.asm`, parsing del nome file Pro-E, import della
|
||||
distinta) e integration test (scansione su disco, schema/vista SQL reale con focus
|
||||
sui bug di case-sensitivity/duplicati già risolti, pipeline end-to-end). Da
|
||||
eseguire:
|
||||
|
||||
```powershell
|
||||
cd PrepStep.Tests
|
||||
dotnet test
|
||||
```
|
||||
Per i test vedi [`docs/sviluppo.md`](docs/sviluppo.md#test).
|
||||
|
||||
## Licenza
|
||||
|
||||
|
||||
Reference in new issue
Block a user