Política de Uso do Repositório de Código Fonte do TerraMA²
Autor: Gilberto Ribeiro de Queiroz
Data: 19/08/2015
Resumo: Este documento explica como os desenvolvedores devem criar forks do repositório original do TerraMA² e configurar seus repositórios locais para mantê-los em sincronia com o original, bem como submeter pedidos para incorporação de modificações no repositório original.
O repositório oficial do TerraMA² encontra-se disponível no seguinte endereço: https://github.com/TerraMA2/terrama2.
Este repositório não deve ser utilizado diretamente, ou seja, deve-se criar forks a partir dele e submeter pull requests.
Em todo caso, se você quiser clonar este repositório oficial, poderá utilizar o git em linha de comando da seguinte forma:
git clone https://github.com/TerraMA2/terrama2.git .
GitHub? e a Organização TerraMA²
Atualmente a organização TerraMA² criada no GitHub possui três times:
- Owners: os coordenadores técnicos do projeto possuem acesso irrestrito à organização, criação de repositórios e administração de integrantes dos times.
- Managers: o gerente de desenvolvimento e líder de equipe possuem acesso de administração do repositório principal do TerraMA².
- Developers: o time de desenvolvedores do TerraMA² possui acesso de escrita ao repositório principal do TerraMA².
Os desenvolvedores são encorajados a utilizar o recurso de criação de forks do repositório oficial do TerraMA². Desta forma, é possível que um desenvolvedor seja capaz de realizar modificações, correções e experimentos sem causar inconsistências no repositório oficial. Assim, modificações devem ser submetidas como pull requests.
Observação: No TerraMA² será empregado um sistema de peer-review do código fonte, cuja dinâmica será estabelecida com a equipe de desenvolvimento.
Fazendo o Fork do Repositório Principal
Na janela do GitHub, navegue até o repositório do TerraMA².
O botão de Fork se encontra no canto superior direito da página. Basta clicar nesta opção e você terá feito um fork do repositório original.
Configurando seu Fork para Mantê-lo Sincronizado com o Repositório Original
Crie uma cópia local do seu fork:
$ git clone https://github.com/seu-nome-usuário/terrama2
Em seguida, entre na pasta terrama2 e ajuste o nome de usuário e e-mail:
git config user.name your-github-login git config user.email your-github-email-contact
Para configurar o git para sincronizar a sua cópia local com o repositório original:
1) Vá ao seu navegador e acesse o repositório original do TerraMA².
2) Na barra à direita, copie o endereço do repositório original: https://github.com/TerraMA2/terrama2.git.
3) Na linha de comando, vá para a pasta em que você criou a cópia local do seu fork.
4) Digite:
$ git remote -v
para ver o repositório remoto que se encontra configurado atualmente para seu fork. A saída será algo como:
origin https://github.com/seu-nome-usuário/terrama2 (fetch) origin https://github.com/seu-nome-usuário/terrama2 (push)
5) Digite:
$ git remote add upstream https://github.com/TerraMA2/terrama2.git
6) Verifique se o novo upstream repository especificado encontra corretamente apontado:
$ git remote -v
Você deverá ver a URL do seu fork como origin e a URL do repositório original como upstream, conforme a saída abaixo:
origin https://github.com/seu-nome-usuário/terrama2 (fetch) origin https://github.com/seu-nome-usuário/terrama2 (push) upstream https://github.com/TerraMA2/terrama2.git (fetch) upstream https://github.com/TerraMA2/terrama2.git (push)
Sincronizando Sua Cópia Local e Seu Fork com o Repositório Original
1) Faça o fetch dos branches e seus respectivos commits do repositório upstream:
$ git fetch upstream
A saída será algo como:
remote: Counting objects: 6, done. remote: Compressing objects: 100% (3/3), done. remote: Total 6 (delta 1), reused 6 (delta 1), pack-reused 0 Unpacking objects: 100% (6/6), done. From https://github.com/TerraMA2/terrama2 * [new branch] master -> upstream/master
2) Se você estiver fazendo modificações no branch master, assegure-se de estar nele:
$ git checkout master
Se você já estiver neste branch receberá uma mensagem como a abaixo:
Already on 'master' Your branch is up-to-date with 'origin/master'.
3) Faça o merge do upstream/master (ou do ramo desejado) com o seu ramo local para sincronizar seu repositório local com o original:
$ git merge upstream/master
A saída será uma mensagem parecida com a seguinte:
Updating 439f129..ff3b0da Fast-forward share/sql/terrama2/terrama2-data-model-pg.sql | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 share/sql/terrama2/terrama2-data-model-pg.sql
Fazendo Requisições de Pull (Pull Requests)
Agora que você já possui um repositório local para realizar modificações, e que está sendo sincronizado com o repositório original, você poderá fazer pedidos de push de suas modificações.
Faça o commit e push das suas modificações. Elas serão aplicadas no repositório do seu fork.
Na janela do navegador, no site do GitHub? do seu fork, selecione o ramo correto, onde você fez as modificações e em seguida selecione a opção "Compare & review".
TODO: melhorar esta seção.
Submetendo uma task list
Uma boa prática de submissão de pull requests é adicionar o que foi feito utilizando o recurso de task list do GitHub?. A ideia é auxiliar o revisor(a) sobre o que foi modificado e realizado.
[x] - Completed Task [TICKET_NUMBER](TRAC_TICKET_URL) [ ] - Uncompleted task
Repositório Oficial
O repositório oficial do TerraMA² encontra-se disponível no seguinte endereço: https://github.com/TerraMA2/terrama2.
Este repositório não deve ser utilizado diretamente, ou seja, deve-se criar forks a partir dele e submeter pull requests.
Se você quiser clonar este repositório oficial, poderá utilizar o git em linha de comando da seguinte forma:
git clone https://github.com/TerraMA2/terrama2.git .
Se precisar de mais dicas sobre o git, veja as notas de uso básico do git que preparamos.
Referências
- Fork A Repo. GitHub?. Acesso: 18/08/2015.
- Syncing a fork. GitHub?. Acesso: 18/08/2015.
- Using pull requests. GitHub?. Acesso: 18/08/2015.
