Quando devo incrementare il numero di versione?


23

Non ho imparato la programmazione a scuola e non lavoro come sviluppatore (professionale), quindi molte nozioni di base non sono abbastanza chiare per me. Questa domanda cerca di chiarire uno di essi.


Ora supponiamo che io abbia dei problemi #1, #2e #3nel mio Tracker dei problemi che sono impostati per essere corretti / migliorati per la versione 1.0.0e che l'ultima versione (stabile) è 0.9.0.

Quando devo passare alla versione 1.0.0? Quando a) è chiuso solo uno dei problemi sopra elencati oppure b) quando tutti i problemi relativi alla versione 1.0sono chiusi?

Qual è il modo giusto per farlo? E nel modo giusto , intendo quello che è attualmente utilizzato nel settore.



1
E puoi includere anche tutti e tre i problemi nella prossima versione.
Martijn Pieters,

Sì, sto già utilizzando SemVer e TUTTI e tre i problemi sono dovuti nella prossima versione :)
ahmed

Ho modificato la domanda per evitare confusione.
Ahmed

Risposte:


15

Posso dirti come lo faccio al lavoro.

Disponiamo di un server di integrazione continua che crea, verifica, tag e genera un pacchetto con versione. Passiamo alla fase successiva se la precedente ha successo al 100%.

La nostra versione è simile alla seguente: <Versione principale>. <Versione secondaria>. <Numero build>

  • Ogni build di successo che non presenta correzioni di bug o miglioramenti delle funzionalità incrementa il numero di build.
  • Ogni build di successo con una correzione di bug completata o il miglioramento delle funzionalità aumenta la versione secondaria. Questo viene rilevato automaticamente dalla presenza di un messaggio di commit utilizzando un formato particolare. Questo messaggio di commit viene anche automaticamente inserito nei progetti ChangeLog.
  • Ogni incremento della versione principale viene eseguito manualmente quando vengono apportate modifiche non retrocompatibili, riscrivibili da zero o altri motivi fatti caso per caso.

Ma se hai una serie di miglioramenti da completare su una <Versione secondaria>, ad esempio 1.0.0. Devi fare TUTTI questi miglioramenti per poter dire "OK! Ora questa è la versione 1.0.0" o passi alla versione 1.0.0 non appena viene fatto il primo miglioramento?
Ahmed

@ahmed Ho visto l'approccio 1.4.2"questo insieme di correzioni e qualsiasi altra cosa pronta in quel momento" ... Ho anche visto 1.4.2come "Questo sarà rilasciato in questa data con tutto ciò che è pronto". Dipende dal ciclo di rilascio.

5
@ahmed Se i criteri per passare da 0.xx a 1.xx fossero il completamento di una serie di funzioni / correzioni, aumenterei solo dopo che saranno stati completati. Nota: che non lavoriamo affatto in questo modo. Non prendiamo di mira una versione e decidiamo quali correzioni ci vanno. Miriamo alle correzioni. La versione che otteniamo è puramente per il monitoraggio e l'identificazione non un obiettivo.
dietbuddha

Questo è esattamente quello che volevo sapere :)
ahmed

21

I numeri di versione sono rilevanti solo per le versioni , poiché consentono agli utenti esterni di identificare una build specifica del software. Se sei solo impegnato nello sviluppo e non nel rilasciare ogni correzione singolarmente, non preoccuparti di aumentare il numero di versione per ogni correzione. Non è rilevante per gli utenti esterni e fa perdere tempo con la contabilità delle versioni extra.


Questo vale anche per lo sviluppo Web in cui una versione può essere un semplice aggiornamento rapido per un bug minore?
Ahmed

4
Eseguire il controllo qualità prima di eseguire l'aggiornamento rapido? È una versione. Se non del prodotto completo, quindi dell'aggiornamento rapido.
Peter K.,

@ahmed In tale scenario, i numeri di versione sono spesso invisibili per l'utente e quindi privi di significato (i numeri di versione esistono principalmente per il marketing e il supporto tecnico, entrambi non validi per molte webapp). Il solo utilizzo dell'ID commit potrebbe essere sufficiente. Se insisti nell'utilizzare i numeri di versione, sì, probabilmente aumenterei il livello di patch.
amon,

Sto imparando molte cose qui: p Quindi, per riassumere: NON ho bisogno di numeri di versione poiché gli ID di commit sono sufficienti, poiché TUTTI gli utenti useranno comunque l'ultima versione.
Ahmed

2
Sebbene tutti gli utenti siano sulla stessa versione, quando si esamina il rapporto sui difetti la versione si è spostata. Hai ancora bisogno di un modo per legare il rapporto a una build specifica del software (data / ora potrebbero essere abbastanza buone).
mattnz,

2

Per le applicazioni Web distribuite in modo continuo, tendiamo a costruire numeri di build utilizzando symver in primo piano e un numero di build tailing, ovvero: 2.5.3.4328 in cui 4328 proviene dal sistema di integrazione continua. L'aspettativa generale è che i numeri cambino con passaggi deliberati ma che il numero di build sia il vero ID univoco.

Quello che sembra fare qui è catturare il giorno della distribuzione e il relativo numero di build svn:

        <div id="svnrev">
            rev 2013.10.21.1078
        </div>

Per quello che vale.


0

Le altre risposte sono già ottime, quindi le aggiungerò solo sopra. Se il tuo software non viene rilasciato e non hai davvero bisogno del controllo delle versioni pubblico (il controllo delle versioni non pubbliche è il tuo VCS), aggiungi la parola chiave " SNAPSHOT " alla fine della versione. Alcuni sistemi, specialmente nella gestione delle dipendenze, trattano le istantanee in modo diverso dalle versioni rilasciate in quanto confrontano la data di modifica delle istantanee anziché il numero di versione. Quindi se hai avuto una v. 1.0.0-SNAPSHOT dalle 8:00 in un repository di pacchetti e un downloader di dipendenze locali ha la stessa versione dalle 7:00, scaricherà quello aggiornato dal repository.

Come detto sopra, il tuo versioning privato è fornito dal tuo sistema di controllo della versione (git, svn ecc.).


0

C'è abbastanza da dire sulla teoria del versioning, ecco un altro punto di vista.

Quando devo incrementare alla versione 1.0.0?

Concentrerò la mia risposta sul cambiamento del numero di versione principale.

La mia risposta è: fondamentalmente quando sei pronto per questo. Passare da 0,9 a 1,0 è una cosa importante, perché la percezione pubblica sarà che stai passando da un prodotto beta a una versione ufficiale.

(Presumo che qui sia un prodotto commerciale di un'azienda).

Alcune domande prima di passare da 0,9 a 1,0.

La tua organizzazione ha il tempo di informare tutti i tuoi attuali clienti. Organizzare una festa. Ricevi molte richieste di supporto. Un account manager per vendere il tuo prodotto? Ecc. Ecc.

Sì, vedo il controllo delle versioni come uno strumento di marketing e se ti guardi intorno vedi che quello è fondamentalmente lo standard del settore.

La nostra azienda è passata dalla versione 2.x alla 3.0 e ha organizzato una grande festa, creato molti buzz e per questo ha ottenuto un bel po 'di nuovi clienti. A parte alcuni aggiornamenti dell'interfaccia, le differenze tra le versioni erano piuttosto lievi.

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.