... | ... | @@ -51,17 +51,17 @@ Se o time estiver usando o [Scrum](procedimentos/scrum), as tarefas (_issues_) e |
|
|
|
|
|
4. Passando para a aba **_Backlog_** do [_template_](https://docs.google.com/spreadsheets/d/1BxJa9hfIV8BW28IiuifeqtlxU7FvBqlSJdLNIEuqmMU/edit?usp=sharing), use as informações agora para criar, dentro do _milestone_ que representa o _sprint_, uma tarefa (_issue_) para cada estória dentro da seção **Backlog do _Sprint_ (atual)**, conforme os passos a seguir;
|
|
|
|
|
|
5. Na página do _milestone_ criado (se não estiver aberta, clique no menu **Issues > Milestones** e em seguida no nome do _milestone_ desejado), clique no link _New issue_ que se encontra na barra lateral direita, na seção **Issues**;
|
|
|
5. Na página do _milestone_ criado (se não estiver aberta, clique no menu **Issues > Milestones** e em seguida no nome do _milestone_ desejado), clique no link **New issue** que se encontra na barra lateral direita, na seção **Issues**;
|
|
|
|
|
|
6. Preencha **Title** com o nome/descrição da estória, **Description** com o "como demonstrar" da estória, **Labels** com a etiqueta `Backlog` e **Weight** com a estimativa de esforço da estória;
|
|
|
|
|
|
7. Caso se queira quebrar a estória em passos menores, sugere-se o uso de [listas de tarefas em MarkDown](https://docs.gitlab.com/ee/user/markdown.html#task-lists) na descrição da estória. O(A) desenvolvedor(a) pode ir marcando os passos já concluídos à medida que avança;
|
|
|
|
|
|
8. Para cada estória criada como _issue_ no [GitLab](ferramentas/gitlab), preencha o seu ID com o número da _issue_ criada e adicione um _link_ (menu **Inserir > Link** no Google Sheets) para facilitar o acesso dos(as) desenvolvedores(as) à _issue_ que representa esta estória no [GitLab](ferramentas/gitlab) a partir do _backlog_.
|
|
|
8. Para cada estória criada como _issue_ no [GitLab](ferramentas/gitlab), preencha na aba **_Backlog_** do [_template_](https://docs.google.com/spreadsheets/d/1BxJa9hfIV8BW28IiuifeqtlxU7FvBqlSJdLNIEuqmMU/edit?usp=sharing) o seu ID com o número da _issue_ criada e adicione um _link_ (menu **Inserir > Link** no Google Sheets) para facilitar o acesso dos(as) desenvolvedores(as) à _issue_ que representa esta estória no [GitLab](ferramentas/gitlab) a partir do _backlog_.
|
|
|
|
|
|
Caso não se esteja utilizando o [Scrum](procedimentos/scrum), o(a) gerente e/ou o(a) coordenador(a) do projeto devem de alguma forma criar as _issues_ no projeto.
|
|
|
|
|
|
Os demais passos descritos no GitLabES Flow, a seguir, devem ser conduzidos pelos(as) desenvolvedores(as), com supervisão do(a) gerente. Os exemplos citados fazem referência a um projeto criado inicialmente no LabES exatamente para construir e exercitar um fluxo Git para os projetos do laboratório, chamado [Exercício GitLab](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab).
|
|
|
Os demais passos descritos no GitLabES Flow, a seguir, devem ser conduzidos pelos(as) desenvolvedores(as), com supervisão do(a) gerente. Os exemplos citados fazem referência a um projeto criado inicialmente no LabES exatamente para construir e exercitar um fluxo [Git](ferramentas/git) para os projetos do laboratório, chamado [Exercício GitLab](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab).
|
|
|
|
|
|
### Obter uma cópia do repositório na sua máquina:
|
|
|
|
... | ... | @@ -85,7 +85,7 @@ Se você, no entanto, abriu a página da _issue_, pode também usar a barra late |
|
|
|
|
|
### Crie um _merge request_:
|
|
|
|
|
|
Ainda na página da tarefa _issue_ no [GitLab](ferramentas/gitlab), clique no botão **Create merge request** para começar a trabalhar na tarefa. Isso vai criar um _merge request_ em rascunho (inicia com `Draft:`) e também um ramo (_branch_) do Git a partir do número e nome da _issue_.
|
|
|
Ainda na página da tarefa _issue_ no [GitLab](ferramentas/gitlab), clique no botão **Create merge request** para começar a trabalhar na tarefa. Isso vai criar um _merge request_ em rascunho (inicia com `Draft:`) e também um ramo (_branch_) do [Git](ferramentas/git) a partir do número e nome da _issue_.
|
|
|
|
|
|
Um _merge request_ (pedido de fusão) é uma solicitação feita por um(a) desenvolvedor(a) que implementou uma estória, funcionalidade, correção, etc. (no caso, ainda vai implementar, pois está em rascunho) num ramo separado da `main`, para que este ramo seja incorporado (feita a fusão) ao ramo principal. Permite que o(a) desenvolvedor(a) trabalhe com liberdade neste ramo (i.e., nenhuma outra pessoa deve mexer neste ramo) e se preocupe com o impacto das mudanças na base de código do projeto apenas no momento da fusão.
|
|
|
|
... | ... | @@ -120,7 +120,7 @@ Após verificar se a tarefa está de fato concluída, tendo efetuado testes pra |
|
|
|
|
|
2. No quadro _Related merge requests_, procure o link para a página do _merge request_ associado à tarefa e clique no link para abrir o _merge request_;
|
|
|
|
|
|
3. Marque o _merge request_ como pronto clicando em _Mark as ready_, retirando-o do estado de rascunho (_Draft_);
|
|
|
3. Marque o _merge request_ como pronto clicando em **Mark as ready**, retirando-o do estado de rascunho (_Draft_);
|
|
|
|
|
|
4. Na barra lateral direita, abaixo de **Reviewers**, especifique quem deverá revisar seu código. O(A) gerente ou o(a) coordenador(a) do projeto podem estabelecer uma regra de quem deve revisar o código de quem (pode ser uma regra simples, ex.: um rodízio por ordem alfabética), procure saber se existe uma para poder segui-la;
|
|
|
|
... | ... | @@ -128,13 +128,15 @@ Após verificar se a tarefa está de fato concluída, tendo efetuado testes pra |
|
|
|
|
|
6. Aguarde a revisão do seu código, a ser feita pelo(a) seu(ua) colega (ver descrição dos procedimentos de revisão na próxima subseção). Vale a pena avisar ao(à) colega que você lhe atribuiu um _merge request_ para revisão via [Slack](ferramentas/slack) ou qualquer outro canal de comunicação do time.
|
|
|
|
|
|
Solicitada a revisão de um _merge request_, passe para a próxima tarefa ou verifique se há _merge requests_ dos(as0) seus(uas) colegas para revisar. Lembre-se de sair do ramo da tarefa, voltar para o `main` e atualizar:
|
|
|
Solicitada a revisão de um _merge request_, passe para a próxima tarefa ou verifique se há _merge requests_ dos(as) seus(uas) colegas para revisar. Lembre-se de sair do ramo da tarefa, voltar para o `main` e atualizar:
|
|
|
|
|
|
```
|
|
|
git checkout main
|
|
|
git pull origin
|
|
|
```
|
|
|
|
|
|
**Exemplo:** ao concluir a [tarefa #2](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab/-/issues/2) do projeto [Exercício GitLab](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab), abri o [_merge request_ !3](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab/-/merge_requests/3), marquei como concluído e atribuí a revisão ao @estevaosaleme.
|
|
|
|
|
|
### Revise o _merge request_ dos(as) colegas
|
|
|
|
|
|
Na barra que fica no topo da janela do GitLab, há um botão que te notifica quando há _merge requests_ para você revisar (selecione a opção **Review requests for you**).
|
... | ... | @@ -143,12 +145,16 @@ Ao abrir o _merge request_, você pode avaliar o código clicando em **Changes** |
|
|
|
|
|
Caso você encontre algo que precisa ser discutido ou corrigido, faça comentários para trocar mensagens com o(a) desenvolvedor(a). Quando satisfeito(a), clique no botão **Approve**.
|
|
|
|
|
|
**Exemplo:** no GitLab Flow atual, @estevaosaleme teria apenas aprovado o [_merge request_ !3](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab/-/merge_requests/3) do projeto [Exercício GitLab](https://gitlab.labes.inf.ufes.br/labes/exercicio-gitlab). Porém, na época o fluxo era um pouco diferente (vide lições aprendidas, a seguir) e @estevaosaleme fez a fusão do _merge request_ diretamente, mesmo sendo o revisor.
|
|
|
|
|
|
### Faça a junção (_merge_) do seu código após aprovação
|
|
|
|
|
|
Uma vez que o(a) revisor(a) do seu código tenha ficado satisfeito(a) e o tenha aprovado, você pode enfim fazer a fusão (_merge_) do seu código (por meio do _merge request_) na base de código principal do sistema. Para isso, abra a página do seu _merge request_ aprovado e clique no botão **Merge**.
|
|
|
|
|
|
Caso existam conflitos com o código do ramo principal (`main`), será necessário resolvê-los (o que está fora do escopo desta explicação).
|
|
|
|
|
|
Fazer a fusão de um _merge request_ exclui o ramo (_branch_) criado inicialmente, pois o mesmo não é mais necessário.
|
|
|
|
|
|
|
|
|
|
|
|
## Lições aprendidas a partir do uso no LabES
|
... | ... | |