Il progetto Rust usa un concetto chiamato ‘canali di rilascio’ per gestire i rilasci. È importante capire questo procedimento per scegliere quale versione di Rust è meglio usare.
Ci sono tre canali per i rilasci di Rust:
I nuovi rilasci notturni vengono creati una volta al giorno. Ogni sei
settimane, l'ultimo rilascio notturno viene promosso a ‘Beta’. Da questo
momento, riceverà solamente pezze per correggere gravi errori. Sei settimane
dopo, la beta viene promossa a ‘Stabile’, e diventa la versione 1.x
.
Questo procedimento avviene in parallelo. Quindi ogni sei settimane,
nel medesimo giorno, la beta diventa la nuova stable, e la notturna diventa
la nuova beta. Quando la versione 1.x
viene rilasciata, nello stesso tempo,
anche la versione 1.(x + 1)-beta
viene rilasciata, e le ultime aggiunte al
sistema entrano a far parte della prima versione di 1.(x + 2)-nightly
.
In generale, a meno di avere una ragione specifica, si dovrebbe usare il canale del rilascio stabile. Questi rilasci sono rivolti al pubblico generale.
Però, a seconda dell'interesse che si ha verso Rust, si può scegliere invece di usare la versione notturna. I pro e contro di base sono questi: usando il canale notturno, si possono usare caratteristiche nuove di Rust, ma instabili. Queste caratteristiche instabili sono soggette a modifiche, e così ogni nuovo rilascio notturno potrebbe essere incompatibile con il proprio codice. Se si usa il rilascio stabile, non si possono usare le caratteristiche sperimentali, ma il nuovo rilascio di Rust non provocherà problemi significativi a causa di modifiche incompatibili.
E che dire della beta? Incoraggiamo tutti gli utenti di Rust che usano il canale di rilascio stabile a collaudare anche rispetto al canale beta nei loro sistemi di integrazione continua. Questo aiuterà ad allertare la squadra nel caso ci sia una regressione accidentale.
In aggiunta, collaudare rispetto alla versione beta può rilevare delle regressioni ancora prima, e quindi un terzo build non crea troppo fastidio, apprezziamo il collaudo rispetto tutti i canali.
Come esempio, molti programmatori Rust, per collaudare i loro crate, usano
Travis che è gratuito per progetti open source.
Travis supporta Rust direttamente, e per collaudare su tutti
i canali, si può usare un file .travis.yml
come questo:
language: rust
rust:
- nightly
- beta
- stable
matrix:
allow_failures:
- rust: nightly
Con questa configurazione, Travis collauderà tutte e tre i canali, ma se qualcosa va storto sul canale notturno, non fallirà la costruzione. Una configurazione simile è consigliata per ogni sistema CI. Si cosnulti la documentazione di quella che si sta usando per avere più dettagli.