branches; • Estratégia adotada pela F.biz; • Processo de criação e manutenção dos branches; • Como acontecerá a implementação; • Um pouco de código; • Próximos passos; 01 F.biz | COMPANY CONFIDENTIAL
unidade no time sobre “quando” e “como” criar um branch; • flexibilidade: mudança durante o desenvolvimento gera problema na administração do repositório; • comunicação: equipe não sabe da existência ou objetivo dos branches. 02 F.biz | COMPANY CONFIDENTIAL
Aumenta chances de erros impeditivos causados por outros desenvolvedores; • Engessa a atualização de código em produção; • Esse é o pior modelo e mesmo assim a maioria dos projetos estão sem branches.
é lançado; 2. alguém faz uma nova implementação no m a s t e r; 3. repositório perde sincronia com produção; 4. bug de produção vai dar mais trabalho para implementar.
branches, criado pelo Vincent Driessen: • post na nvie.com - http://goo.gl/GDaF • tutorial na Atlassian - http://goo.gl/1cVnDG A F.biz utiliza uma variação do Gitflow, adaptado ao dia-a- dia da agência. 03 F.biz | COMPANY CONFIDENTIAL
• branch m a s t e r deve ser um espelho de produção; • branch w o r k i n g contém o desenvolvimento da versão atual; • é o espelho de “homologação”, apenas código pronto para teste da área de Projetos; • nome “master” e “working” são reservados; • ambos apenas recebem operações de merge. 04 F.biz | COMPANY CONFIDENTIAL
em branches próprios (“feature branches”); • nomenclatura do branch segue regra 0 - 9 a - z - _: • - para separação de palavras; • _ para indicar branch pai no prefixo; • na finalização (testado e integrado) reintegra com w o r k i n g; • excluído apenas quando reintegra com m a s t e r; 05 F.biz | COMPANY CONFIDENTIAL
produção: • acontecem em “hotfix branches”; • criados a partir de m a s t e r e recebem prefixo m a s t e r _; • após teste e aprovação, são reintegradas no m a s t e r e w o r k i n g; 06 F.biz | COMPANY CONFIDENTIAL
diversos working branches: • w o r k i n g - aceite.fbiz.com.br/cliente • w o r k i n g - f a s e 2 - aceite.fbiz.com.br/cliente-fase2 Todos os branches que não forem w o r k i n g * ou m a s t e r * são criados a partir do “working” principal. 07 F.biz | COMPANY CONFIDENTIAL
indica o seu criador: • feature em casos de múltiplos “working”, apenas as variações: • w o r k i n g - f a s e 2 ← w o r k i n g - f a s e 2 _ q u i z • branch que nasce de uma feature: • q u i z ← q u i z _ r e f a c t o r y e w o r k i n g - f a s e 2 _ q u i z ← w o r k i n g - f a s e 2 _ q u i z _ r e f a c t o r y • hot-fix sempre nasce do “master”: • m a s t e r _ b u g - q u i z 08 F.biz | COMPANY CONFIDENTIAL
for atualizado: • major: reskin, mudança de estrutura, novo site; • minor: novas features, nova mecânica ou área, mudança de mecânica ou área, etc; • fix: ajustes de erros em código ou conteúdo. 09 F.biz | COMPANY CONFIDENTIAL
foi feito naquela publicação: • 1 . 0 . 0: primeira versão em produção; • 1 . 0 . 1: lay-out quebrado no quiz; • 1 . 1 . 0: página de vencedores; 10 F.biz | COMPANY CONFIDENTIAL
Na criação de um “feature branch”, atualizar com nome e objetivo; • Antes de criar, verifique se já está sendo trabalhado. • Na reintegração com m a s t e r, remover da wiki; • Teremos um changelog com todas as tags de publicação apontando os cards do Trello; 11 F.biz | COMPANY CONFIDENTIAL
- substituto ao e-mail, integrações com Bitbucket, Trello, HTTP Post, etc; • http://appear.in/ - video-conferências dinâmicas com screenshare; • https://ngrok.com/ - túnel entre sua máquina e internet; 12 F.biz | COMPANY CONFIDENTIAL
disseminar as práticas; • No início, coordenadores discutirão sobre branches; • branch virá sugerido no card do Trello. • No Trello, teremos uma checklist para publicação: • teste, remoção de branches, criação de tag, atualização da wiki, etc. 13 F.biz | COMPANY CONFIDENTIAL
na wiki se o branch já existe ou crie um novo. Branch q u i z existe remoto: $ g i t c h e c k o u t q u i z Branch q u i z precisa ser criado “do zero”: $ g i t c h e c k o u t - b q u i z w o r k i n g 14 F.biz | COMPANY CONFIDENTIAL
$ g i t p u s h o r i g i n q u i z Quando o w o r k i n g for atualizado: $ ( q u i z ) g i t p u l l o r i g i n w o r k i n g 15 F.biz | COMPANY CONFIDENTIAL
finalizado e testado (pronto para homologação): $ ( q u i z ) g i t c o w o r k i n g $ ( w o r k i n g ) g i t m e r g e q u i z - - n o - f f • Opção - - n o - f f garante que não haverá “fast-forwarding” e que o branch seja indicado no histórico como uma linha separada de desenvolvimento. 0 1 . 0 2 . 16 F.biz | COMPANY CONFIDENTIAL
g i t b r a n c h - d q u i z $ g i t p u s h o r i g i n : q u i z Atualizar o código remoto: $ g i t p u s h o r i g i n w o r k i n g 0 1 . 0 2 . 17 F.biz | COMPANY CONFIDENTIAL
m a s t e r ) g i t t a g - a " 1 . 0 . 0 " - m " p r i m e i r a v e r s ã o e m p r o d u ç ã o " Enviando as tags para produção: $ g i t p u s h o r i g i n - - t a g s 18 F.biz | COMPANY CONFIDENTIAL
w o r k i n g é homologação; • Apenas operações de merge em m a s t e r e w o r k i n g; • w o r k i n g apenas com - - n o - f f; • “Feature branches” a partir de w o r k i n g; • Integrações completas no mesmo branch, ex.: q u i z; • Inicialmente - sugestão de branches no pedido do job; 19 F.biz | COMPANY CONFIDENTIAL
finalizados; • Atualizar wiki na criação e exclusão de branches; • Criação de tag (major.minor.fix) quando publicar; • Atualização no changelog com o link do Trello; • Estrutura deve ser aplicada a partir de agora. 20 F.biz | COMPANY CONFIDENTIAL
de desenvolvimento; • Maior controle e flexibilidade — redução de impacto na mudança de plano / linha de desenvolvimento; • Criação de histórico dos deploys; • Histórico mais organizado — primeiro passo para um code-review eficaz; 21 F.biz | COMPANY CONFIDENTIAL
GIT; • Utilização do slack por projeto + integração bitbucket; • Code-review interno e externo com pull requests; • Validação inicial automatizada; • Utilização de issue tracker para QA de desenvolvimento; 22 F.biz | COMPANY CONFIDENTIAL