
Compartilhar:
Diana é defensora de desenvolvedores na Vonage. Ela gosta de comer ostras frescas.
Guia para iniciantes sobre como contribuir com o código aberto
Tempo de leitura: 10 minutos
“Contribuir com o código aberto” é uma daquelas expressões que as pessoas ouvem o tempo todo e gostariam de colocar em prática, mas nem sempre sabem como. No início, admito que me senti desmotivado a contribuir porque me senti sobrecarregado com todos os recursos disponibilizados, especialmente porque cada um deles apresentava uma abordagem diferente.
Este blog também será uma das muitas maneiras pelas quais você poderá dar os primeiros passos no mundo do código aberto (desculpe), mas vou compartilhar minha visão sincera sobre como comecei a contribuir e o que eu gostaria de ter sabido quando comecei.
O que é um projeto de código aberto?
O termo “código aberto” refere-se a um projeto concebido para ser abertamente acessível e modificável. Frequentemente, um projeto de código aberto é disponibilizado para que qualquer pessoa possa visualizá-lo, alterá-lo e compartilhá-lo (em contraste com o software de código fechado (CSS), que não é compartilhado publicamente e só pode ser alterado pela pessoa ou organização que o criou). No entanto, embora as pessoas geralmente sejam incentivadas a contribuir e ajudar a melhorar o projeto, ainda é necessário que haja algumas regras de “organização”, e é aí que entra o licenciamento (abordarei esse assunto com mais detalhes no blog).
Os fatores que definem o código aberto são:
O projeto possui código-fonte disponível publicamente. O projeto possui uma licença que está em conformidade com a Definição de Código Aberto (OSD).
Por exemplo, o SDK do Vonage para Python é de código aberto. Aqui, você pode ver que ele utiliza a licença Apache-2.0. Isso é padrão em todos os nossos SDKs da Vonage.
Python Repo
O que é um colaborador de código aberto?
Embora os projetos de código aberto projetos possuem critérios que os definem como de código aberto, os contribuintes não têm. Há muitas maneiras diferentes pelas quais uma pessoa pode contribuir, tais como:
Contribuições de código: Corrigir bugs, implementar novos recursos e refatorar o código.
Documentação: Criar ou aprimorar a documentação (incluindo arquivos README, guias do usuário e documentação da API), localizar documentos (traduzi-los para outro idioma ou escrever o código em outra linguagem de programação) e redigir tutoriais.
Relatar problemas: Se você perceber maneiras de melhorar um projeto, sugira alterações abrindo uma solicitação. Você não precisa implementar a alteração por conta própria, embora seja altamente recomendável e extremamente útil se você puder fazê-lo. No entanto, outra pessoa com as habilidades e disponibilidade necessárias pode acabar assumindo a solicitação para ajudar a melhorar o projeto para todos os demais.
Testes: Realizar testes em diferentes plataformas e relatar problemas, escrever testes unitários e configurar ou aprimorar pipelines de CI/CD.
Apoio à comunidade: Responda a perguntas em fóruns, faça revisões de código e oriente novos colaboradores. Por exemplo, se alguém no servidor do Discord do Appwrite pedisse ajuda para implementar o Vonage Video no Appwrite Cloud, eu poderia comentar, indicando ao usuário o blog do meu colega de equipe Chris Tankersley.
Organize eventos: Organize ou participe de encontros ou workshops que promovam projetos de código aberto.
Como encontrar um projeto de código aberto para o qual contribuir
Vamos ver as várias maneiras pelas quais você pode encontrar projetos de código aberto.
Inscreva-se no Programa de Mentoria em Código Aberto
Contribuir com o código aberto pode ser uma atividade esporádica que você realiza no seu tempo livre, ou pode ser como ter um emprego em tempo integral. Se você tiver disponibilidade para participar de um programa em que alguém lhe atribuirá responsabilidades e o orientará ao longo do processo, receberá um projeto com prazos e terá seu trabalho avaliado, recomendo se inscrever em um programa como o Google Summer of Code, que exige 40 horas por semana durante o período do programa. Essa teria sido a opção ideal para mim quando eu ainda era estudante universitário e não tinha estágio.
Um dos meus melhores amigos, Kunal Kushwaha, tem um Vídeo no YouTube que orienta as pessoas nesse processo, mas aqui vai uma breve visão geral:
Fique atento aos prazos para essa opção. O programa Google Summer of Code não permite que as pessoas se inscrevam a qualquer momento do ano. Os candidatos precisam ser aceitos para trabalhar no projeto de sua escolha.
Acesse Google Summer of Code> Organizações > Ver todas as organizações. Use os filtros para procurar uma organização, tecnologia ou tema que seja do seu interesse. Clique em uma organização para ver quais projetos ela tem disponíveis para colaboradores.
Leia cada projeto e encontre as instruções específicas sobre como se candidatar para trabalhar nesse projeto específico. Esse seria até um bom momento para experimentar o projeto.
Aqui estão alguns aspectos que você deve levar em consideração ao escolher um projeto:
O que você quer alcançar?
Por que você escolheu justamente esse projeto?
Se você acabar propondo um projeto próprio, em que sua ideia se diferencia de um projeto já existente que você poderia ter escolhido?
O que faz com que você seja a pessoa ideal para participar deste projeto?
Quanto tempo você pretende dedicar ao projeto antes, durante e depois do programa?
3. Se/quando você for aceito, será designado a um mentor que poderá orientá-lo para que se torne um excelente colaborador!
Encontre edições que sejam uma “boa primeira escolha”
Agora, digamos que você não consiga se dedicar totalmente tanto tempo para contribuir com o código aberto — tudo bem, eu também não consigo. Em vez disso, você pode começar com uma boa primeira tarefa, adequada para novos colaboradores, pois elas geralmente não exigem um conhecimento profundo da base de código do projeto. Você deve escolher uma com base nas suas habilidades e interesses.
Veja a seguir algumas maneiras de encontrar uma “boa primeira edição”:
Pesquisar um no GitHub que corresponda ao tópico “good-first-issue”. Outras palavras-chave ou frases que você pode pesquisar e que podem gerar resultados semelhantes são “contributions-welcome”, “hacktoberfest”, “beginner”, “beginner-friendly”, “help-wanted” ou “contributions-welcome”.
Por exemplo, o Appwrite tem issues rotuladas como “good-first-issue”.
Use um bom localizador de primeiras edições. Eddie Jaoude criou um que você pode usar de graça.
Depois de encontrar um problema no qual você gostaria de trabalhar, verifique na sequência de comentários se ele já foi atribuído a alguém. Caso não tenha sido, deixe um comentário pedindo aos mantenedores que o atribuam a você.
Aquiestá um exemplo de alguém que comentou e pediu para trabalhar em um problema que eu relatei.
Se você tiver alguma dúvida enquanto estiver trabalhando no issue, não tenha medo de aprender em público. Acesse o tópico do issue no GitHub e/ou qualquer plataforma pública que a comunidade use para conversar (Discord, Slack etc.) e envie uma mensagem pública com o seguinte contexto:
o que você fez
o que você está tentando alcançar
erro(s) que você recebeu
peça recursos para ajudá-lo a superar o bloqueio
Como relatar um problema
Eu costumava achar que levantar uma questão fazia de mim o problema. Como diz a Taylor Swift: “Sou eu. Oi. Sou eu o problema, sou eu.” Mas a questão é a seguinte: você não é o problema! Você pode até ser a solução. Relatar problemas ainda é importante, e é o meu maneira favorita de contribuir com o código aberto.
Se você não encontrou nenhum problema que chamasse sua atenção ao tentar encontrar uma “boa primeira tarefa”, acesse um repositório do GitHub que seja do seu interesse e utilize o projeto. Compile o projeto no seu próprio sistema. Se você se deparar com algum problema (seja no código ou na documentação), relate-o.
Exemplo de contribuição para um projeto de código aberto (relatar um problema)
Vamos dar uma olhada na minha contribuição para o Appwrite, uma empresa que oferece um plataforma de Backend-as-a-Service (BaaS).
Como sabemos que é um projeto de código aberto? Vamos verificar no repositório deles!
Appwrite Check É um repositório público.
Tem licença.
O arquivo LICENSE.md descreve o que você tem permissão para fazer com este projeto.
Enquanto desenvolvia um aplicativo que programa o envio de SMS usando o Vonage e Appwrite Messaging, me deparei com um problema que me fez sentir muito burro naquele momento. Eu estava tentando definir a data e a hora (30 de maio de 2024, às 15:27:10) em que queria que a mensagem fosse enviada, mas o sistema continuava exibindo uma mensagem de erro. Cheguei até a confirmar que a hora que eu estava tentando definir era posterior à hora atual (15h25).
Discord QuestionEntão, entrei no servidor do Discord da Appwrite e enviei uma mensagem para um dos canais deles. Sim, mostrar-se vulnerável e pedir ajuda na frente de outras pessoas pode ser assustador, mas aprender em público é uma parte importante da cultura do código aberto.
Pouco tempo depois, recebi uma resposta de um dos membros da equipe deles explicando exatamente o que havia dado errado. Ele chegou a reconhecer que era um problema que valia a pena relatar, pois, se eu havia me deparado com isso, outras pessoas também se deparariam.
Discord responsePrimeiro, fiz uma busca rápida pelo repositório deles e encontrei o arquivo arquivo CONTRIBUTING.md, que explicava claramente que tipo de ajuda eles precisavam e como as pessoas poderiam participar.
Cliquei na aba “Problemas” e cliquei em “Nova solicitação”.
Nesta página, selecionei o tipo de solicitação. Como desejo sugerir uma alteração no recurso de agendamento de SMS, escolhi “Melhoria”.
Em seguida, preenchi todos os campos obrigatórios para enviar a proposta e cliquei em “Enviar novo problema”. Para me orientar, consultei um problema relatado anteriormente.
Você pode ver minha solicitação em aberto aqui. É isso aí — fiz uma contribuição para o código aberto! 🙌🏻
Equívocos comuns sobre o código aberto
Você precisa saber programar. Muitas pessoas acreditam que contribuir para projetos de código aberto exige habilidades avançadas de programação. Embora programar seja útil, há outras formas valiosas pelas quais as pessoas podem contribuir, como melhorar a documentação (reescrever, reformatar etc.), o design, os testes, a tradução, relatar bugs e oferecer apoio à comunidade. Nenhuma dessas atividades exige programação.
O código aberto é roubo. Algumas pessoas acreditam que copiar código aberto é roubar propriedade intelectual. GALERA! Lembram quando eu disse que projetos de código aberto precisam de licença? Se o mantenedor do projeto escolheu uma licença que permita permitir que outros usem, modifiquem e distribuam seu software, isso é totalmente legal fazer isso. O código aberto foi feito para ser usado. Digamos que um projeto tenha as funcionalidades de que você precisa para seu próprio aplicativo; por que reinventar a roda? E se, por acaso, você encontrar problemas nesse projeto enquanto o estiver usando, poderá contribuir relatando o problema ou corrigindo-o você mesmo. Desde que você dê o devido crédito a quem é devido, tudo é válido. Apenas lembre-se de que nem todas as licenças proíbem isso.
Por exemplo, a Licença Apache tem poucas restrições e permite que o código seja incorporado a projetos comerciais sem exigir que todo o projeto seja de código aberto. Essa é a licença utilizada pelo SDK do Python da Vonage (mencionado no início do blog).
Não dá para ganhar dinheiro com código aberto. No começo, eu também tinha essa dúvida, porque não entendia como uma empresa de código aberto poderia ganhar dinheiro se disponibiliza seu código gratuitamente. O código continua sendo gratuito. No entanto, muitas empresas que criam software de código aberto conseguem gerar receita oferecendo serviços como suporte pago, recursos personalizados ou treinamento para os clientes sobre como usar o próprio projeto.
Por exemplo, o Projeto CAMARA é um projeto de código aberto da Linux Foundation que possui subprojetos relacionados à telecomunicação, como troca de SIM e Verificação de Número. Uma grande empresa como a Ericsson ainda pode usar legalmente a API do SIM Swap e API de verificação de número para desenvolver seus produtos comercializados.
Como tornar seu projeto de código aberto
Escolha uma licença de código aberto: Embora você não precise passar por nenhum processo de aprovação para confirmar que seu projeto é de código aberto, é obrigatório que você escolha uma licença aprovada que esteja alinhada com seus objetivos, proveniente de uma fonte confiável, como a Open Source Initiative. Ao escolher uma licença, leve em consideração os diferentes casos de uso do seu projeto, como, por exemplo, o desenvolvimento de um produto de software que você gostaria de vender.
Prepare seu projeto para lançamento público: Certifique-se de que seu código esteja bem documentado e organizado, e crie diretrizes de contribuição que descrevam como outras pessoas podem se envolver e enviar melhorias para o projeto. Não se esqueça de incluir a licença escolhida no seu projeto.
Publique seu projeto em uma plataforma de hospedagem: Envie seu código para a plataforma escolhida — lembre-se de incluir o arquivo de licença! Repositórios públicos de código como GitHub ou GitLab são opções populares para hospedar projetos de código aberto.
E pronto! Seu projeto agora é considerado de código aberto e está à disposição de todos.
Compartilhe seus projetos de código aberto conosco!
Sempre ficamos entusiasmados em ver o que os desenvolvedores criam usando nossas APIs e SDKs de código aberto da Vonage. Se você ainda não faz parte da nossa comunidade de desenvolvedores da Vonage, adoraríamos que você participar do nosso canal no Slack e seguir nossa equipe no X, antes conhecido como Twitter, para que todos possam ver todos os projetos legais que você quiser compartilhar. Se você gostou deste blog (ou não), fique à vontade para me avisar no X e me diga quais são alguns dos seus projetos de código aberto favoritos!