dev:release-management
This is an old revision of the document!
Sviluppo e gestione release
Questo documento riassume la gestione dello sviluppo per i software beFair. Il documento si riferisce al repository cosiddetto “origin” cui tutti i contributori al codice fanno riferimento per portare avanti lo sviluppo.
Se si desidera conoscere il workflow di sviluppo beFair, basato sul modello a fork, si consulti il documento git-forking-workflow
- il ramo principale di sviluppo è il
master
- ogni release rilasciata viene taggata con
rel-$ver$extra
dove:- $ver è il numero di versione seguendo http://semver.org (MAJOR.MINOR.PATCH)
- $extra può essere
-dev
,-beta
,-rcX
, o omesso in caso di releasestable
- per i bugfix rilasciati su una specifica versione stabile, verrà creato un branch dalla release opportuna con nome
rel-$ver-fix
. Al rilascio a sua volta verrà assegnata una release specifica con MINOR version + 1 e verrà quindi elminato il branch-fix
; - ogni feature che lo necessita può essere sviluppata in un branch di nome
feat-$featname
dove $featname è il nome della feature; una volta integrato nel master, il branch deve essere eliminato;
Proposta di warp10
Sul repo git di GF (origin) ci sono due branch principali:
- origin/prod è il branch dove HEAD corrisponde sempre a codice pronto per il deploy in produzione. In altre parole, ogni commit ha superato tutti i test ed è deployable in produzione. In caso di problemi, si può rollbackare al commit immediatamente precedente.
- Da origin/prod si brancha solo origin/dev.
- Su origin/prod si mergia solo da origin/dev
- Convenzione di naming per i commit: <numero_di_versione>, con l'aggiunta di una tag con lo stesso nome. Usiamo semver.org come standard per il versionamento
- origin/dev è il branch principale di sviluppo dove vengono mergiati tutti gli altri branch descritti sotto. E' anche usato per committare eventuali piccole modifiche necessarie per la release. In altre parole, è un integration branch ed anche release finalization branch.
- Da origin/dev si branchano tutti i branch descritti sotto
- Da origin/dev si mergia da tutti gli altri branch, escluso origin/prod
Ogni sviluppatore clona sulla sua macchina i due branch principali di origin. In base alle necessità, può creare branch secondo lo schema seguente:
- Feature branch: è dove si sviluppa una nuova feature. Tipicamente esiste solo sulla macchina dello sviluppatore, ma si può pushare sul repo per lavoro di team o se serve una review del codice.
- Si brancha da origin/dev
- Si mergia su origin/dev usando sempre e soltanto –no-ff (lo so, lo so, ma qui ha molti più pro che contro)
- Convenzione di naming: feature-<nome_descrittivo_della_feature>
- Bugfix branch: identici ai feature branch, ma destinati a fixare bug di codice non ancora mergiato in origin/prod
- Convenzione di naming: bugfix-<numero_bug>
- Hotfix branch: è dove si fixano bug severi del codice già andato in produzione.
- Si brancha da origin/prod
- Si mergia su origin/prod e origin/dev con –no-ff
- Convenzione di naming: hotfix-<versione> con il field PATCH aumentato di 1
dev/release-management.1424081416.txt.gz · Last modified: 2015/02/16 10:10 by warp10