Piano di rilascio
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Introduzione
I processi di rilascio a scadenze prestabilite hanno dimostrato di produrre Software Libero di miglior qualità. Un rilascio a date predefinite non si ferma per aspettare l'inserimento né di funzionalità, né di correzioni di bug - ma si basa esclusivamente (per quanto possibile) sul tempo. Questo rafforza la disciplina nell'introduzione delle correzioni, conferisce prevedibilità e permette rilasci più regolari. Ciò comporta la necessità di rilasciare prima e con rapidità, dei rilasci incrementali per la correzione di bug, basati sulla precedente versione stabile. Quindi se avete bisogno di una versione di qualità elevata, potrebbe essere sensato attendere il primo, o anche il secondo, rilascio minore prima di effettuare l'aggiornamento.
- LibreOffice rilascia delle nuove versioni, due volte all'anno, con tempistiche prevedibili, in sincrono con altri progetti di Software Libero (per es. Gnome), ciò avviene almeno un mese prima del rilascio delle nuove versioni delle maggiori distribuzioni Linux.
- anche la sincronizzazione delle scadenze dei rilasci con quelle del più ampio ecosistema del Software Libero presenta grandi vantaggi, mettendo a disposizione degli utenti le nuove funzionalità il prima possibile, con un minimo intervallo nel ciclo di distribuzione. Conseguentemente, puntiamo ad avere dei rilasci semestrali, che nel tempo verranno leggermente spostati in modo da allinearli alla regola Marzo/Settembre.
I processi di rilascio a scadenze prestabilite hanno dimostrato di produrre Software Libero di miglior qualità. Un rilascio a date predefinite non si ferma per aspettare l'inserimento né di funzionalità, né di correzioni di bug - ma si basa esclusivamente (per quanto possibile) sul tempo. Questo rafforza la disciplina nell'introduzione delle correzioni, conferisce prevedibilità e permette rilasci più regolari. Ciò comporta la necessità di rilasciare prima e con rapidità, dei rilasci incrementali per la correzione di bug, basati sulla precedente versione stabile. Quindi se avete bisogno di una versione di qualità elevata, potrebbe essere sensato attendere il primo, o anche il secondo, rilascio minore prima di effettuare l'aggiornamento.
- esistono 2 rami: Fresh (l'ultima versione) e Still (la versione precedente), che sono pensati rispettivamente: il primo, per gli utenti che desiderano avere le ultime funzionalità e, il secondo, per gli utenti più conservativi e le installazioni in ambito aziendale.
- di conseguenza agli utenti avranno una nuova versione principale ogni sei mesi, con un'ampia gamma di nuove funzionalità, correzioni e miglioramenti. In aggiunta avranno diverse altre micro versioni destinate puramente alla correzione di bug. La prima versione X.Y.0 è destinata ad utenti all'avanguardia (early adopters). Per gli utenti più prudenti è consigliabile attendere il rilascio di una successiva versione di bugfix X.Y.Z.
Si precisa che le date indicate nel programma potrebbero slittare nel caso di seri problemi tecnici o di altro tipo riscontrati con una versione. Potrebbe rendersi necessaria una RC aggiuntiva, nel caso in cui la release candidate finale non rispetti i Requisiti di Rilascio. Problemi di questo tipo potrebbero ritardare il rilascio finale di una settimana o più.
Il grafico semplificato sottostante visualizza tre versioni posizionate su di una timeline di 24 mesi.
versione 7.5
Versione | Congelamento | Pubblicazione |
---|---|---|
7.5.0 (congelamento: settimana 02) | Settimana 47 , nov 21, 2022 - nov 27, 2022 | Settimana 05 , gen 30, 2023 - feb 5, 2023 |
7.5.1 | Settimana 06 , feb 6, 2023 - feb 12, 2023 | Settimana 09 , feb 27, 2023 - mar 5, 2023 |
7.5.2 | Settimana 10 , mar 6, 2023 - mar 12, 2023 | Settimana 13 , mar 27, 2023 - apr 2, 2023 |
7.5.3 | Settimana 15 , apr 10, 2023 - apr 16, 2023 | Settimana 18 , mag 1, 2023 - mag 7, 2023 |
7.5.4 | Settimana 20 , mag 15, 2023 - mag 21, 2023 | Settimana 23 , giu 5, 2023 - giu 11, 2023 |
7.5.5 | Settimana 26 , giu 26, 2023 - lug 2, 2023 | Settimana 29 , lug 17, 2023 - lug 23, 2023 |
7.5.6 | Settimana 33 , ago 14, 2023 - ago 20, 2023 | Settimana 36 , set 4, 2023 - set 10, 2023 |
7.5.7 | Settimana 41 , ott 9, 2023 - ott 15, 2023 | Settimana 44 , ott 30, 2023 - nov 5, 2023 |
Fine vita | 30 novembre 2023 |
Consultate anche il programma dettagliato e le note di rilascio.
versione 7.4
Versione | Congelamento | Pubblicazione |
---|---|---|
7.4.0 (congelamento: settimana 30) | Settimana 19 , mag 9, 2022 - mag 15, 2022 | Settimana 33 , ago 15, 2022 - ago 21, 2022 |
7.4.1 | Settimana 34 , ago 22, 2022 - ago 28, 2022 | Settimana 37 , set 12, 2022 - set 18, 2022 |
7.4.2 | Settimana 38 , set 19, 2022 - set 25, 2022 | Settimana 41 , ott 10, 2022 - ott 16, 2022 |
7.4.3 | Settimana 44 , ott 31, 2022 - nov 6, 2022 | Settimana 47 , nov 21, 2022 - nov 27, 2022 |
7.4.4 | Settimana 50 , dic 12, 2022 - dic 18, 2022 | Settimana 53 , gen 2, 2023 - gen 8, 2023 |
7.4.5 | Settimana 04 , gen 23, 2023 - gen 29, 2023 | Settimana 04 , gen 23, 2023 - gen 29, 2023 |
7.4.6 | Settimana 07 , feb 13, 2023 - feb 19, 2023 | Settimana 10 , mar 6, 2023 - mar 12, 2023 |
7.4.7 | Settimana 16 , apr 17, 2023 - apr 23, 2023 | Settimana 19 , mag 8, 2023 - mag 14, 2023 |
Fine vita | 12 giugno 2023 |
Consultate anche il programma dettagliato e le note di rilascio.
Versione 7.3
Versione | Congelamento | Pubblicazione |
---|---|---|
7.3.0 (congelamento: settimana 02) | Settimana 43 , ott 25, 2021 - ott 31, 2021 | Settimana 05 , gen 31, 2022 - feb 6, 2022 |
7.3.1 | Settimana 06 , feb 7, 2022 - feb 13, 2022 | Settimana 09 , feb 28, 2022 - mar 6, 2022 |
7.3.2 | Settimana 10 , mar 7, 2022 - mar 13, 2022 | Settimana 13 , mar 28, 2022 - apr 3, 2022 |
7.3.3 | Settimana 15 , apr 11, 2022 - apr 17, 2022 | Settimana 18 , mag 2, 2022 - mag 8, 2022 |
7.3.4 | Settimana 20 , mag 16, 2022 - mag 22, 2022 | Settimana 23 , giu 6, 2022 - giu 12, 2022 |
7.3.5 | Settimana 26 , giu 27, 2022 - lug 3, 2022 | Settimana 29 , lug 18, 2022 - lug 24, 2022 |
7.3.6 | Settimana 33 , ago 15, 2022 - ago 21, 2022 | Settimana 36 , set 5, 2022 - set 11, 2022 |
7.3.7 | Settimana 41 , ott 10, 2022 - ott 16, 2022 | Settimana 44 , ott 31, 2022 - nov 6, 2022 |
Fine vita | 30 novembre 2022 |
Consultate anche il programma dettagliato e le note di rilascio.
Versione 7.2
Versione | Congelamento | Pubblicazione |
---|---|---|
7.2.0 (congelamento: settimana 30) | Settimana 19 , mag 10, 2021 - mag 16, 2021 | Settimana 33 , ago 16, 2021 - ago 22, 2021 |
7.2.1 | Settimana 34 , ago 23, 2021 - ago 29, 2021 | Settimana 37 , set 13, 2021 - set 19, 2021 |
7.2.2 | Settimana 38 , set 20, 2021 - set 26, 2021 | Settimana 41 , ott 11, 2021 - ott 17, 2021 |
7.2.3 | Settimana 44 , nov 1, 2021 - nov 7, 2021 | Settimana 47 , nov 22, 2021 - nov 28, 2021 |
7.2.4 | Settimana 48 , nov 29, 2021 - dic 5, 2021 | Settimana 49 , dic 6, 2021 - dic 12, 2021 |
7.2.5 | Settimana 50 , dic 13, 2021 - dic 19, 2021 | Settimana 53 , gen 3, 2022 - gen 9, 2022 |
7.2.6 | Settimana 07 , feb 14, 2022 - feb 20, 2022 | Settimana 10 , mar 7, 2022 - mar 13, 2022 |
7.2.7 | Settimana 16 , apr 18, 2022 - apr 24, 2022 | Settimana 19 , mag 9, 2022 - mag 15, 2022 |
Fine vita | 12 giugno 2022 |
Consultate anche il programma dettagliato e le note di rilascio.
Versione 7.1
Versione | Congelamento | Pubblicazione |
---|---|---|
7.1.0 (congelamento: settimana 02) | Settimana 43 , ott 19, 2020 - ott 25, 2020 | Settimana 05 , feb 1, 2021 - feb 7, 2021 |
7.1.1 | Settimana 06 , feb 8, 2021 - feb 14, 2021 | Settimana 09 , mar 1, 2021 - mar 7, 2021 |
7.1.2 | Settimana 10 , mar 8, 2021 - mar 14, 2021 | Settimana 13 , mar 29, 2021 - apr 4, 2021 |
7.1.3 | Settimana 15 , apr 12, 2021 - apr 18, 2021 | Settimana 18 , mag 3, 2021 - mag 9, 2021 |
7.1.4 | Settimana 20 , mag 17, 2021 - mag 23, 2021 | Settimana 23 , giu 7, 2021 - giu 13, 2021 |
7.1.5 | Settimana 26 , giu 28, 2021 - lug 4, 2021 | Settimana 29 , lug 19, 2021 - lug 25, 2021 |
7.1.6 | Settimana 33 , ago 16, 2021 - ago 22, 2021 | Settimana 36 , set 6, 2021 - set 12, 2021 |
7.1.7 | Settimana 41 , ott 11, 2021 - ott 17, 2021 | Settimana 44 , nov 1, 2021 - nov 7, 2021 |
7.1.8 | Settimana 48 , nov 29, 2021 - dic 5, 2021 | Settimana 49 , dic 6, 2021 - dic 12, 2021 |
Fine vita | 30 novembre 2021 |
Consultate anche il programma dettagliato e le note di rilascio.
versione 7.0
Versione | Congelamento | Pubblicazione |
---|---|---|
7.0.0 (congelamento: settimana 29) | Settimana 19 , mag 4, 2020 - mag 10, 2020 | Settimana 32 , ago 3, 2020 - ago 9, 2020 |
7.0.1 | Settimana 33 , ago 10, 2020 - ago 16, 2020 | Settimana 36 , ago 31, 2020 - set 6, 2020 |
7.0.2 | Settimana 38 , set 14, 2020 - set 20, 2020 | Settimana 41 , ott 5, 2020 - ott 11, 2020 |
7.0.3 | Settimana 43 , ott 19, 2020 - ott 25, 2020 | Settimana 46 , nov 9, 2020 - nov 15, 2020 |
7.0.4 | Settimana 48 , nov 23, 2020 - nov 29, 2020 | Settimana 51 , dic 14, 2020 - dic 20, 2020 |
7.0.5 | Settimana 07 , feb 15, 2021 - feb 21, 2021 | Settimana 10 , mar 8, 2021 - mar 14, 2021 |
7.0.6 | Settimana 16 , apr 19, 2021 - apr 25, 2021 | Settimana 19 , mag 10, 2021 - mag 16, 2021 |
Fine vita | 31 maggio 2021 |
Consultate anche il programma dettagliato e le note di rilascio.
versione 6.4
Versione | Congelamento | Pubblicazione |
---|---|---|
6.4.0 (congelamento: settimana 02) | Settimana 42 , ott 14, 2019 - ott 20, 2019 | Settimana 05 , gen 27, 2020 - feb 2, 2020 |
6.4.1 | Settimana 06 , feb 3, 2020 - feb 9, 2020 | Settimana 09 , feb 24, 2020 - mar 1, 2020 |
6.4.2 | Settimana 09 , feb 24, 2020 - mar 1, 2020 | Settimana 12 , mar 16, 2020 - mar 22, 2020 |
6.4.3 | Settimana 13 , mar 23, 2020 - mar 29, 2020 | Settimana 16 , apr 13, 2020 - apr 19, 2020 |
6.4.4 | Settimana 18 , apr 27, 2020 - mag 3, 2020 | Settimana 21 , mag 18, 2020 - mag 24, 2020 |
6.4.5 | Settimana 24 , giu 8, 2020 - giu 14, 2020 | Settimana 27 , giu 29, 2020 - lug 5, 2020 |
6.4.6 | Settimana 30 , lug 20, 2020 - lug 26, 2020 | Settimana 33 , ago 10, 2020 - ago 16, 2020 |
6.4.7 | Settimana 39 , set 21, 2020 - set 27, 2020 | Settimana 42 , ott 12, 2020 - ott 18, 2020 |
Fine vita | 30 novembre 2020 |
Consultate anche il programma dettagliato e le note di rilascio.
versione 6.3
Versione | Congelamento | Pubblicazione |
---|---|---|
6.3.0 (congelamento: settimana 29) | Settimana 19 , mag 6, 2019 - mag 12, 2019 | Settimana 32 , ago 5, 2019 - ago 11, 2019 |
6.3.1 | Settimana 32 , ago 5, 2019 - ago 11, 2019 | Settimana 35 , ago 26, 2019 - set 1, 2019 |
6.3.2 | Settimana 36 , set 2, 2019 - set 8, 2019 | Settimana 39 , set 23, 2019 - set 29, 2019 |
6.3.3 | Settimana 41 , ott 7, 2019 - ott 13, 2019 | Settimana 44 , ott 28, 2019 - nov 3, 2019 |
6.3.4 | Settimana 47 , nov 18, 2019 - nov 24, 2019 | Settimana 50 , dic 9, 2019 - dic 15, 2019 |
6.3.5 | Settimana 05 , gen 27, 2020 - feb 2, 2020 | Settimana 08 , feb 17, 2020 - feb 23, 2020 |
6.3.6 | Settimana 15 , apr 6, 2020 - apr 12, 2020 | Settimana 18 , apr 27, 2020 - mag 3, 2020 |
Fine vita | 29 maggio 2020 |
Consultate anche il programma dettagliato e le note di rilascio.
Date
I rilasci avvengono a scadenza, ma il programma stabilisce le settimana del calendario e non le date esatte. Questo perché siamo sempre un po' flessibili. Il rilascio può essere posticipato di qualche giorno a causa di bug bloccanti, problemi in fase di compilazione o altre questioni tecniche.
I rilasci sono costituiti dalla compilazione di diverse versioni beta e release candidate. Per ciascuna compilazione sono necessarie diverse operazioni. Il flusso di lavoro ideale è il seguente:
- Lunedì: scadenza per i commit; prima che si verifichi, vengono inviati degli avvisi alle mailing list degli sviluppatori e dei traduttori
- Martedì: viene creato un tag su di un commit in grado di essere compilato e di passare i test: unit, subsequent e smoke; il tag viene annunciato sulle mailing list degli sviluppatori e della certificazione di qualità (qa)
- Mercoledì: le versioni compilate vengono caricate sul sito delle prime pre-release; vengono annunciate sulle mailing list degli sviluppatori e della certificazione di qualità (qa)
- Giovedì: le versioni compilate vengono caricate sui mirror. Vengono annunciate attraverso molti canali, come ad esempio mailing list, twitter
- Venerdì: le versioni compilate vengono rese disponibili sul sito delle pre-release ufficiali
La versione finale di solito viene annunciata di Sabato, qualche giorno dopo il rilascio dell'ultima release candidate.
Si precisa che siamo molto restrittivi con i commit all'ultima release candidate, perciò un test di tipo full regression non è necessario. Se supera tutti i test previsti viene utilizzata come versione finale. Viene semplicemente rinominata sui mirror.
Programma
Il programma è fondato sulle seguenti regole:
- rilasciare la versione principale ogni sei mesi e sincronizzarla (almeno un mese prima) con le principali distribuzioni Linux; introduce sempre un'ampia gamma di funzionalità, correzioni e miglioramenti;
- rilasciare versioni di pura correzione di bug ogni mese a partire dal rilascio della versione principale e fino a che non sia sufficientemente stabile anche per le persone più conservative, dopodiché ridurne la frequenza;
- rilasciare versioni di pura correzione di bug, comprese le correzioni relative alla sicurezza, fino a che la versione successiva non sarà pronta per gli utenti più conservativi;
- non effettuare due compilazioni nella stessa settimana.
Il risultato è quello del seguente schema:
Evento | Estate | Inverno |
---|---|---|
x.y Congelamento delle funzionalità | Giu (i) | Dic (i) |
x.y.0 rilascio versione principale | Ago (i) | Feb (i) |
x.y.1 versione di bugfix | Set (i) | Mar (i) |
x.y.2 versione di bugfix | Ott (i) | Apr (i) |
x.y.3 versione di bugfix | Nov (i) | Mag (i) |
x.y.4 versione di bugfix | Dic (i) | Giu (i) |
x.y.5 versione di bugfix | Feb (m) | Ago (m) |
x.y.6 versione di bugfix | Apr (m) | Ott (m) |
Dove (i) indica l'inizio del mese, (m) significa la metà del mese e (f) significa la fine del mese.
Congelamento delle stringhe di testo
Il piano di rilascio di ogni versione principale prevede un "congelamento" delle stringhe di testo in inglese presenti nel codice e nell'interfaccia grafica. Lo scopo è quello di rendere più agevole il lavoro dei traduttori. I traduttori devono avere la certezza che, nell'interfaccia grafica e nei file dell'Aiuto in linea, non verranno introdotte nuove stringhe da tradurre nel periodo intercorrente tra il periodo di congelamento delle stringhe ed il rilascio.
Dopo che il primo rilascio della versione principale è stato effettuato, sono ammesse le correzioni degli errori nell'interfaccia grafica e nell'Aiuto. Qualsiasi contenuto completamente nuovo andrà indirizzato alla successiva versione principale.
Schema di rilascio
Per ogni rilascio vengono effettuate diverse compilazioni, per le quali viene usato il seguente schema di versione:
- X.Y.0.0.alphaN - N-esima versione alpha del rilascio iniziale
- X.Y.0.0.betaN - N-esima versione beta del rilascio iniziale
- X.Y.0.N - N-esima release candidate del rilascio iniziale, l'ultima RC è ritenuta la versione finale e resa disponibile sulla pagina principale di download
- X.Y.1.N - N-esima release candidate della 1a bugfix release, l'ultima RC è ritenuta la versione finale e resa disponibile sulla pagina principale di download
Questo sembra essere il miglior compromesso e presenta i seguenti vantaggi:
- è facile da capire per gli utenti comuni, i termini alpha e beta sono già noti da altri progetti e corrispondono alle aspettative;
- ordine alfabetico corretto in RPM e Bugzilla
- “facile” da processare (le stringe alpha/beta sono separate da punti)
Sulla mailing list c'è stata una lunga discussione in merito all'adozione di questo schema.
Accelerazione del ciclo di rilascio
Questa accelerazione del ciclo di rilascio comporta un considerevole sforzo ingegneristico e di controllo qualità. Per ridurre il loro costo, stiamo lavorando per mettere a disposizione degli snapshot giornalieri completi (ovvero in tutte le lingue) del ramo di sviluppo, al fine di consentire un test continuo dei miglioramenti al codice. Questo lavoro è già parzialmente disponibile e può essere visionato/scaricato qui.
Allo stesso modo, abbiamo in programma di incrementare gli automatismi del processo di compilazione, in modo da consentire un flusso di rilascio che abbia un impatto molto più leggero e continuando a ridurre l'occupazione di memoria dei binari, così da consentire un trasferimento più rapido dei pacchetti compilati equivalenti al prodotto finale.
Rilasci EOL (Fine vita)
Una versione normalmente ha un ciclo di vita di circa nove mesi. Consideriamo che una versione ha raggiunto il suo Fine vita (EOL) un mese dopo l'ultimo rilascio minore pianificato.
Se desiderate avere un supporto più lungo per una determinata versione, vi invitiamo ad affidarvi ad uno sviluppatore certificato L3 in grado di fornirvi questo servizio.
In considerazione della quantità di dati presenti, alcune versione sono state riepilogate nell'Archivio del piano di rilascio.