Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • 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
  • Veiculos Via Montadora
  • WikiWiki
  • Wiki
  • Processos

Last edited by gabriel.stundner Jun 19, 2023
Page history

Processos

Documentação do negócio

Documentação técnica


\mathbb{PROCESSO \space DE \space DESENVOLVIMENTO}


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

Sumário

  • Git Workflow
  • Code Freezing
  • Definition of Ready
  • Definition of Done

Git Workflow

Git Workflow é um conjunto de práticas e padrões que as equipes de desenvolvimento usam para colaborar em projetos de software usando o sistema de controle de versão Git.

O Git é uma ferramenta poderosa que permite que os desenvolvedores trabalhem juntos em um mesmo código-fonte sem causar conflitos ou perder trabalho. O Git workflow estabelece uma estrutura para como as alterações no código são gerenciadas, revisadas e implementadas, a fim de garantir que o projeto progrida de maneira organizada e eficiente.

Imagem

Na imagem acima, é possível observar que um repositório pode ser organizado em galhos, ou ‘branches’. Existe o galho principal ‘master’ e o galho de desenvolvimento ‘develop’, sendo possível criar outros galhos que implementam funcionalidades novas no sistema a partir de ‘develop’. As alterações feitas em outras branches eventualmente são aprovadas e vão para ‘develop’, e, por fim, para ‘master’.

Fluxo das Branches

Para este projeto, foi-se definido que teremos 2 branches principais, main e develop.

  • main: Essa é a branch principal que armazenará o código de cada entrega por Sprint, nessa branch é estritamente necessário que tenhamos o código da aplicação funcionando sem erros, já testado e validado.

  • develop: Deve-se sempre criar novas branches a partir da develop. Ela será nosso ambiente de desenvolvimento.

Nomes das Branches

Para padronizar os nomes das branches, deve-se nomeá-las da seguinte forma:

<UserStory>-<Descrição>

Como por exemplo:

US04-add-login

Semântica dos Commits

Para padronizarmos a descrição dos commits, será utilizado um padrão semântico a fim de facilitar o compreendimento de cada commit. Os padrões serão os seguintes:

  • feat: Tratam adições de novas funcionalidades ou de quaisquer outras novas implantações ao código;
  • fix: Essencialmente definem o tratamento de correções de bugs;
  • docs: referem-se a inclusão ou alteração somente de arquivos de documentação;
  • test: Adicionando testes ausentes ou corrigindo testes existentes nos processos de testes automatizados (TDD);
  • build: Alterações que afetam o sistema de construção ou dependências externas (escopos de exemplo: gulp, broccoli, npm),
  • ci: Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs);
  • perf: Uma alteração de código que melhora o desempenho;
  • refactor: Tipo utilizado em quaisquer mudanças que sejam executados no código, porém não alterem a funcionalidade final da tarefa impactada;
  • style: Alterações referentes a formatações na apresentação do código que não afetam o significado do código, como por exemplo: espaço em branco, formatação, ponto e vírgula ausente etc.);
  • chore: Atualização de tarefas que não ocasionam alteração no código de produção, mas mudanças de ferramentas, mudanças de configuração e bibliotecas que realmente não entram em produção;
  • revert Reverter mudanças;

Exemplo da descrição commit:

fix: login error -> qualquer coisa aqui

https://platform.uno/docs/articles/uno-development/git-conventional-commits.html

Criando uma Branch

Para criar uma branch e começar a trabalhar nela, 3 comandos git serão essenciais, vejamos abaixo quais são eles:

git checkout develop # Vai para a branch ‘develop’.
git pull # Puxa as modificações remotas.
git checkout -b <NOME_DA_SUA_BRANCH_AQUI> # Cria uma nova branch.

Utilizando os comandos acima, você estará indo para a branch ‘develop’, puxando todas as modificações remotas e criando uma nova branch a partir de ‘develop’. Você então passará a trabalhar na nova branch criada.


Code freezing

Code freezing é uma data para congelamento de entrada de código em produção. Após essa data, nenhum merge request será mais aceito. A única coisa que pode passar por esse bloqueio são hotfixes para erros em produção.


Definition of Ready

Para que uma tarefa seja considerada pronta para desenvolvimento, ela deve seguir as seguintes condições:

  • Qualquer tarefa da qual ela tenha dependência.
  • O ambiente de desenvolvimento local deve estar devidamente setado.

Definition of Done

Para que uma tarefa seja considerada concluída ela deve seguir as seguintes condições:

  • O merge request da branch em que a tarefa foi desenvolvida para a develop deve ter sido concluída.
  • O código deve ter sido revisado e aprovado.
  • O código deve ter testes unitários e ter sido testado manualmente.
  • Qualquer documentação necessária deve ter sido escrita (payloads, endpoints, ...).

Clone repository
  • Home
Documentação do negócio
  • Controle de Sprints
  • Requisitos de negócio(US)
  • Processo de desenvolvimento
  • Gerênciamento do projeto
  • Horários Disponíveis
  • Squads
Documentação técnica
  • Arquitetura
  • Mockups
  • Banco de dados
  • Instalação