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
This is an old version of this page. You can view the most recent version or browse the history.

processo

Home

Escopo e Cronograma

Processo

Design/Mockups

Configuração

Arquitetura

Código

BD

Qualidade

Utilização

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