Processo.md
0 → 100644
| [Home](home) | [Escopo](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Configuração](configuracao) | [Arquitetura](arquitetura) | [Banco de Dados](banco_de_dados) | |||
| :----------: | :-------------------------------: | :------------------: | :--------------: | :--------------------------: | :--------------------: | :-------------: | | |||
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. | |||
--- | |||
# ♾️ Git Workflow | |||
![gitflow](uploads/b9c96de92478b8e9e69ba3924bb3a1a1/gitflow.jpg) | |||
Para mantermos os repositórios organizados, utilizaremos o **Gitflow**, que é um modelo alternativo de ramificação do Git que consiste no uso de ramificações de recursos (feature) ou consertos (hotfix) a partir de duas branches primárias (Main e Development). | |||
- Main: A branch principal, tendo todo o código final, validado e testado; | |||
- Development: A branch de desenvolvimento (dev), onde irá organizar os trabalhos realizados. | |||
Mais sobre o [Git Workflow](https://tools.ages.pucrs.br/plataforma-praxi/plataforma-praxi-wiki/-/wikis/processo) | |||
--- | |||
### ✅ Acceptance Criteria (Critério de Aceitação) | |||
Para que uma tarefa seja considerada pronta, ela deve preencher todos requisitos que estão na task no board de tasks: | |||
# 🛠️ Padrões Utilizados | |||
#### Idioma padrão | |||
Todas as branches, commits e merge requests podem ser descritos em **português** ou **inglês**. | |||
## 🔱 Branches | |||
Cada branch relacionada a features/hotfixes será criada a partir da branch development. | |||
### Nomes: | |||
Como padrão para nomes de branches, foi decidido que usaremos o CamelCase: | |||
```sh | |||
<tipoDeItem>/<nomeDoItem> | |||
``` | |||
**Exemplo:** | |||
```sh | |||
feature/telaDeProcessamento, hotfix/alterTableBanco | |||
``` | |||
### Criação: | |||
Para garantir que o processo de desenvolvimento esteja sempre atualizado, lembre-se de executar o seguinte comando na branch development (dev) antes de criar uma branch nova: | |||
```sh | |||
git pull origin dev # Atualiza a branch dev para a versão mais recente | |||
# Depois da execução desse comando é necessário oficialmente criar a Branch, para isso, execute o seguinte comando: | |||
git checkout -b <nomeDaBranch> # Cria uma nova branch. | |||
# 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 | |||
Para que o código desenvolvido seja salvo em sua branch de maneira remota, é necessário realizar os comandos de commit e push. | |||
Para garantir que apenas o código necessário para funcionamento da tarefa será commitado, lembre-se de realizar o comando add apenas nos arquivos essenciais para a tarefa. | |||
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. | |||
Em seguida, não esqueça de dar um push para salvar remotamente. | |||
```sh | |||
git add <nomeDoArquivo> # Adiciona os arquivos alterados ou criados ao Commit | |||
git commit -m 'descrição da tarefa em português ou inglês' # Salva localmente as alterações com uma descrição obrigatória | |||
# Para commits onde teve participação de mais de um autor. Siga o exemplo abaixo: | |||
git commit -m 'descrição da tarefa em português ou inglês' | |||
Co-Authored-By: Nome Sobrenome <[email protected]> | |||
git push # Salva as alterações remotamente | |||
``` | |||
Tipos de Commit: | |||
- "`feature`", para descrever funcionalidades adicionadas; | |||
- "`fix`", para descrever soluções de problemas; | |||
- "`docs`", para identificar trabalho na documentação do projeto; | |||
- "`build`", para identificar trabalho na configuração do projeto. | |||
Exemplos de uso: | |||
- `feature: Implementation of the input button.` | |||
- `fix: Correcting the submission of information to the database.` | |||
- `docs: Describe commit patterns.` | |||
- `build: Dependencies updates.` | |||
<!-- Mais informações estão disponíveis no link: [Conventional Commits](https://www.conventionalcommits.org/pt-br/v1.0.0/). --> | |||
## 〽️ Merge Requests | |||
Um merge request (MR) deve ser criado somente quando a tarefa estiver concluída, com critérios de aceitação prontos. | |||
### Criação: | |||
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); | |||
2. Selecionar a branch de destino (branch dev); | |||
3. Selecione `Compare branches and continue`; | |||
4. Em `Title`, escreva um título que descreva a funcionalidade adicionada ou bug corrigido; | |||
5. Em `Description`, escreva uma descrição com uma breve justificativa nos arquivos que foram alterados; | |||
6. Caso a tarefa seja visual (criação de componente/tela, correção de bug) adicione um gif exemplificando o uso (se considerar necessário); | |||
7. 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); | |||
8. Em `Milestone` selecione a Sprint em que a tarefa foi realizada; | |||
9. Em `Labels` selecione qual é o tipo de tarefa que foi realizada; | |||
10. Por último, revise se os arquivos que estão sendo enviados estão corretos e clique em `Submit Merge Request`. | |||
--- | |||
# ⛄ Code Freezing | |||
É estabelecido um tempo onde se encerram os trabalhos de desenvolvimento antes de uma entrega, para garantir a qualidade da entrega, evitando possíveis bugs e problemas que possam surgir. | |||
Foi determinado às **4h da manhã da quinta-feira**, antes da entrega. | |||
--- |