Article image
Leonardo Pereira
Leonardo Pereira24/09/2024 22:14
Share

Do fork ao merge: Contribuindo com projetos open source no GitHub

    A colaboração com projetos open source é uma forma muito interessante de se engajar com a comunidade, construindo e melhorando habilidades. Os projetos Open Source, são projetos disponibilizados publicamente, disponíveis as comunidades para que elas possam manter, corrigir, melhorar e até mesmo redistribuir, com tanto que mantenham suas derivações como open source.

    A colaboração em projetos pode ser de grande ajuda para alcançar aquele ponto de melhoria em habilidades existentes, e não falo só de codificação em si, como já ouvi bastante, “nem só de código vive o homem”, mas é possível contribuir de outras formas, como: elaboração de documentações, organização de estruturas, issues , labels, comunicação, orientação, respondendo perguntas entre outras.

    Um projeto possui documentações que geralmente são listadas no topo do repositório, vou apresentar algumas que comumente são encontradas.

    image

    • README: Normalmente o README apresenta o projeto, fala de suas utilidades e por onde pode começar para utiliza-lo.
    • CONTRIBUTING: Voltado para nortear as pessoas sobre como podem contribuir com o projeto. Quais contribuições são necessárias e como é o processo para realizar uma.
    • CODE_OF_CONDUCT: O código de conduta apresenta regras básicas de conduta dos participantes proporcionando um ambiente amigável.
    • LICENSE: Todo projeto open source deve ter uma licença open source.

    Fora as documentações, os projetos open source se utilizam de algumas ferramentas para gerenciamento de problemas e discussões.

    • Issues

    image

    • Fórum de discussões

    image

    • Issues: Ferramenta utilizada para discutir problemas relacionados ao projeto.
    • Pull Request: Onde é discutido e realizado o processo de revisão das alterações em andamento.
    • Fóruns: Em alguns projetos é possível ver a utilização desses canais para organizar discussões em tópicos em vez de utilizarem relatórios de bugs ou solicitações de features. Existem projetos que utilizam as issues para todas as conversas.

    Mas como posso contribuir de fato para algum projeto? Bom, venho trazer o básico na prática de como colaborar com um projeto open source usando como exemplo um repositório que criei. Gostaria de mencionar que a preparação e ideia desse repositório foi inspirado em um projeto durante o curso de gii e github aqui da DIO.

    Primeiramente deve-se escolher um projeto no qual deseja contribuir, como disse anteriormente criei um repositório no Github e preparei para essa finalidade.

    1. Faça um fork do projeto escolhido

    image

    image

    image

    2. Faça um clone localmente

    Comando git clone seguido da URL do seu fork para clonar o seu repositório localmente.

    image

    • Em seguida, adicione seu fork como um projeto local:
    git clone https://github.com/SEU_USERNAME/GitContributionOpenSource.git
    
    • Em seguida, vá para sua pasta local
    cd GitContributionOpenSource
    
    • Adicionar controles remotos git
    git remote add fork https://github.com/YOUR-USERNAME/GitContributionOpenSource.git
    git remote add upstream https://github.com/leoviana00/GitContributionOpenSource.git
    
    • Com o objetivo de se manter atualizado com o repositório central

    image

    git remote -v
    

    3. Crie uma Branch

    • Comando para criação de branch

    image

    git checkout -b feature-new-contribution
    
    Para criar e alternar para a nova branch siga as orientações no Guia do contribuidor

    4. Alteração de um arquivo

    image

    Na raiz do projeto abra o arquivo "contribution_project.md" e adicione uma linha: Exemplo: **Testing PR NUMERO QUALQUER** e feche o arquivo.

    5. Adicione suas alterações à “staging area”

    image

    • Adicionando a alterações na staging area
    git add contribution_project.md
    

    6. Crie um commit

    image

    • Crie um commit e adicione a mensagem indicando a alteração realizada
    git commit -m "docs(contribuicao): update do arquivo contribuition_project"
    
    Verifique o bloco de commit permitos no Guia do Contribuidor para escrever a mensagem do seu commit de forma clara e padronizada.

    7. Envie as alterações

    image

    • Envie as alterações realizadas no seu repositório local para a branch feature-new-contribution no seu repositório remoto com o comando:
    git push origin feature-new-contribution
    

    8. Crie um Pull Request

    • Atente-se para a seguir as orientações para a contribuição, principalmente:
    Seu PR deve modificar apenas o arquivo contribution_project.md (dê uma olhadinha na aba “Files changed”);
    O título do commit deve atender a definição de nomenclatura descrita em Lista de commits no Guia do Contribuidor.
    Caso não saiba como criar uma solicitação de pull request, siga as orientações na documentação (https://docs.github.com/pt/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) ou acompanhar os passos abaixo.
    • Abrindo um Pull Request através da interface gráfica do Github. Abrindo o repositório forkado, deve aparecer um botão em destaque chamado “Compare & pull request”.

    image

    • Criando o pull request. Verifique se a comparação esta sendo realizada em cima da branch trabalhada, pode checar isso no item “1” da imagem abaixo, outra coisa importante é verificar o título do PR, se ele não estiver de acordo com a convenção de commits, o PR não será autorizado, responda o corpo do pull request e por último clicar em “Create pull request”.

    image

    • Apos a criação do pull request, será feita uma validação automática dele, onde o título e o arquivo que foi modificado será checado, se tudo estiver de acordo, o PR será aprovado, caso algo não esteja no padrão, o PR não será aprovado.

    image

    • Após a aprovação receberemos a mensagem de sucesso como a da imagem abaixo:

    image

    • Pronto, agora você oficialmente contribuiu para um projeto, já possível ver você como um dos contribuidores do projeto.

    image

    Caso você realize o laboratório e queira interagir mais fora a ação de criação do pull request, pode abrir uma feature request ou bug report la em issues. Obrigado por ter ficado comigo até aqui, foi um prazer, mantenha o foco e bons estudos, até mais.

    Share
    Comments (1)
    Mauro Souza
    Mauro Souza - 25/09/2024 11:20

    muito bom!