Como e por que contribuir com projetos Open Source.

contribuir open source

Muitas pessoas gostariam de contribuir com projetos Open Source e não sabem como, a ideia desse pequeno tutorial é explicar as vantagens de se contribuir, ensinar como contribuir e mostrar onde encontrar projetos Open Source para contribuir.
Eu vou focar em projetos que tenham seus códigos no GitHub porque é o caso mais comum, caso você não esteja habituado ao GitHub, acesse esse link para fazer um tutorial básico.

Porque Contribuir
Aprendizado

Contribuir com um projeto Open Source pode aumentar exponencialmente o seu conhecimento por te expor a um projeto maduro e que foi feito por vários desenvolvedores experientes.
Então quando você for contribuir, certamente vai ter que seguir o guideline do projeto e fazer tudo dentro da arquitetura escolhida pelas pessoas que mantém o projeto. Todo esse esforço certamente vai se transformar em conhecimento.

Portfólio

É cada vez mais normal as empresas pedirem o link para o seu GitHub para verificarem seus projetos e suas contribuições para outros projetos.
Então contribuir para projetos Open Source pode ser uma ótima maneira de provar o seu conhecimento na hora de conseguir Jobs 🙂

Comunidade

Enquanto você participa de projetos Open Source você vai ter contato com as outras pessoas que estão participando do mesmo projeto e também com o grupo que mantém o projeto, essa pode ser uma grande oportunidade para aprender, criar networking ou até mesmo fazer novos amigos da área.

Como Contribuir (Passo a Passo)

Este é o Passo a Passo para dar contribuições a projetos no GitHub, eu vou usar como exemplo um projeto que estou criando em parceria com vários colaboradores como forma de compartilhar o conhecimento.

  1. Crie uma conta no GitHub (caso você ainda não tenha)
  2. Crie um Fork do Projeto
    • Acesse o link do projeto que você quer contribuir, no caso do exemplo  clicando aqui.
    • Clique em “Fork”
      captura-de-tela-de-2016-10-06-21-47-14
    • O GitHub vai fazer uma cópia do projeto para a sua própria conta.
  3. Faça o Clone do seu Projeto
    • Agora você precisa fazer um clone do projeto que está na sua própria conta, vá até o projeto na sua conta que você fez o Fork.
      1. Clique em “Clone or Download”
      2. Copie o link que ele exibir (“https://github.com/leonardoscorza/stack_helper.git”)
        Obs:  Para fazer  isso via chave SSH  clique em “Use SSH” e pegue o link que aparecer no menu (caso você queira usar esse método e não saiba como,  clique aqui)   ou caso você não queira usar e queira fazer a autenticação via Email e Senha, utilize o método “HTTPS”.
        captura-de-tela-de-2016-10-06-22-06-40
      3. Agora no console, rode:
        1
        
        git clone URL_QUE_VOCÊ_COPIOU
      4. Vá até o diretório do projeto que você acabou de fazer o clone.
        1
        
        cd nome_do_projeto
      5. Agora você já está com o projeto na sua máquina e pronto para prosseguir.
  4. Sincronize o seu Fork com o projeto original (Opcional)
    • Para que você não fique com um projeto desatualizado é interessante que você sincronize o clone do seu Fork com o projeto oficial.  Para fazer isto rode:
      1
      
      git remote add upstream URL_DO_PROJETO_ORIGINAL
    • Quando você desejar baixar e fazer o merge das alterações realizadas no projeto oficial, você pode fazer isto rodando alguns comandos simples, mas não será necessário no nosso exemplo, então para ver os comandos clique aqui.
  5. Crie uma Branch
    1. Agora vamos  criar uma Branch para desenvolver a sua feature ou correção de bug, rode:
      1
      
      git brach nome_da_feature
  6. Realize a mudança  e faça o commit
    • Realize a mudança que você se propôs no código.
    • Depois, rode o git add .
      1
      
      git add .
    • Agora realize o commit rodando:
      1
      
      git commit -m 'Sua Mensagem sobre a mudança feita'
  7. Suba a sua Branch
    • Agora você precisa subir a sua Branch para o seu Fork, rode:
      1
      
      git push origin nome_da_branch
  8. Faça a Pull Request
    • Finalmente vamos disponibilizar para as pessoas que mantém o código as mudanças que fizemos, para realizar o Pull Request vá até o seu fork no site do GitHub (ex: https://github.com/onebitcode/stack_helper)
      captura-de-tela-de-2016-10-06-22-38-06
    • Agora clique em “New Pull Request”.
    • No menu que apareceu escolha como base a branch master do projeto original (ou outro em casos específicos) e em head fork escolha a branch que você criou no seu projeto.
      captura-de-tela-de-2016-10-06-23-02-26
    • Agora na tela ele vai mostrar a diferença entre a sua branch e o master do projeto original, aproveite para verificar o que foi alterado na sua branch para ver se você subiu corretamente e depois clique em “Create Pull Request”
      captura-de-tela-de-2016-10-06-23-05-29
    • Quase lá, agora escreva uma mensagem para que as pessoas que mantém o projeto possam saber o que fez e o por que você fez o que fez, depois de escrever basta clicar em “Create Pull Request” e pronto, sua primeira contribuição foi enviada \o/.
      captura-de-tela-de-2016-10-06-22-53-05
    • Agora os mantenedores do projeto vão analisar o que você fez e se estiver tudo certo seu código será incorporado à aplicação \o/.
    • Obs: É possível que eles façam comentários no Pull Request te questionando sobre o que você fez ou solicitando que você mude alguns detalhes.  Caso você precise alterar alguma coisa, basta fazer as alterações locais e subir novamente o código via “git push” sem precisar refazer o Pull Request.
Lista de Projetos Open Source
Ruby
  • Ruby On Rails
    • O Ruby On Rails é o principal framework Web escrito em Ruby, então se você utiliza o Rails em seus projetos e encontrou um bug ou tem alguma ideia para melhorá-lo, você pode contribuir para o projeto e fazer do mundo um lugar melhor \o/.
    • Repositório
    • Acesse o Guide para contribuir
  • Sinatra
    • O Sinatra também é escrito em Ruby e serve para criar aplicações Web com facilidade e em pouco tempo. Então ele pode ser uma alternativa ao Rails caso seu projeto não seja muito complexo.
    • Repositório
    • Acesse o Guide para contribuir
  • Stack Helper
    • O Stack Helper/Social Stack é um projeto Open Source que tem como objetivo conectar pessoas com dúvidas a desenvolvedores mais experientes que possam responder essas dúvidas e possivelmente receber doações ($1 por exemplo) como agradecimento pela ajuda prestada. O projeto nasceu através da iniciativa de pessoas que gostariam de se aprofundar no aprendizado de Ruby On Rails e pessoas que queriam ajudar neste caminho.
      Vou falar mais sobre este projeto e sobre as outras pessoas envolvidas em breve neste Blog :), mas desde já deixo o meu agradecimento a todos os envolvidos.
      Fica o convite para que você participe do desenvolvimento através dos links abaixo.
    • Repositório
    • Acesse o Guide para contribuir
  • Rails Admin
Python
  • Django
  • SciKit
    • O SciKit é um conjunto de ferramentas para você implementar softwares que utilizem machine learning, então se você se interessa pela área você pode acessar o código deles e contribuir para melhorar ainda mais o SciKit.
    • Repositório
    • Acesse o Guide para contribuir
Outros Projetos

Você pode encontrar outras centenas de milhares de projetos Open Source para participar, um bom começo para encontrar novos projetos é sempre ficar de olho nos principais projetos Open Source do GitHub clicando aqui.

Conclusão

Participar de projetos Open Source é uma das melhores maneiras de evoluir como profissional, criar relacionamentos com a comunidade e provar a sua qualidade em eventuais candidaturas à vagas de trabalho.
Se você conhece outros projetos Open Source interessantes, faça um pull request comenta aí em baixo que eu vou atualizar a lista dos projetos indicados \o/.

Caso você não tenha vista o último Post e se interesse pelo assunto “Programador Remoto” e “Freelancer” dá uma olhada neste link “Bem vindo ao mundo do programador Remoto/Freelancer

Apenas fazendo um Merchandising do bem, como eu já disse no Post anterior a minha namorada está com um projeto bem legal que pode ser a diferença entre você conseguir ou não aquele Job maneiro :).
Ela é a designer responsável pela beleza desde Blog \o/ e o projeto é um site onde você pode encomendar um currículo gráfico (um currículo bonito que impressiona) para aumentar suas chances de conseguir um bom Job.
Dá uma olhada lá no projeto clicando aqui.
img-curriculo-grafico-com-01

 

Muito Obrigado por acompanhar este Blog.
Se você tiver alguma dúvida ou precisar de ajuda,
comenta aí em baixo ou me adiciona no Facebook clicando aqui.

Abraço,
Leonardo Scorza.

 

Deixe seu Feedback!

Comentários