Rilascia la 1.0.0: licenza, CHANGELOG e documentazione riallineata al codice

Versione portata a 1.0.0 (csproj, CLAUDE.md) e voce [1.0.0] nel
CHANGELOG con tutto il lavoro dalla 0.9.0: setup per-utente, nuovo
nome "PrepStep - Cevolani", DB fisso nella cartella di installazione,
"Elimina CSV delle distinte", guide aggiornate.

Nuova LICENSE proprietaria (Davide Grilli, tutti i diritti riservati),
riportata anche in <Copyright> dell'exe e AppCopyright del setup.
README: sequenza completa di comandi per generare il setup.

Documentazione riallineata al codice dopo un controllo file per file:
nomi delle fasi come nella UI, "File → Nuovo" che non cancella file,
mappa dei file e test nel README, riferimenti ad AssiemeCompleto (non
esiste più) e ruolo di CaricaCodiciNoti/CaricaCandidati in fase 4.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
davideandClaude Opus 5.5 committed 2026-09-23 08:53:35 +02:00
1 parent 4ae3d0e087
commit 5fac2edf52
12 files changed
+192 -80

No files matched your search

+43 -19
View File
@@ -12,12 +12,13 @@ passaggio, non lo sostituisce.
1. **Indice CAD** — all'avvio carica automaticamente `cad_index.db` dalla
cartella di installazione (`%LOCALAPPDATA%\Programs\PrepStep`). Se manca, lo si
crea con **Aggiorna indice**, oppure si apre un altro DB per la sola sessione
con **Apri DB...**. **Aggiorna indice** che scansiona il disco (di default `X:\`, tutte le cartelle di primo
livello che trova) e indicizza tutti i file. La **cartella di lavoro** (dove
finiscono il CSV e la cartella `raw/`; gli STEP esportati con Creo vanno in
`step/`, dentro la stessa cartella) è l'ultima scelta (ricordata tra un avvio e
l'altro) o, la prima volta, la cartella di installazione, modificabile in qualunque momento da **File → Scegli
cartella di lavoro...**.
con **Apri DB...**. **Aggiorna indice** scansiona il disco (di default `X:\`,
tutte le cartelle di primo livello che trova) e indicizza tutti i file. La
**cartella di lavoro** (dove finiscono il CSV e la cartella `raw/`; gli STEP
esportati con Creo vanno in `step/`, dentro la stessa cartella) è di default la
cartella di installazione, modificabile in qualunque momento da **File → Scegli
cartella di lavoro...** (la scelta viene ricordata). Dal menu **File** si
ripuliscono anche `raw/`/`step/` e i CSV accumulati.
2. **Importa Distinta Base** — trascina (o scegli da file) l'estrazione
`.xls`/`.xml` del gestionale (foglio "Distinta Base", colonne
Componente/Descrizione): viene generato un CSV nella cartella di lavoro, con
@@ -34,7 +35,7 @@ passaggio, non lo sostituisce.
`raw/` per trovare ricorsivamente i sotto-assiemi/parti che li
compongono, copiandoli a loro volta in `raw/` (passo opzionale se la
distinta contiene solo parti singole).
5. **Trascina su Creo** — mostra i file `.asm` della distinta già in `raw/`,
5. **Verifica completezza** — mostra i file `.asm` della distinta già in `raw/`,
trascinabili su Creo Distributed Batch per l'esportazione STEP (passo
manuale, fuori da quest'app): scrive in `step/`, dentro la cartella di
lavoro.
@@ -88,16 +89,27 @@ 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: `winget install JRSoftware.InnoSetup --scope user`). Dalla root del repo,
**dopo** il `dotnet publish` qui sopra:
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). Il setup:
`<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;
@@ -112,16 +124,22 @@ senza chiedere) — es. per distribuirla da script:
## Struttura del progetto
Tutto il codice è in `PrepStep/` (unico progetto nella solution, GUI e
indicizzazione integrate):
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).
- `Program.cs` — entry point.
- `Form1.cs` — finestra principale (indice CAD, import Distinta Base, griglia
risultati); UI costruita interamente in codice, nessun designer visuale.
- `Form1.cs` — finestra principale, wizard a 5 fasi e menu; UI costruita interamente in
codice (`Form1.Designer.cs` è solo lo scheletro del template).
- `Indexer.cs` — scansione del disco e scrittura/aggiornamento del DB SQLite.
- `DistintaBaseImporter.cs` — parsing del file Distinta Base (SpreadsheetML
XML o Excel binario/OpenXML tramite ExcelDataReader) e generazione CSV.
- `ProgressForm.cs` — dialog di avanzamento durante l'aggiornamento indice.
- `AsmRecordReader.cs` — lettura esatta dei record dei `.asm` (fase 4).
- `AssemblyComponentScanner.cs` — euristica testuale di fallback per i `.asm` fuori formato.
- `ProgressForm.cs`, `ProgressoComponentiForm.cs` — avanzamento di scansione e fase 4.
- `PrtMancantiForm.cs` — esito di "Trova componenti referenziati".
- `GuidaForm.cs` — guida in-app (Aiuto → Guida, F1).
- `UiStile.cs` — stile condiviso di bottoni, card e barre.
Il database generato (`cad_index.db`), i file Excel/CSV della distinta
trascinati nella root e le cartelle `raw/`/`step/` sono rigenerabili e non
@@ -129,12 +147,18 @@ sono tracciati in git (vedi `.gitignore`).
## Test
`PrepStep.Tests/` contiene unit test (regex di estrazione dei componenti
dai `.asm`, parsing del nome file Pro-E) e integration test (schema/vista SQL
reale, con focus sui bug di case-sensitivity/duplicati già risolti). Da
`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
```
## Licenza
Software proprietario, © 2026 Davide Grilli, tutti i diritti riservati: vedi
[`LICENSE`](LICENSE).