Repositório para o desenvolvimento do Projeto Final de engenharia para a IBM.
O projeto consiste em uma ferramenta de rotulagem para os classificadores NLC e VR da IBM Cloud.
Esse repositório contém o WebApp e a Business Layer da ferramenta, os dois serviços da solução, nas pastas frontend
e backend
, respectivamente.
O guia de utilização do projeto está descrito em cada serviço separadamente.
- Gustavo Efeiche
- Lucas Astur
- Marcelo Andrade
- Pedro Cunial
Os serviços frontend e backend são desenvolvidos em branches separados, e ao final de cada release do projeto, anexadas ao branch master
.
Quando for contribuir para um projeto específico, use a seguinte convenção de nomes para criação de branches:
- bug - consertar uma issue
- feat - nova feature
- hotfix - uma breve mudança no código
- junk - experimentos (nunca vão ser anexadas)
O nome do branch deve ser o nome de um dos itens acima, seguido do serviço em que está trabalhando (frontend
ou backend
) e, por fim, uma breve descrição do que está fazendo.
Exemplos:
- bug/frontend/image-not-showing
- hotfix/frontend/remove-comments
- bug/backend/nlc-breaks-empty-list
- feat/backend/vr-classifier
- feat/frontend/manage-projects
Ao final da contribuição, crie um Pull Request para o branch do respectivo serviço. Esse Pull Request deve ser aceito no mínimo pelo(s) membro(s) que está(ão) trabalhando no mesmo serviço durante a sprint. Após o Pull Request ser aceito, remova o branch criado, deletando-o na seção branches e na cópia local do repositório, utilizando $ git branch -D <branch>
.
Ao final de uma sprint ou release da ferramenta, os dois branches frontend
e backend
farão um Pull Request para o branch master
com as mudanças da sprint. Esses dois Pull Requests devem ser revisados e aceitos por todos os membros do grupo.
Caso seja feita uma nova feature que envolva uma mudança de protocolo de comunicação entre o frontend
e o backend
, liste essa nova comunicação na descrição do Pull Request. O mesmo só deve ser aceito quando houver um Pull Request condizente com a feature no outro serviço também.
Nesse momento, será criada uma tag para o projeto, marcando uma nova release.
Para facilitar o trabalho nos serviços de frontend
e backend
na mesma máquina, deve ser criada, localmente, uma nova worktree para o repositório. Este link explica o conceito de worktrees. Esta técnica permite ao programador trabalhar em dois branches ao mesmo tempo, evitando ter de clonar duas vezes o repositório.
Estando na raíz do repositório, faça checkout no branch frontend
utilizando $ git checkout frontend
. Em seguida, crie a nova worktree com $ git worktree add ../pfe_frontend
. Será criada uma nova pasta, com nome pfe_frontend/
, do "lado de fora" do repositório. Esta nova pasta representa a nova worktree. Ela é uma cópia exata do repositório original, porém está conectada a ele. Nesta nova pasta é possível trabalhar como se estivesse no reposítório original, trocando de branches, editando e commitando arquivos, etc. Mudanças realizadas na nova pasta serão refletidas na pasta original. Portanto, para organização da equipe, a nova pasta servirá para trabalhos no branch frontend
, enquanto a pasta contendo a cópia original será utilizada para trabalhos no branch backend
. Recomenda-se renomear a pasta com a cópia original do repositório para pfe_backend
, para fácil identificação da worktree a ser utilizada.
Modificando o frontend
$ cd pfe_frontend
$ git checkout frontend
$ git pull origin frontend
$ git checkout -b feat/frontend/example-feature
...modificações no frontend...
$ git add <modified_files>
$ git commit -m "..."
$ git push -u origin feat/frontend/example-feature
...Pull Request deste novo branch para o branch remoto frontend...
Modificando o backend
$ cd pfe_backend
$ git checkout backend
$ git pull origin backend
$ git checkout -b feat/backend/example-feature
...modificações no backend...
$ git add <modified_files>
$ git commit -m "..."
$ git push -u origin feat/backend/example-feature
...Pull Request deste novo branch para o branch remoto backend...