Tableless

Busca Menu

Contribuindo em projetos open source com o github

Seja o primeiro a comentar por

Projetos open source são o que há de mais legal no mundo do desenvolvimento quando se quer aprender novas tecnologias e envolver-se em projetos, seja codificando, documentando, testando ou realizando qualquer tipo de atividade que envolve um projeto.

Uma das principais ferramentas para o envolvimento em projetos open source é o github. Este artigo explica como utilizar essa ferramenta para envolver-se em projetos, visando realizar contribuições em projetos.

Primeiros passos

Antes de tudo é necessário conhecer minimamente a ferramenta e o seu fluxo de trabalho, portanto, é recomendada a leitura de dois artigos:

http://tableless.com.br/iniciando-no-git-parte-1/

http://tableless.com.br/iniciando-no-git-parte-2/

Let’s go

O primeiro passo é a criação de uma conta no site do github, assim, basta entrar em https://github.com/ e preencher o formulário de cadastro.

Formulário de cadastro - github

O segundo passo consiste em baixar a aplicação ‘git’, esta será a responsável por toda a manipulação que realizaremos nos repositórios aos quais desejamos contribuir. Recomendo que seja lido primeiramente o artigo elaborado pelo Diego Eis, na seção ‘Instalando o git’, disponível em http://tableless.com.br/iniciando-no-git-parte-1/, ou então, se preferir, o próprio pessoal do github disponibiliza uma série de instruções para instalar e configurar o git, estas estão disponíveis em https://help.github.com/articles/set-up-git.

Conceitos básicos

Para começar a trabalhar com o git de forma colaborativa é necessário conhecer dois conceitos básicos relacionados ao uso da ferramenta. Esses conceitos são o conceito de fork e de pull request.

Fork

O fork consiste em realizar a cópia de um repositório de alguém, adicionando esse repositório aos nossos repositórios. Em linhas gerais, nos tornamos os ‘donos’ do repositório o qual estamos realizando o fork (mas o original se mantém intacto).

O fork é o primeiro passo para colaborar em um projeto. Por exemplo, percebemos que existe um problema em um arquivo nos exemplos para iniciantes disponíveis no tableless (http://tableless.com.br/para-iniciantes/) e queremos realizar a correção. Como o projeto está no github, podemos colaborar! Para isso, navegamos até o repositório (https://github.com/tableless/iniciantes) e clicamos na opção fork, localizada no canto direito da página.

Opções disponíveis no repositório

Ao clicar em fork, o repositório em questão é copiado para a nossa base de repositórios e então viramos donos do repositório o qual copiamos, ficando este inclusive disponível na listagem dos nossos repositórios. Notem o símbolo ‘Y’ indicando que o repositório foi criado a partir de um fork.

Lista de repositórios atualizada

Agora podemos trabalhar no repositório criado normalmente, executar commits e pushs sem problemas, como se fosse um repositório novo que criamos do zero. Quando terminarmos de realizar as modificações e tivermos realizado os commits e push’s necessários podemos solicitar que o dono do repositório integre o que fizemos com o repositório original através de um pull request (explicado a seguir).

Pull request

O pull request consiste em uma solicitação de integração das nossas modificações com o repositório que realizamos um fork.

Para realizar um pull request devemos ir até o repositório gerado pela operação de fork (na nossa base de repositórios). Lá, encontraremos um botão chamado ‘pull request’:

Opção de pull request

Clicando em pull request, podemos escolher a origem e o destino do nosso pull request:

Origem e destino do pull request

Também podemos escrever um título e comentários sobre o nosso pull request:

Comentários e descrição do pull request

Clicando em ‘Send pull request’, enviamos as nossas modificações para que as mesmas sejam validadas pela comunidade. Isso permite que seja feita uma avaliação sobre o que foi feito. Dessa forma, o dono do repositório poderá integrar as mudanças realizadas ao código do projeto.

E agora, como posso contribuir?

Uma vez feitas as configurações necessárias e conhecendo os conceitos de fork e pull request, basta realizarmos as seguintes ações para contribuirmos para um projeto:

  1. Realiza-se um fork do projeto para o qual se quer contribuir.

  2. Clona-se o repositório criado através do fork para o nosso ambiente de trabalho (como explicado em http://tableless.com.br/iniciando-no-git-parte-1/ na seção ‘Clonando um projeto’).

  3. Realizam-se as modificações /correções / novas implementações desejadas.

  4. Realiza-se o commit de nossas modificações.

  5. Faz-se o push para o nosso repositório (que criamos através de um fork no passo 1).

Nesse exato momento, nosso repositório criado no passo 1 estará a frente do repositório original (o qual fizemos um fork). Agora já estamos aptos a submeter nossas modificações usando o recurso de pull request.

Assim, basta irmos até o nosso repositório (que criamos fazendo um fork no passo 1) e clicarmos em ‘pull request’. Seleciona-se então o repositório e o branch de destino e o repositório e o branch de origem. Nesse momento, podemos escrever um título para o nosso pull request e também adicionar comentários sobre o que estamos fazendo. Finalizado o preenchimento dos campos, basta clicar em ‘send pull request’.

A partir de agora, é necessário esperar para ver se a comunidade e os donos do repositório aprovam a mudança realizada. Se a mesma for aprovada, o dono do repositório pode realizar um merge do que fizemos com o projeto em questão, unificando assim o código.

Vamos por a mão na massa? 🙂

A melhor forma de aprender é praticar, dessa forma, criei um repositório chamado ‘learning-to-contribute’, o qual tem a intenção de receber os pull requests de quem quiser aprender a contribuir para projetos open-source antes de tentar fazer isso com projetos ‘reais’.

Para tal, é só entrar no link https://github.com/wmartins/learning-to-contribute e clicar em fork, a partir daí é só seguir os passos explicados nesse artigo e enviar um pull request para mim.

Sempre que possível vou aceitar os requests realizados para vocês verem o que foi explicado em ação!

Mandem seus requests!

Publicado no dia