Como contribuir para projetos abertos no GitHub

Veja bem, todo o projeto GNU/Linux é o que é hoje em dia graças à colaboração que muitas pessoas fizeram para que ele ficasse dessa forma. Então, pense no benefício que não é para a comunidade se você a ajuda a crescer mais e mais! Você vai praticar o uso das tecnologias que tem interesse, vai aprender a atuar melhor em equipe e também utilizar o Git.

[ Hits: 7.508 ]

Por: Gildásio Júnior em 10/08/2015


Como contribuir para projetos abertos no GitHub



Artigo originalmente publicado em meu blog:
O título desse artigo já é bem descritivo, mas para ser mais claro, vou deixar algumas coisas clara antes de mais nada:
  • O que é esse artigo: aqui eu irei comentar sobre os benefícios de contribuir para projetos abertos e utilizando o Git, formas de fazer isso e como fazer. Para nosso estudo de caso utilizarei o GitHub como servidor (por conta da quantidade de projetos que por lá estão e tudo mais).
  • O que não é esse artigo: - Não é um tutorial sobre Git! Para isso, leia a documentação no site do projeto ou simplesmente, "Google is your friend"! :)

Benefícios

Agora, podemos começar o artigo em si... Quero falar logo sobre os benefícios de você ajudar em projetos alheios.

Veja bem, todo o projeto GNU/Linux é o que é hoje em dia graças à colaboração que muitas pessoas fizeram para que ele ficasse dessa forma. Então, pense no benefício que não é para a comunidade se você a ajuda a crescer mais e mais!

Além do benefício comunitário envolvido, tem mais. Principalmente o autodesenvolvimento! Você vai praticar o uso das tecnologias que tem interesse, vai aprender a atuar melhor em equipe e também utilizar o Git - que é o software mais utilizado hoje em seu ramo. Fora que se/quando chegar o momento de uma entrevista de emprego (já tem muitos casos assim) você pode mostrar sua experiência para a empresa apenas linkando seu perfil para eles.

Convenci que é uma boa ajudar? Se sim, segue, senão, leia novamente. haha

Maneiras de contribuir

Para ajudar em um projeto você não precisa ser fera em um assunto! Afinal, muitas das vezes, é ajudando que você vai aprendendo mais e mais. Portanto, o único pré-requisito para ajudar é a vontade!!!

Tem várias opções de formas de ajudar, vejamos:

Programação: se você entende da linguagem que o projeto é feito você pode meter a mão no código e corrigir bugs que tenha, inserir novas funcionalidades e resolver "issues" que sejam listadas.

Novamente lembrando, não é necessário que você seja um expert na tecnologia! Sempre que você manda alterações, elas serão analisadas. Portanto, se forem boas, serão aceitas, se não, o autor pode (e provavelmente vai) te dar dicas de onde melhorar.

Criando issues: você pode pensar em algo interessante que o projeto poderia ter ou encontrou algum bug (mínimo que seja) no programa. Bacana! Fale sobre isso na parte direcionada à issues do projeto. Nessa parte, tente ser o mais claro possível e com bastante informações.

O GitHub - e vários de outros servidores - aceita a sintaxe de escrita em "markdown", portanto, pode usar dela para escrever o conteúdo mais organizado e arrumado de forma mais fácil.

Tradução: o projeto é somente em inglês e acha que poderia ser legal tê-lo em português (ou o contrário)? Traduz ele! Simples assim... E não estou falando apenas do software em si, mas pode pensar em traduzir a documentação, FAQ e outros materiais que sejam úteis para ele.

Documentação: muitas vezes quando se é feito um projeto, o autor cria a documentação com muito cuidado e deixa-a disponível. Mas conforme o programa vai crescendo, ou ele abandona e deixa de fazer a documentação ou apenas esquece disso. Portanto, fique à vontade para atualizar.

Ou então, testar todos os exemplos se realmente funcionam e adicionar como resolver caso não. Inserir procedimentos para, por exemplo, instalação em uma gama maior de sistemas operacionais... E por aí vai!

Mão na Massa

Achou sua forma de contribuir? Ótimo! Vejamos como fazer isso...

P.S.: para exemplos, pegarei o programa Virgulino, projeto feito pelo grupo de pesquisa em segurança LampiãoSec, que é um experimento para estudos relacionados à esteganografia.

P.S.S.: vou assumir que já tenha conta no GitHub (caso não tenha, faça) e que tem o Git instalado em sua máquina com o mínimo já configurado (bem, há vários posts ensinando como fazer isso, caso precise).

Fork

O primeiro passo é encontrar o projeto com que contribuir. Como disse, pegarei como exemplo o Virgulino, link do repositório:
Depois de escolhido, como, provavelmente, você não terá acesso à edição direta no projeto, você deverá fazer um "fork" que consiste basicamente em criar uma cópia do mesmo. Para isso, na página do projeto, clique no botão com esse nome.

Agora que já tem o projeto copiado em sua conta, acesse o repositório em seu nome. Basta alterar a URL com seu nome de usuário no lugar de "lampiaosec", ficando algo como:
  • https://github.com/seu_usuario/virgulino

Clone

Feito isso, agora precisamos de ter o código em nossa máquina para edição, certo? Basta clonar o repositório:

git clone https://github.com/seu_usuario/virgulino

Entre no diretório do repositório e já pode começar a editar.

Nota: já disse que aqui não é um tutorial sobre Git, logo, não vou mostrar como adicionar arquivos ao stagement, como fazer "commit", "push" etc.

Pull Request

Depois de você ter alterado tudo que queria, fazendo os passos de adicionar as mudanças e subido para seu fork, você pode submeter essas suas alterações para que fique no projeto original. Para isso, vamos fazer um "Pull Request"!

Outra nota: o GitHub chama isso de "Pull Request", mas em outros servidores você pode encontrar como "Merge Request" ou variantes.

Estando logado e acessando ou o seu repositório ou o oficial do projeto, verá um botão na cor verde. Ele representa esse "Pull Request". Clique nele e irá aparecer um formulário para você... Nesse formulário, você deve descrever as alterações que fez, facilitando um pouco a vida de quem vai analisar a requisição. Opcionalmente, se foi o caso, você pode "linkar" com as issues que tenha relação, apenas colocando o número a que ela se refere.

Atualizando o fork

Normalmente, quando você começa ajudar um projeto, você faz isso diversas vezes. Logo, pode dar uma ajuda hoje, uma amanhã e até no mês que vem. Isso não indica que o projeto será sempre o mesmo, sem mudanças além das suas. Ou seja, você precisa atualizar o que tem em sua máquina.

Para fazer isso, temos a opção simples e a opção certa. Vamos ver:

Simples:
  • 01. Remova o diretório do projeto
  • 02. Clone o projeto novamente

Nada bonito isso, né?!

Certo:

Primeiro, adicione o link do repositório oficial ao seu repositório local:

git remote add upstream https://github.com/lampiaosec/virgulino

Mais uma nota: o nome "upstream" é apenas uma convenção que se foi criada. Ou seja, boas práticas... Mas isso não te impede de inserir um nome diferente, como "link_dos_cara".

Agora, basta atualizar usando o comando "git pull" e seja feliz.

Ah!! Lembre-se de fazer essa atualização antes de começar a mexer no projeto! Sério, isso te livra de dores de cabeça, kkkk.

Finalização

Bom, é isso! Talvez, posteriormente eu faça posts mostrando funcionalidades e como utilizar o Git (para não passar batido em alguns pontos), mas por enquanto, pronto! Não tem desculpas para usar dizendo que não sabe ajudar nesses projetos.

Espero que vire um contribuinte assíduo!

Até mais ver! :D

   

Páginas do artigo
   1. Como contribuir para projetos abertos no GitHub
Outros artigos deste autor

Transmission-CLI - Gerenciando torrents via CLI

VirtualBox no Arch Linux

Instalação do Arch Linux com LVM + Luks

Compartilhando o Terminal

A pós-instalação do Arch Linux

Leitura recomendada

Rust - Uma nova linguagem de programação

Windows XP virtualizado dentro do Linux com VMWare Converter

K12LTSP - Executando o Mozilla antes do GDM

PNL para Hacking

Instalação do Cacti baseado em uma distribuição própria - CactiEZ

  
Comentários
[1] Comentário enviado por diegolinkk em 17/08/2015 - 15:30h

Parabéns pelo texto mano. Eu estou muito interessado em começar a utilizar a ferramenta, então quanto mais textos sobre o tema eu encontrar, melhor. Vou deixar um link que explica mais os conceitos básicos sobre a ferramenta e sobre o uso de alguns comandos, para quem estiver mais interessado no git. Segue o link : http://tableless.com.br/iniciando-no-git-parte-1/

[2] Comentário enviado por r_carreiro em 19/08/2015 - 12:55h

Muito bom o artigo cara!
Vallew mesmo, vou começar a contribuir com projetos sempre que possível e compartilhar o texto com amigos.

[3] Comentário enviado por CRF-Rafa em 21/08/2015 - 10:32h

Nessa página tem um guia prático do Git.
http://rogerdudler.github.io/git-guide/index.pt_BR.html
Tutorial básico mas bem completo

[4] Comentário enviado por FRNS em 01/10/2015 - 16:03h


Parabéns pelo artigo!
Você sabe como faz para gerar um arquivo POT num projeto do Github, como por exemplo, as extensões do GNOME?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts