Inserito da zzak il 2013-12-21
Tradotto da Alessandro Lepore
Abbiamo deciso di passare ad una policy di Versioning Semantico a partire dal rilascio di Ruby 2.1.0.
Per fornire uno schema di versioning meglio definito e utilizzato per Ruby abbiamo deciso di cambiare gradualmente verso la policy seguente.
Modifiche alla Policy
La policy è basata sulla proposta del system administrator di ruby-lang.org Hiroshi Shibata (@hsbt).
Version Schema
MAJOR
: incrementato nel caso di modifiche incompatibili che non possono essere rilasciate in MINOR.- Riservata ad eventi speciali.
MINOR
: incrementato ogni Natale, l’API potrebbe essere incompatibile.TEENY
: security o bug fix che mantengono la compatibilità API.- Può superare 10 (come
2.1.11
) e sarà rilasciato ogni 2-3 mesi.
- Può superare 10 (come
PATCH
: numero di commits dall’ultimaMINOR
release (sarà riportato a 0 al rilascio dellaMINOR
).
Branching Schema
Manterremo i seguenti branches:
- trunk
ruby_{MAJOR}_{MINOR}
Il branch ruby_{MAJOR}_{MINOR}
sarà mantenuto tra le release TEENY
.
Useremo dei tags per ogni release.
Compatibilità API
Le seguenti caratteristiche possono essere marcate come modifica incompatibile,
richiedendo un incremento nella versione MINOR
:
- Rimozione di features api C-level.
- Modifiche o aggiunte non retrocompatibili.
Compatibilità ABI
L’ABI si atterrà al seguente schema: {MAJOR}.{MINOR}.0
Faremo il possibile per mantenere la compatibilità ABI nelle release con lo
stesso livello MINOR
, così che TEENY
resterà fisso a 0.
Riferimenti
Per documentarsi meglio su questa proposta si prega di vedere i seguenti link:
- Introducing a semantic versioning scheme and branching policy
- Proposta accettata in Inglese
- Proposta accettata in Giapponese
Grazie!
Vorrei ringraziare personalmente tutti quelli che hanno contribuito a questa discussione. Ogni passo che facciamo ci porta ad un Ruby più stabile ed efficace.