Versione (sviluppo software)

Un esempio base di un ciclo di vita di rilascio del software

In informatica, ma soprattutto nello sviluppo software, la versione (di un software, programma o applicazione) corrisponde a un determinato stato nello sviluppo di un software secondo l'uso del versioning (lett. "versionamento"). Secondo il Grand dictionnaire terminologique, il versionnage[1] (equivalente francese dell'inglese versioning) è quel processo (nello sviluppo), di mantenimento, di una versione di qualsiasi software in modo che possa essere facilmente recuperata, anche dopo che sono state rilasciate e implementate versioni più recenti.

Versioning semantico[2]

[modifica | modifica wikitesto]
Un esempio base della numerazione delle versioni di un software

Il versioning semantico (Semantic Versioning), abbreviato come SemVer, è uno schema di numerazione delle versioni per il software che stabilisce regole e requisiti su come i numeri di versione vengono assegnati e incrementati.

È stato introdotto formalmente da Tom Preston-Werner, nonostante venisse utilizzato fin da prima della sua formalizzazione, ed è ampiamente utilizzato nella comunità dello sviluppo software.

Il numero di versione in SemVer è composto da tre segmenti: MAJOR.MINOR.PATCH. Ogni segmento ha un significato specifico:

  1. Versione MAJOR: Si incrementa quando vengono introdotte modifiche incompatibili all'API. Questo indica che la nuova versione potrebbe non essere retrocompatibile con la versione precedente.
  2. Versione MINOR: Si incrementa quando vengono aggiunte nuove funzionalità in modo retrocompatibile. Ciò significa che il codice che funzionava con la versione precedente dovrebbe continuare a funzionare con quella nuova.
  3. Versione PATCH: Si incrementa per correzioni di bug retrocompatibili. Indica che la nuova versione è retrocompatibile e contiene principalmente correzioni per problemi presenti nella versione precedente.

Inoltre, SemVer consente versioni di pre-rilascio e metadati di build:

  • Versione di pre-rilascio: Un trattino seguito da una serie di identificatori separati da punti, indicando una versione di pre-rilascio. Ad esempio, "1.0.0-alpha.1".
  • Metadati di build: Un segno più seguito da una serie di identificatori separati da punti, indicando metadati di build. Ad esempio, "1.0.0+20130313144700".

Seguendo Semantic Versioning, sviluppatori e utenti possono rapidamente capire la natura dei cambiamenti in una release software, semplificando la gestione delle dipendenze e la determinazione della compatibilità.

Versioni preliminari

[modifica | modifica wikitesto]
Lo stesso argomento in dettaglio: Versione alfa e Versione beta.

Durantente il corso della vita di un software, vengono sviluppate e pubblicate più versioni dello stesso: alcune di queste sono preliminari (come le versioni alfa e beta) e spesso rimangono inaccessibili al pubblico – tranne che per eventuali (alfa o beta) testing.

Le versioni – chiamate in questo caso release[3][4][5] (lett. "rilascio") – successive alla messa in vendita o diffusione del software, sono associate a un numero o, in certi casi, ad un nome identificativo.

Convenzionalmente, si distinguono release maggiori, dette major release, quando le differenze dalla release precedente riguardano sostanziali evoluzioni delle funzionalità del software, non retrocompatibili, e release minori, dette minor release, quando le differenze riguardano principalmente correzioni di malfunzionamenti del software (bug) o comunque aggiunta di nuove funzionalità retrocompatibili.

  1. ^ (FR) Versionnage, su gdt.oqlf.gouv.qc.ca, Grand dictionnaire terminologique. URL consultato il 22 gennaio 2022.
  2. ^ Tom Preston-Werner, Versionamento Semantico 2.0.0, su Semantic Versioning. URL consultato il 17 dicembre 2023.
  3. ^ Release, su treccani.it, Treccani. URL consultato il 22 gennaio 2022.
  4. ^ (EN) RELEASE, su dictionary.cambridge.org, Cambridge Dictionary.
  5. ^ (EN) Release, su oxfordlearnersdictionaries.com, Oxford English Dictionary.

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàGND (DE4197182-6
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica