docs: Windows host compat is a categorical constraint (B8 cancelled)

User requirement (non-negotiable): the project must stay
first-class compatible with a Windows host permanently — Phase B
adds Linux *alongside* Windows, never replacing/degrading it.
- implementation-plan-A-B §2: categorical-constraint banner; B8
  decommissioning cancelled (kept only as historical record);
  master checklist B8 row updated.
- PhaseB-user-checklist: Passo 9 (B8) cancelled -> dual-host kept;
  Passo 8 no longer a decommission gate; tracking table + closing
  note updated.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Simone
2026-05-17 23:45:31 +02:00
parent 6c4e5c2e0e
commit 573d11691d
2 changed files with 49 additions and 35 deletions
+25 -12
View File
@@ -99,8 +99,8 @@ A4; cambiano solo path/env vars in Fase B).
- [ ] [B6] Rsync incrementale finale `F:\CI\Artifacts\``/var/lib/ci/artifacts/`
- [ ] [B6] Trigger smoke workflow + `build-ns7zip.yml` matrix da host Linux PASS
- [ ] [B7] Eseguire burn-in 4 job concorrenti × 10 round su template Windows e Linux con tempi entro ±20% baseline
- [ ] [B8] Backup finale di `F:\CI\` su archivio
- [ ] [B8] Lasciare host Windows spento ma reinstallato per ≥1 mese come rollback
- [ ] [B8] (Facoltativo) Backup periodico di `F:\CI\`
- [x] [B8] ~~Decommissioning host Windows~~ **ANNULLATO** — vincolo categorico: host Windows supportato in permanenza (dual-host), non dismesso
- [ ] [X1] Aggiornare `lint.yml` per girare ruff + mypy + pytest oltre a PSSA
- [ ] [X2] Aggiungere observability: log strutturato `logging` + journald handler in Fase B
- [ ] [X3] Documentare gestione credenziali headless (DPAPI machine scope su Win, vault `age` su Linux)
@@ -384,6 +384,16 @@ qualche caller esterno non ancora migrato emerge.
## 2. Fase B — Migrazione host Linux Mint
> **VINCOLO CATEGORICO (non negoziabile): compatibilità host Windows
> permanente.** Fase B **aggiunge** il supporto host Linux **accanto**
> a Windows — non lo sostituisce né lo degrada. Windows host resta un
> target di **prima classe** e supportato, NON solo rollback. In
> concreto: **B8 NON va eseguito come rimozione reale** (l'host Windows
> resta operativo/usabile); nessun assunto Linux-only nel codice
> condiviso; la rimozione shim (B5) deve lasciare un modo Windows-nativo
> di invocare la CLI Python; ogni modifica Fase B deve dichiarare
> l'impatto su host Windows e preferire parità dual-host.
>
> **Parallelizzazione**: B1 può iniziare durante A3/A4 (setup hardware
> indipendente dal codice). B2, B3 possono iniziare appena B1 è done e
> A5 è done. B4B6 sono **strettamente sequenziali** dopo "A done".
@@ -697,20 +707,23 @@ fallisce, rollback a Windows (vedi B6 rollback).
- [ ] Tempi documentati
- [ ] Nessuna VM orfana
### B8 — Decommissioning host Windows (opzionale)
### B8 — ~~Decommissioning host Windows~~ — ANNULLATO (vincolo categorico)
**Obiettivo**: dopo ≥1 settimana di stabilità, dismettere host Windows.
> **B8 NON va eseguito.** Vincolo categorico: l'host Windows resta
> supportato di prima classe in modo permanente (non solo rollback).
> Niente dismissione, niente riallocazione hardware che rimuova la
> capacità di girare su host Windows. Questo step resta solo come
> record storico del piano originale.
**Input / dipendenze**: B7 done + ≥1 settimana di esercizio Linux
senza incidenti.
**Obiettivo (annullato)**: ~~dopo ≥1 settimana di stabilità, dismettere
host Windows.~~ → Host Windows mantenuto operativo a regime.
**Attività**:
**Attività (NON eseguire la dismissione; resta solo, se utile):**
- [ ] Backup finale di `F:\CI\` su archivio esterno (`tar` + checksum)
- [ ] Spegnimento runner Windows (`Stop-Service actions-runner`, runner già fermo da B6)
- [ ] Lasciare host Windows installato ma spento per ≥1 mese come rollback
- [ ] Documentare procedura di riaccensione in `docs/RUNBOOK.md`
- [ ] Dopo 1 mese: riallocare hardware se non ci sono stati rollback
- [ ] (Facoltativo) Backup periodico di `F:\CI\` su archivio esterno
- [ ] Host Windows **resta installato e utilizzabile** (run dual-host)
- [ ] Documentare in `docs/RUNBOOK.md` come usare entrambi gli host
- [ ] ~~Riallocare hardware~~ — NON applicabile (Windows host permanente)
**Hook futuri Fase C**: nessuno.