<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Igor Leal</title>
    <description>The latest articles on DEV Community by Igor Leal (@oigorleal).</description>
    <link>https://dev.to/oigorleal</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1368533%2Fae317805-6ea3-4bc1-ba68-7036df9126c5.jpg</url>
      <title>DEV Community: Igor Leal</title>
      <link>https://dev.to/oigorleal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/oigorleal"/>
    <language>en</language>
    <item>
      <title>Guia para Iniciantes: Contribuindo em Projetos Open Source Passo a Passo</title>
      <dc:creator>Igor Leal</dc:creator>
      <pubDate>Tue, 25 Jun 2024 18:06:15 +0000</pubDate>
      <link>https://dev.to/oigorleal/guia-para-iniciantes-contribuindo-em-projetos-open-source-passo-a-passo-1fd8</link>
      <guid>https://dev.to/oigorleal/guia-para-iniciantes-contribuindo-em-projetos-open-source-passo-a-passo-1fd8</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Um exemplo prático de como contribuir em projetos open source&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Começando Pequeno, Aprendendo Grande
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Escolhendo o Projeto Adequado
&lt;/h2&gt;

&lt;p&gt;O primeiro passo é escolher um projeto! E aqui vão algumas dicas de quais critérios usar para escolher o seu:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pesquise por projetos com temas de seu interesse&lt;/li&gt;
&lt;li&gt;Priorize tecnologias com as quais você esteja familiarizado.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sites como GitHub e GitLab são excelentes plataformas para descobrir projetos que aceitam contribuições.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxz89gsd47rmb9wcbgb2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxz89gsd47rmb9wcbgb2c.png" alt="Image description" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://maybe.co/"&gt;https://maybe.co/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Explore o projeto
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Encontrando um problema simples
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1ak3mimhlcglfnucgml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1ak3mimhlcglfnucgml.png" alt="Image description" width="800" height="547"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/maybe-finance/maybe/issues/861"&gt;https://github.com/maybe-finance/maybe/issues/861&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Resolvendo o Problema
&lt;/h2&gt;

&lt;p&gt;Depois de algumas boas horas investigando e compreendendo a causa do problema, descobri que a questão estava na função:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_selected_header_for_field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="n"&gt;column_mappings&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;key&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O método &lt;code&gt;dig&lt;/code&gt; estava recebendo o objeto &lt;code&gt;field&lt;/code&gt; inteiro ao invés do atributo &lt;code&gt;field.key&lt;/code&gt;. A solução foi ajustar para:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_selected_header_for_field&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
   &lt;span class="n"&gt;column_mappings&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;dig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="n"&gt;field&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;key&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este simples ajuste resolveu o problema e pude verificar a correção localmente antes de submeter minha contribuição.&lt;/p&gt;

&lt;h2&gt;
  
  
  Faça um Pull Request da Solução
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusão
&lt;/h2&gt;

&lt;p&gt;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!&lt;/p&gt;

</description>
      <category>ruby</category>
      <category>opensource</category>
      <category>github</category>
      <category>contributorswanted</category>
    </item>
  </channel>
</rss>
