Hai detto che stai utilizzando il controllo delle versioni semantico, quindi ti consigliamo di guardare le specifiche di versione semantica su link :
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
e un po 'più in basso:
A pre-release version MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch version. Identifiers MUST comprise only ASCII alphanumerics and hyphen [0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric identifiers MUST NOT include leading zeroes. Pre-release versions have a lower precedence than the associated normal version. A pre-release version indicates that the version is unstable and might not satisfy the intended compatibility requirements as denoted by its associated normal version. Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.
Quindi se rilasci una beta vera della tua versione 1.0, dovresti taggarla 1.0.0-beta
(o simile secondo le specifiche). Se stai per avere più versioni beta mentre correggi bug, allora 1.0.0-beta.1
, 1.0.0-beta.2
, ecc.
Quando si aggiungono funzionalità compatibili con le versioni precedenti, è necessario incrementare il numero MINORE. Se si apportano molte modifiche interne che potrebbero causare cambiamenti irreversibili altrove nell'applicazione, allora si tratta di una modifica MAJOR. Se stai apportando modifiche meno evidenti (ad esempio, solo il aggiungi codice e non cambia il comportamento del codice esistente), allora questa sarebbe una modifica MINORE. Se hai un'applicazione pesante per l'interfaccia utente e cambi completamente quell'interfaccia utente, direi anche che è una modifica MAJOR (l'interfaccia utente può essere considerata l'API per gli utenti finali).
Per quanto riguarda come aggiungere indicatori al repository git, ti suggerisco di creare prima un ramo 1.x
. Ciò ti consentirà di seguire facilmente tutto nella versione 1, consentendo al contempo lo sviluppo continuo della versione 2 su master. Quindi tagghi la versione beta con un tag 1.0.0-beta
(o -beta.1
se ci saranno più beta). Una volta risolti tutti i bug da correggere, tagga la versione 1.0.0
effettiva. Quindi tagga ogni versione se necessario.
Puoi dare un'occhiata ad alcuni workflow provati e veri per git come git flow e flusso github per idee su come impostare il flusso di lavoro in corso.
Inoltre, se vuoi un po 'più di contesto sulla versione semantica dei programmi senza un'API, questa risposta va in una certa profondità.