Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • I Idoso Mais Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • IDOSO Mais
  • Idoso Mais Wiki
  • Wiki
  • processo

Last edited by Lucas Dimer Justo Oct 19, 2022
Page history

processo

Home Escopo e Cronograma Processo Design/Mockups Configuração Arquitetura Código BD Qualidade

Processo de Desenvolvimento

Descrição

Esta seção é dedicada a apresentar o processo de desenvolvimento do time, junto dela serão apresentados documentos referentes a maneira que o time se organizou e trabalha.

Sumário

  • GitFlow
  • Matriz de Responsabilidade
  • Plano de Comunicação
  • Plano de Riscos

GitFlow

O que é?

GitFlow é o processo de contribuição para os projetos utilizando a ferramenta do Git. As definições presentes neste doc se aplicam tanto para os repositórios de frontend quando para o repositório de backend.

gitflowBranches

Branches protegidas:

As seguintes branches nunca devem ser apagadas e possuem regras específicas:

main

Branch principal do projeto. Esta branch deve sempre representar o código rodando no ambiente de produção. A branch é protegida e só pode ser alterada a partir de Merge Requests vindo diretamente da branch develop OU de branches de hotfix. Apenas AGES III e IV podem fazer merge dos MRs e realizar alterações nessa branch.

Quando é feito merge de um MR para essa branch, a Pipeline de CI é disparada para checagem.

dev

Branch default para desenvolvimento. Esta deve ser a branch de partida de todas as outras branches do projeto, exceto hotfix. Essa branch é protegida para modificação que não seja através de Merge Requests. Qualquer AGES pode criar um MR pra ela e fazer merge desse MR.

Quando é feito merge de um MR para essa branch, a Pipeline de CI é disparada para checagem e em caso de sucesso o deploy é feito automaticamente para o ambiente de DEV.

Branches não protegidas (feature/fix/chore/Hotfix):

Feature: branches para implementação de funcionalidades novas. O padrão de nomenclatura é feature/ onde representa uma breve descrição do que está sendo implementado nesta branch. Exemplo: feature/tela-cadastro.

Fix: branches para correção de bugs. O padrão de nomenclatura é fix/ onde representa uma breve descrição do que está sendo corrigido nessa branch. Exemplo: fix/cor-errada-no-login.

Chore: branches para configuração. O padrão de nomenclatura é chore/ onde representa uma breve descrição do que está sendo configurado nessa branch. Exemplo: chore*/pipeline-ci*.

MRs dessas branches devem sempre ser abertos para develop.

Hotfix: é um padrão específico para "furar" o fluxo de desenvolvimento e aplicar uma correção diretamente em um ambiente mais alto (no caso do projeto, produção). Uma branch hotfix segue o padrão hotfix/ onde representa uma breve descrição do que está sendo corrigido nessa branch.

Devem ser abertos 2 MRs: um para main e um para develop.

Como posso criar uma branch?

Para garantir que o processo de desenvolvimento esteja sempre atualizado, lembre-se de executar o seguinte comando na branch dev antes de criar uma branch nova:

git pull origin dev
Depois da execução desse comando é necessário oficialmente criar a Branch, para isso, execute o seguinte comando:
git checkout -b <nomeDaBranch>
Assim que criar a branch, é necessário fazer um \`push\`para garantir que a mesma estará remota:
git push --set-upstream origin <nomeDaBranch>
Pronto! Agora você já pode começar a programar na sua Branch.

Commits

Salvando Localmente

Para garantir que apenas o código necessário para funcionamento da tarefa lembre-se de realizar o comando add apenas nos arquivos essenciais para a tarefa:

git add <nomeDoArquivo>
Depois de adicionar todos os arquivos que deseja salvar, execute o commando de commit com uma mensagem curta que represente o que foi trabalhado nesses arquivos adicionados:
git commit -m 'descrição da tarefa em português'
O padrão de commits é que as mensagens devem ser em Português.

Caso tenha interesse, há um padrão de commits similar a nomenclatura de branches escolhida chamado conventional commits mas isso é apenas uma sugestão pra quem tiver interesse em conhecer.

Não hesite em realizar vários commits, assim podemos ter docuemntado e salvo vários estados do desenvolvimento

Salvando Remotamente

Depois de finalizar o desenvolvimento, envie todos os commits da sua máquina para o servidor remoto. Para isso depois de realizar as etapas de salvamento local, salve remotamente com o comando push:

git push
### Merge Request

Depois de uma task ter sido desenvolvida e estiver pronta de acordo com os critérios de aceitação, é necessário que a mesma seja enviada para a branch de desenvolvimento. Para isso é necessário abrir um Merge Request pela platafora GitLab:

Criando o Merge Request

A criação pode ser realizada na seção Merge Requests do repositório em que a branch foi criada. Clicando no botão New Merge Request siga os seguintes passos:

  1. Selecionar a branch de origem (sua branch de desenvolvimento);
    • Selecionar a branch de destino (branch dev);

    • Selecione Compare branches and continue

    • Em Title, escreva um título que descreva a funcionalidade adicionada ou bug corrigido;

    • Em Description, utilize o padrão abaixo:

      ### Issue number:
      
      Adicione aqui uma referência ao número do issue relacionado a esse MR (exemplo: [#11](https://www.linkDaIsue.com))
      
      ### Descrição:
      
      Uma lista das mudanças relacionadas a esse MR
      
      - Mudanca 1
      - Mudanca 2
      
      ### Checklist:
      
      * [ ] Não deixou string literais no código
      * [ ] Utilizou as variáveis padronizadas do design system (cor, títulos/fontes, imagens e etc)
      * [ ] Não deixou nenhum código comentado
      
      ### Foto da pipeline com status verde
    • Caso a tarefa seja visual (criação de componente/tela, correção de bug) adicione um gif exemplificando o uso (se considerar necessário);

    • Na seção Assignee, selecione Assign to me para que fique registrado quem foi o responsável pelo desenvolvimento daquela tarefa (a pessoa selecionada será chamada caso o revisor tenha dúvidas sobre a tarefa);

    • Em Milestone selecione a Sprint em que a tarefa foi realizada;

    • Em Labelsselecione qual é o tipo de tarefa que foi realizada;

    • Por último, revise se os arquivos que estão sendo enviados estão corretos e clique em Submit Merge Request.

Revisando o Merge Request

Todo MR deve ter pelo menos duas aprovações, sendo uma delas obrigatoriamente de um AGES III. Ao criar o MR, adicione como revisor o AGES III da sua Squad (ou um outro AGES III com contexto caso o PR esteja sendo aberto por um AGES III).

O merge deve ser feito com a estratégia squash-commits e as branches devem ser excluídas após o merge para a branch de destino.

Matriz de Responsabilidade

Essa matriz foi desenvolvida para ajudar os membros do time a saberem seus papéis na dentro do processo de desenvolvimento.

Atividades AGES I AGES II AGES III AGES IV
Alimentar a wiki
Definir squads
Definir marcos da sprint
Quebra de tasks
Desenvolvimento
Code review
Executar testes funcionais
Deploy da aplicação
Apresentação da review
  • I: Deve ser informado
  • C: Deve ser consultado
  • R: Responsável
  • A: Aprova

Plano de Comunicação

Evento Descrição Responsável Envolvidos Frequência Duração
Kick Off (Exemplo) Primeiro encontro entre o time e os stakeholders do projeto. Nesse encontro são apresentados os principais itens do projeto e a ideia geral. Também são realizados questionamentos sobre o que foi apresentado, com a finalidade de ajudar nas definições dos requisitos do projeto em conjunto com o cliente. (Exemplo) Cliente(s) (Exemplo) AGES I, II, III, IV e Cliente(s) (Exemplo) Uma vez (início do projeto) (Exemplo) 1 hora - 1 hora e 30 minutos (Exemplo)
TBD... TBD... TBD... TBD... TBD... TBD...

Plano de Riscos

Risco Prevenção Contingência Estratégia
Atingir limite de uso gratuito da AWS (Exemplo) Utilizar servidores apenas para validação, desligando-os quando não utilizados (Exemplo) Alterar ambiente para outra conta de usuário (Exemplo) Transferir (Exemplo)
TBD... TBD... TBD... TBD...
Clone repository
  • Banco_de_Dados
  • Gerência
  • Horários disponíveis
  • Instalação
  • Retro
  • Utilizando a wiki
    • adicionando imagens
    • escrevendo em markdown
    • wiki no editor de texto
  • arquitetura
  • codigo
  • configuracao
  • design_mockups
  • escopo
  • estudos
  • gerencia
View All Pages