| Numbered Headings | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Estrutura de DiretoriosO controlde de versoes de sistemas e seus respectivos codigos-fonte é realizado pelo software GIT, seguindo a estrutura braches model onde temos branches prefixados para cada etapa do desenvolvimento de um software, conforme: master/: Contem, o código que esta atualmente em produção, sempre irá receber o código dos branches de releases quando forem homologados, irá originar branchs de hotfix para correção de Bugs de Produção quando necessário. Somente pessoas do grupo xx-qa tem permissão de escrever neste branch. development/: Branch de integração do desenvolvimento, a partir dele branches de features serão gerados e irá receber os códigos dos braches das features quando o desenvolvimento das mesmas forem entregues (via Pull Request). Será utilizado pelo analista para validação do desenvolvimento de cada feature entregue pelos desenvolvedores de forma integrada sendo a ultima etapa de validação antes do inicio da homologação. Artefatos gerados neste branch serão publicados no ambiente de desenvolvimento manualmente ou de forma automática. Somente pessoas do grupo xx-qa tem permissão de escrever neste branch. feature/: Branch criado exclusivamente para o desenvolvimento de uma feature ou melhoria. Geralmente ele é criado a partir do branch de desenvolvimento (developement) e ao término do trabalho o código é retornado para o branch "developement" (via Pull Request) para ser validado. Este branch só será deletado quando a feature equivalente for para homologação em um determinado branch de release (via Pull Request), ação esta que pode ser executada pela interface de aceite do Pull Request do Stash ou via comando de exclusão de branch do GIT. Somente pessoas do grupo xx-developers tem permissão de escrever neste branch. release/: Branch utilizado para homologação de uma determinada versão do software ou projeto. Normalmente este branch nasce a partir do master (produção) e recebe, via merge, código dos branches das features e melhorias a serem homologadas na versão correspondente. Durante a homologação para cada Bug encontrado um novo branch de prefixo Bug deverá ser gerado para o desenvolvedor aplicar a correção, após a correção ele deve solicitar a validação/homologação via Pull Request para o branch de release da versão. Após a versão do branch de release ser homologada o código fonte deve sofre uma TAG e um merge deve ser feito obrigatóriamente para os branchs: development e master e opcionalmente para os branchs de releases abertos se for necessário. Somente pessoas do grupo xx-qa tem permissão de escrever neste branch. bugfix/: Branch utilizado para corrigir Bugs encontrados durante a homologação de uma versão dentro de branch de release. Este branch sempre será gerado a partir de um branch de release e após a correção ser desenvolvida o seu código deverá voltar para o branch de release (via Pull Request) para validação e assim sucessivamente até a homologação do Bug. Somente pessoas do grupo xx-developers tem permissão de escrever neste branch. hotfix/: Branch utilizado para corrigir um Bug do código da versão que esta em produção (branch master). Após a correção o hotfix deve sofrer merge em um branch de release (versão) já existem ou em um novo branch de release gerado especificamente para homologação do hotfix a partir do branch master (produção). Somente pessoas do grupo xx-developers tem permissão de escrever neste branch. tags/: Sao snapshots do projeto, e uma vez criados nao devem ser alterados. Somente podem escrever neste diretoriocriar tags usuarios do grupo da qualidade (QA). Por padraopadrão, as tags seguem o formato de nome r.aaaa.mm.dd - versao, onde "r" indica o prefixo de release, "aaaa.mm.dd" representa a data de criacao da tag e "versao" um valor representando a versão logica do projeto frente ao gerenciamento do mesmo; por exemplo "tags/r.20014.05.01 - 1.0.0". Fluxo dePromocaoPromoção deCodigoCódigo-fonte de Desenvolvimento ateProducaoProduçãoA figura abaixo mostra o fluxo de desenvolvimento com branches por tarefas para promoção de artefatos em linha de desenvolvimento, passando por homologação de releases ate entrada em produção e, eventual ajuste corretivo pós-produção. Caso de Uso
Premissas
Fluxo Principal
REFERENCIAShttp://svnbook.red-bean.com/en/1.0/ch04s04.html#svn-ch-4-sect-4.1 http://daptivate.com/archive/2008/08/28/subversion-best-practices-for-web-applications.aspx http://svn.collab.net/repos/svn/trunk/doc/user/svn-best-practices.html (leitura obrigatoria) https://collaborate.txcorp.com/collaborate/support/best-practices-branching-tagging-and-releasing-using-subversion/ (interessante abordagem para integracao continua) http://svnbook.red-bean.com/en/1.0/ch04s04.html#svn-ch-4-sect-4.1 (dicas de uso do SVN, com enfase para ressurreicao de artefatos) |
