Como contribuir com software livre no seu tempo livre
Neste post mostrarei como é fácil contribuir com software livre, mesmo sem nenhum conhecimento de programação! Se você se sente em dívida com seu programa favorito ou com a comunidade de SL e gostaria de contribuir de forma além da financeira e de suporte, esta publicação pode lhe ajudar.
Nas próximas seções descreverei as muitas formas de se contribuir com a comunidade de SL.
Empacotamento
Pré-requisitos:
- Saber construir (configurar, compilar, testar, etc) programas.
- Experiência com algum gerenciador de pacotes (APT, Guix, …)
Por onde começar: lendo a documentação de como iniciar no empacotamento (Debian, Guix). Uma forma fácil de aprender o processo de empacotamento é atualizando versões de pacotes, mesmo que estes pacotes já estejam mantidos regularmente. O Debian mantém uma lista de pacotes que precisam de trabalho. O Repology é um monitor de pacotes em vários repositórios e muito útil para buscar tarefas em qualquer um deles.
Tradução
Pré-requisitos:
- Inglês e outro idioma
- Conhecimento de utilizador do programa que se quer traduzir
Cada projeto tem sua escolha de plataforma ou meios para tradução. Uma plataforma livre muito utilizada no momento é o Weblate. Alguns projetos estão hospedados na instância de lá, enquanto outros possuem sua própria instância, enquanto outros possuem suas próprias plataformas (GNOME, KDE). A plataforma Launchpad também abriga a tradução de muitos projetos.
Por onde começar: Verifique os programas disponíveis na plataforma do Weblate aqui. Se tiver experiência com algum e puder ajudar a traduzir, é só se cadastrar na plataforma e começar imediatamente.
Arte digital
Pré-requisitos: conhecimento em algum dos programas listados abaixo:
- Inkscape
- GIMP
- Krita
Você pode criar panfletos de divulgação de algum software importante (exemplo), trabalho artístico pessoal, criação de logomarcas para projetos novos, etc. Para este último caso, um projeto que atualmente está procurando um artista para criação de logomarca é o GNU Artanis.
Por onde começar: tutoriais ou cursos das ferramentas mencionadas.
Programação
Pré-requisitos:
- Conhecimento em alguma linguagem de programação
- Conhecimento em algum sistema de controle de versão (majoritariamente Git)
- Conhecimento em utilização do programa que se quer desenvolver
É possível contribuir com código mesmo não sendo da área de TI. Python, por exemplo, é uma linguagem de alto nível de abstração e de propósito geral que possui casos de uso em praticamente qualquer área (ciência, desenvolvimento web, desenvolvimento desktop, jogos). É muito comum encontrar profissionais de outras áreas utilizando Python.
Por onde começar (pelo modelo Pull-Request):
- Criar um fork de um projeto e baixar o código do fork.
- Criar uma nova branch (se usando o Git).
- Compilar (se for linguagem compilada).
- Modificar o código.
- Recompilar e testar as modificações.
- Enviar as modificações ao projeto, se forem pertinentes.
Projetos que utilizam hospedagem de repositórios como GitHub ou GitLab, normalmente usam etiquetas (labels) de Issues. Para iniciantes, os projetos costumam usar a etiqueta good first issue. Para iniciar no desenvolvimento, pode-se escolher uma destas e tentar resolver o problema, ainda sem enviar a solução, apenas para aprendizado. Depois de estudar o código fonte por algum tempo e entender a dinâmica da comunidade, é recomendado submeter a contribuição.
Jogos
Pré-requisitos: algum conhecimento de
- Programação
- Arte digital
Alguns jogos livres estão buscando voluntários para converter o código do motor atual para o motor Godot. Exemplos são The Battle for Wesnoth (BfW) e Unknown Horizons. Além da programação, você pode criar conteúdo para jogos como campanhas para BfW.
Para reescrever um jogo em Godot, tudo o que se precisa saber é como utilizar o Godot, a linguagem GDScript e a mecânica do jogo em questão.
Por onde começar: Documentação do Godot, GDQuest.
Produção de conteúdo individual
Pré-requisitos:
- Boa comunicação
- Presença em mídias sociais
Você pode contribuir criando conteúdo para mídias sociais. Esta é uma forma de contribuição individual, sem se envolver necessariamente com alguma comunidade.
Por onde começar: produzindo conteúdo sobre algum programa com que se tenha experiência de uso em qualquer meio de distribuição (blog, vídeo…). Pode ser documentação, tutoriais, cursos ou demonstrações.
Outras formas relacionadas
Enquanto não exatamente de software livre, as comunidades relacionadas de dados abertos também buscam constantamente por voluntários. Estas necessitam de menos conhecimento técnico e ocupam menos tempo para contribuir. Alguns exemplos destas comunidades são:
- OpenStreetMap (OSM): Você pode começar adicionando pontos de interesse na sua cidade.
- lib.reviews: Você pode escrever resenhas de… qualquer coisa no mundo, basta ter um identificador do objeto. Precisa de convite para registro de conta.
- OpenFoodFacts (OFF), OpenBeautyFacts, OpenProductFacts: Você pode cadastrar novos produtos.
- GNOME Recipes: Se você gosta de culinária, pode compartilhar receitas ao banco de dados do GNOME.
- Wikis: Wikipedia, LibreGameWiki, FSF Directory… dentre muitas outras.
Conclusões
Existem várias formas de se contribuir com software livre com graus variados de dificuldade. Programação pode exigir tempo e dedicação, mas adicionar um ponto de interesse no OSM ou um produto no OFF não leva mais do que 5 minutos. Você pode começar agora mesmo.
Este post será atualizado de tempos em tempos conforme descubro mais formas de contribuição. Sugira outras formas nos comentários!