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:
- Pesquise por projetos com temas de seu interesse
- 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.
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.
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:
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:
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!
Top comments (0)