Come funzionano i numeri delle versioni precedenti per i nuovi prodotti?


11

Attualmente sto scrivendo una piccola applicazione desktop per un amico, ma lo sto facendo principalmente come esperienza di apprendimento per me stesso. Nello spirito di essere istruito e fare le cose nel modo giusto, voglio avere i numeri di versione per questa app.

La mia ricerca ha portato a questi risultati correlati

ma nessuno di essi affronta la numerazione di alfa, beta, candidati al rilascio, ecc. Quali sono le convenzioni per i numeri di versione inferiori a 1.0? So che possono andare avanti per qualche tempo; ad esempio, PuTTY è in circolazione da almeno un decennio ed è ancora solo alla versione beta 0.60.

Risposte:


30

Dipende davvero dal progetto; alcuni progetti non rilasciano nemmeno una versione 1.0.

Gli sviluppatori di MAME non intendono rilasciare una versione 1.0 del loro programma di emulazione. L'argomento è che non sarà mai veramente "finito" perché ci saranno sempre più giochi arcade. La versione 0.99 è stata semplicemente seguita dalla versione 0.100 (versione secondaria 100> 99). Allo stesso modo, Xfire 1,99 è stato seguito da 1.100. Dopo 6 anni di sviluppo, eMule non ha ancora raggiunto la versione 0,50. Versione del software su Wikipedia

Un metodo popolare di numerazione delle versioni (che ho iniziato a utilizzare) è il Semantic Versioning .

In base a questo schema, i numeri di versione e il modo in cui cambiano trasmettono significato sul codice sottostante e su ciò che è stato modificato da una versione all'altra.

Alcune citazioni per darti altre idee su come funziona e / o rispondere ad alcune delle tue domande:

Come faccio a sapere quando rilasciare 1.0.0?

Se il tuo software viene utilizzato in produzione, probabilmente dovrebbe essere già 1.0.0. Se disponi di un'API stabile da cui dipendono gli utenti, dovresti essere 1.0.0. Se ti preoccupi molto della compatibilità con le versioni precedenti, probabilmente dovresti già essere 1.0.0.

Questo non scoraggia il rapido sviluppo e la rapida iterazione?

La versione zero principale riguarda lo sviluppo rapido. Se stai cambiando l'API ogni giorno, dovresti comunque trovarti nella versione 0.xx o in un ramo di sviluppo separato che lavora alla versione principale successiva.

Se anche le più piccole modifiche incompatibili all'indietro dell'API pubblica richiedono un bump della versione principale, non finirò molto rapidamente alla versione 42.0.0?

Questa è una questione di sviluppo responsabile e lungimiranza. Le modifiche incompatibili non dovrebbero essere introdotte leggermente nel software che ha molto codice dipendente. Il costo che deve essere sostenuto per l'aggiornamento può essere significativo. Dover eseguire il bump delle versioni principali per rilasciare modifiche incompatibili significa riflettere sull'impatto delle modifiche e valutare il rapporto costi / benefici.

Ci sono anche regole su come specificare le versioni "alpha", "beta", ecc. Consulta i dettagli su http://semver.org/ .

[Modifica] Un altro schema di numerazione delle versioni interessante è quello che MongoDB usa :

MongoDB utilizza le versioni dispari per le versioni di sviluppo.

Ci sono 3 numeri in una versione MongoDB: ABC

  • A è la versione principale. Questo raramente cambierà e significherà cambiamenti molto grandi
  • B è il numero di rilascio. Ciò includerà molte modifiche tra cui funzionalità e cose che possono interrompere la compatibilità con le versioni precedenti. Anche i Bs saranno rami stabili, mentre i Bizzarri saranno lo sviluppo.
  • C è il numero di revisione e verrà utilizzato per bug e problemi di sicurezza.

Per esempio:

  • 1.0.0: prima versione GA
  • 1.0.x: bug risolti in 1.0.x - altamente raccomandato per l'aggiornamento, rischio molto basso
  • 1.1.x: versione di sviluppo. questo includerà nuove funzionalità che non sono completamente finite e lavori in corso. Alcune cose potrebbero essere diverse da 1.0
  • 1.2.x: seconda versione GA. questo sarà il culmine della versione 1.1.x.

Wow, questa è ... una vera modifica. Ti voterei di nuovo se potessi.
apre il

2
Grazie! ^ _ ^ Immagino che questa sia la modifica che mi spinge alla 1.0.0? :)
Michelle Tilley,


@RossPatterson Upvotes e accetta sono semanticamente diversi; questa risposta contiene molte buone informazioni, ma non penso che sia " la risposta", quindi l'accettazione non sembra giusta.
apre il

1

Non penso che ci sia uno "standard" in quanto tale.

Esiste una convenzione per i candidati al rilascio che di solito è "[versione] RC 1" ecc. A seconda di quante versioni pensi di poter rilasciare.

Se stai rilasciando una versione molto antica del tuo prodotto - una che non è completa di funzionalità - allora potresti voler andare con la versione "0". In questo modo puoi incrementare la versione nel tempo mentre compili il tuo set di funzionalità.

Userei "Alpha" e "Beta" come Release Candidate - per versioni a tempo limitato per indicare che pensi di essere vicino al rilascio della versione completa.


Ci ho pensato, ma non riesco a capire cosa rappresenta la versione 0. La differenza tra 0,1 e 0,2, e tra 0,3,2 e 0,3,3, simultaneamente ha e non ha senso secondo me secondo il modello "release minore" / "patch bugix".
apre il

@Lord - è vero che è lì che cade ...
ChrisF

1

C'è una pagina di Wikipedia sul controllo delle versioni del software . Per condividere le versioni precedenti alla 1.0, la convenzione utilizzata da Apple e altri funziona bene: major.minor.maintSrev dove S è l'indicatore di fase per le versioni pre-release: d = sviluppo, a = alfa, b = beta, rc = rilascio candidato. Quindi la tua prima versione interna potrebbe essere 1.0.0d1.

Per le revisioni completamente interne, il timestamp è sufficiente.


0

Ogni sviluppatore decide per lo più quale standard useranno. In generale, tuttavia, i numeri a sinistra del punto decimale indicano grandi revisioni che sarebbero probabilmente molto evidenti per l'utente medio (ovvero modifiche alla funzionalità o all'interfaccia, ecc.). Sul lato destro del punto decimale si tratterebbe di una modifica / modifica / aggiunta che non ha cambiato molto la funzionalità e la progettazione complessive ma ha cambiato qualcosa sul programma stesso (ovvero rendere più veloce una funzione mentre si fa ancora la stessa cosa o si fissa un problema di sicurezza). Quindi, se si aggiungono ulteriori punti decimali, i numeri a destra di questi indicherebbero cambiamenti sempre più piccoli (ovvero correzioni di bug minori / problemi di sicurezza e simili).


Questa sarebbe una buona risposta per alcune delle domande correlate che ho elencato nel mio post - e, in effetti, è abbastanza simile ad alcune delle risposte esistenti a quelle domande - ma in realtà non affronta il caso "versione zero" Sto chiedendo.
apre il

Perché no? Tutto inizia con 0 in informatica ...
Kenneth,

onestamente alla fine l'unica persona / le persone a cui il numero di versione ha un significato significativo è lo / gli sviluppatore / i. Per quanto riguarda gli utenti ha solo un significato relativo. Quindi, alla fine, gli sviluppatori possono praticamente e più o meno usare qualunque schema si sentano.
Kenneth,

0

Come altri hanno già detto, non sembra esserci uno standard esatto. La nostra organizzazione utilizza la seguente notazione:

Release 1.0 ---> 2.0 (Una funzionalità nuova / migliorata aggiunta al prodotto)

Release 1.0 ---> 1.1 (Una funzionalità nuova / migliorata di livello medio aggiunta al prodotto)

Versione 1.0 ---> 1.001 (correzioni di errori)


1
"1.0 ---> 1.001 (Bugfixes)" Davvero? Perché non 1.0.1? Questo è più normale. Cosa succede se hai 100 correzioni di bug?
James

@James - Non succederà MAI (ultime parole famose che conosco lol). Scherzi a parte, non abbiamo mai raggiunto 100 correzioni di bug contemporaneamente, quindi il numero della versione secondaria è sempre cambiato prima di raggiungere questo limite (1.1.1.2.1.3 ecc.). Se avessimo raggiunto il limite, potremmo dover aumentare il numero di sub-release: conterrebbe una funzionalità migliorata di livello medio con tante correzioni.
Dal

0

La pietra miliare della "versione 1.0" è molto importante per gli utenti di computer esperti, in quanto implica che il programma è fatto e funziona come previsto. Qualsiasi cosa nella versione "0.something" implica che i programmatori stessi pensano che il programma non sia stato ancora fatto .

È possibile mantenere i numeri di versione "0.1", "0.2" ... per le principali realizzazioni della funzionalità e quindi immetterli con un numero di build che spesso è una data e un timestamp sufficientemente precisi.


Per lo sviluppo commerciale, 1.0 significa spesso che è difettoso, incompleto e subirà cambiamenti di rottura molto presto.
David Thornley,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.