Passa al contenuto principale

Mantieni questo manuale

La sorgente vive nel repository dell'applicazione, così una modifica di comportamento e la sua documentazione possono arrivare insieme. Gli screenshot generati vengono pubblicati in un bucket Cloudflare R2 sotto un prefisso versionato per ogni versione del manuale e non vengono mai committati nell'albero dell'applicazione.

Modifica la prosa​

  1. Modifica o aggiungi il file MDX inglese sotto docs-site/docs.
  2. Aggiorna il file corrispondente per ogni locale pubblicato sotto docs-site/i18n/<locale>/docusaurus-plugin-content-docs/current.
  3. Aggiungi una nuova pagina a docs-site/sidebars.ts.
  4. Aggiorna docs-site/metadata/features.json quando la copertura cambia.
  5. Aggiorna le voci corrispondenti in docs-site/metadata/surface-inventory.json. Una superficie diventa verified solo quando la sua UI di produzione attuale, la prosa e la copertura degli screenshot sono state tutte riviste.
  6. Esegui make manual_check.
  7. Rivedi la build di produzione in locale con make manual_serve, incluso il selettore di lingua e ogni percorso localizzato.

La validazione richiede che ogni albero di traduzione pubblicato contenga gli stessi percorsi di pagina dell'albero sorgente inglese. Rifiuta inoltre i corpi di pagina tradotti identici all'inglese, così le pagine nuove non possono uscire di nascosto come copie non tradotte. Gli URL pubblici inglesi restano invariati; le altre lingue vengono pubblicate sotto il proprio prefisso di locale versionato.

Mantieni autorevole l'inventario di copertura​

L'inventario definisce il perimetro V1 del manuale inglese: ogni pagina Beamer, ogni foglia o editor di Impostazioni V2 e ogni flusso di lavoro principale che crea o modifica in modo sostanziale dati o configurazione trasversale. Ogni voce registra il file sorgente che la possiede e un'ancora nel testo sorgente. La validazione fallisce se uno dei due scompare: così un cambio di route o di UI è costretto ad aggiornare l'audit del manuale invece di lasciare in giro una riga stantia e invisibile.

Gli stati di copertura hanno significati volutamente rigidi:

  • Planned significa che la superficie è nota ma manca ancora di copertura completa.
  • Documented significa che esiste prosa utile, ma mancano ancora gli screenshot di produzione attuali o una revisione di accuratezza end-to-end.
  • Verified significa che la pagina di funzionalità relativa è verificata e supportata da screenshot di produzione registrati.

Esegui npm --prefix docs-site run coverage:complete per il cancello di release. Fallisce finché ogni superficie inventariata non è verificata; le normali build incrementali del manuale continuano a riportare i conteggi rimanenti senza bloccare i commit di dimensione ragionevole.

Aggiungi un caso di screenshot​

  1. Aggiungi o riusa un harness deterministico di screenshot Flutter.
  2. Registra il caso e le sue quattro immagini sorgente in docs-site/metadata/screenshot-cases.json.
  3. Metti la copia dimostrativa visibile dietro manualScreenshotText(...) per ogni locale supportato, quando non è già fornita dai file di localizzazione dell'app.
  4. Cattura ogni locale nella directory locale di staging ignorata da git (make manual_screenshots); la CI pubblica il risultato nel bucket R2.
  5. Genera e valida il manifesto dei media.
  6. Riferisci il caso con <ManualScreenshot caseId="…" alt="…" /> su ogni pagina di lingua.

Ogni screenshot dell'app in una pagina autorata deve usare ManualScreenshot. I link diretti ai media degli screenshot — vecchie immagini lotti-docs o il bucket R2 stesso — falliscono la validazione del manuale perché non possono seguire la scelta globale Mobile/Desktop o il tema light/dark del manuale.

Ogni caso automatizzato deve fornire le varianti mobile-light, mobile-dark, desktop-light e desktop-dark in ogni locale pubblicato. Il componente del manuale sceglie lingua e tema corrispondenti. Cambiare Mobile/Desktop su qualsiasi immagine aggiorna subito ogni screenshot e persiste tra le pagine e le schede del manuale aperte.

Pubblica un rilascio​

La sorgente del manuale non viene copiata per ogni versione dell'app. Il tag di rilascio dell'app conserva già la sua sorgente esatta. La pubblicazione è un'esecuzione manuale del workflow con la versione di marketing e il deploy abilitato: la CI risolve il tag dell'app più recente di quella versione, costruisce il sito e il suo catalogo di screenshot dal tag, carica entrambi in uno storage versionato immutabile e ridistribuisce il sito con tutte le versioni fianco a fianco. Gli snapshot di rilascio non vengono mai sovrascritti. Il dropdown delle versioni legge un catalogo live scritto a ogni deploy, quindi anche i manuali più vecchi elencano i rilasci arrivati dopo di loro.