Guia para Iniciantes: Contribuindo em Projetos Open Source Passo a Passo
Tags: ruby, opensource, github, contributorswanted
Published: 2024-06-25 18:06:15

> Um exemplo prático de como contribuir em projetos open source

Dar os primeiros passos no universo do código aberto pode ser intimidante. Desde quando comecei a programar, meu desejo sempre foi contribuir para projetos que fossem impactantes e desafiadores. Compartilho aqui um caminho acessível e prático para ajudar outros aspirantes a desenvolvedores a superarem esse desafio inicial e começarem a contribuir efetivamente para projetos open source.

## Começando Pequeno, Aprendendo Grande

Contribuir para projetos open source pode parecer assustador à primeira vista, mas a chave é começar com algo pequeno. Não se preocupe se for algo extremamente simples. São dessas pequenas mudanças que você aprenderá mais sobre o projeto e se familiarizará com seu código.

## Escolhendo o Projeto Adequado

O primeiro passo é escolher um projeto! E aqui vão algumas dicas de quais critérios usar para escolher o seu:

1. Pesquise por projetos com temas de seu interesse
2. Priorize tecnologias com as quais você esteja familiarizado.

Sites como GitHub e GitLab são excelentes plataformas para descobrir projetos que aceitam contribuições.

Para demonstrar esse processo, escolhi um projeto que achei muito interessante: o Meybe, um gerenciador de finanças open source desenvolvido em Ruby. Escolhi esse projeto pois já tive alguma experiência com Ruby anteriormente e me identifiquei com seu objetivo.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xz89gsd47rmb9wcbgb2c.png)

https://maybe.co/

## Explore o projeto

Com o projeto selecionado, mergulhe de cabeça: instale-o e explore todas as funcionalidades possíveis. Experimente ajustar configurações, inserir dados significativos, executar testes rigorosos, mergulhar na documentação detalhada e investigar o código-fonte para entender completamente sua estrutura e as possibilidades que oferece.

## Encontrando um problema simples

A maior parte dos projetos tem uma lista de problemas a serem resolvidos. Busque por problemas simples que possa você possa resolver. Evite o erro comum de tentar desenvolver sozinho uma nova funcionalidade muito complexa do projeto, especialmente quando ainda não conhece completamente o código. Comece com problemas pequenos, como correções de bugs ou pequenas melhorias.

Por exemplo, ao procurar as issues do projeto encontrei o seguinte problema: A issue #861 do projeto descreve um bug onde, durante a importação de transações, ao voltar para a etapa "mappings", todas as colunas do formulário são redefinidas.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u1ak3mimhlcglfnucgml.png)

https://github.com/maybe-finance/maybe/issues/861

## Resolvendo o Problema

Depois de algumas boas horas investigando e compreendendo a causa do problema, descobri que a questão estava na função:

```ruby
def get_selected_header_for_field(field)
   column_mappings&.dig(field) || field.key
end
```

O método `dig` estava recebendo o objeto `field` inteiro ao invés do atributo `field.key`. A solução foi ajustar para:

```ruby
def get_selected_header_for_field(field)
   column_mappings&.dig(field.key) || field.key
end
```

Este simples ajuste resolveu o problema e pude verificar a correção localmente antes de submeter minha contribuição.

## Faça um Pull Request da Solução

Depois de identificar e corrigir o problema, é hora de enviar suas alterações para o repositório original através de um pull request. Esse processo envolve criar uma nova branch, commit suas alterações, e então abrir o pull request no GitHub.

Certifique-se de descrever claramente as mudanças que você fez e porque elas são necessárias. Inclua detalhes específicos sobre como testou a solução para garantir que o bug foi realmente corrigido. A revisão e aceitação desse pull request pelos mantenedores do projeto são as etapas finais para ver sua contribuição ser integrada ao projeto.

## Conclusão

Contribuir para projetos open source não só amplia seu conhecimento técnico, mas também é uma oportunidade de se conectar com uma comunidade global de desenvolvedores. Começar com passos pequenos e alcançáveis é a melhor maneira de mergulhar nesse mundo colaborativo. Com perseverança e disposição para aprender, você pode transformar pequenas contribuições em um impacto significativo no projeto. Agora é sua vez de começar e explorar o vasto mundo dos projetos open source!