Processo di release
Questa pagina descrive il flusso di release attuale del repository, non una pipeline idealizzata per uno stato futuro.Modello di shipping attuale
- Le pull request sono l’unità di consegna.
- GitHub Actions è la fonte di verità per i controlli del repository.
apps/web,apps/appeapps/apivengono distribuite tramite Vercel nell’attuale postura alpha.apps/workerviene distribuita tramite un deployment in stile Railway.- I tag semver vengono utilizzati per le release deliberate.
- Il
buildVersiona runtime è distinto dalla versione di release semver.
Controlli predefiniti attuali
Il repository valida:- lint
- lint della documentazione
- igiene della documentazione
- deriva della specifica OpenAPI
- igiene delle release
- build della documentazione
- typecheck
- test
- build
Politica dei treni di release
Fino all’alpha, Switchbord utilizza il semver a treni di release:- patch per correzioni, correzioni alla documentazione e igiene delle release
- minor per ondate coerenti di funzionalità
- major solo per la semantica stabile
1.0.0
Passaggi di release obbligatori
Per ogni release deliberata:- Aggiornare
package.jsonalla versione prevista. - Aggiornare
CHANGELOG.mdcon## vX.Y.Ze date fattuali basate su git. - Aggiornare il changelog web pubblico in MDX se la release è rivolta ai clienti.
- Aggiornare la documentazione Mintlify per qualsiasi funzionalità visibile all’utente o cambiamento del comportamento operativo.
- Eseguire:
- Effettuare il merge della PR di release.
- Taggare esattamente la stessa versione:
- Confermare che la GitHub Release sia stata creata per il tag corrispondente.
Retro-datazione dei tag storici
Le versioni alpha storiche precedenti a questa politica non sono state taggate in modo coerente. Non creare tag fittizi. Se è necessaria una retro-datazione prima dell’alpha:- Identificare il commit esatto che rappresentava quello stato di release.
- Verificare
package.jsoneCHANGELOG.mdin quel commit. - Creare il tag storico solo se l’evidenza è inequivocabile.
- Preferire l’inizio della corrispondenza rigorosa al prossimo treno di release se il confine storico non è chiaro.
Linee guida per i contributori
- Non assumere che una funzionalità sia pronta per la release solo perché compila in locale.
- Se la tua modifica altera il comportamento a runtime, aggiorna sia la documentazione Mintlify sia la documentazione operativa a livello di repository che descrive lo stesso contratto.
- Se la tua modifica influisce sullo stato di marketing pubblico, aggiorna il changelog web o spiega esplicitamente il perché non lo fai nel corpo della PR.
- Se una data del changelog non è supportata da
git logogh pr view, non commetterla. - Se una modifica richiederebbe nuovi gate di CI, documentalo come un follow-up esplicito invece di far intendere che esista già.
Hardening pianificato
Queste sono aggiunte previste, ma dovrebbero essere descritte come pianificate finché non sono attive in CI:- build in container per i runtime a esecuzione prolungata
- validazione delle migrazioni
- controlli ambientali più rigorosi
- politica di promozione dell’ambiente di release