Meu estágio de código aberto durante uma pandemia
Trabalhar remotamente durante meu estágio de verão não prejudicou minha capacidade de contribuir com minhas habilidades em Python ou aprender novos recursos.
Em maio de 2020, nos primeiros meses da pandemia do coronavírus, iniciei um estágio de verão na Red Hat. A COVID-19 interrompeu meu terceiro ano de estudo de engenharia da computação na Georgia Tech, e descobri que teria que trabalhar remotamente durante todo o verão. Eu não tinha certeza do que esperar de um estágio virtual.
Este foi meu segundo estágio, mas minha primeira vez trabalhando totalmente remotamente. Adaptei-me rapidamente ao novo ambiente virtual – acho que ter tão pouca experiência em um espaço de trabalho físico me ajudou. A parte mais difícil de trabalhar remotamente era saber quando parar de trabalhar e encerrar o dia. Foi fácil me envolver no meu trabalho, escrever outra linha de código e terminar mais uma tarefa. Porém, direi que não perdi o trajeto.
Passei meu estágio trabalhando na equipe Pulp. Pulp é uma plataforma para gerenciar repositórios de pacotes de software e disponibilizá-los para diversos consumidores. O Pulp pode espelhar todo ou parte de um repositório localmente, hospedar pacotes de software em repositórios e gerenciar muitos tipos de conteúdo de várias fontes em um só lugar. Para gerenciar um determinado tipo de conteúdo com o Pulp, basta adicionar um plug-in de conteúdo a ele.
Trazendo o plugin Pulp Python atualizado
Desde o lançamento do Pulp 3 em dezembro de 2019, a comunidade Pulp tem trabalhado em um fluxo rápido de lançamentos. Em meu estágio, meu foco foi atualizar o plugin Pulp Python e adicionar funcionalidades para que o plugin Pulp Python pudesse espelhar todo o repositório PyPI, que é enorme com milhares de pacotes. Embora isso fosse tecnicamente possível antes, era extremamente demorado e exigia um grande volume de solicitações aos servidores do PyPI, o que não é prático.
Fui orientado pelos engenheiros da Pulp Daniel Alley, Dennis Kliban e Grant Gainey. Ao analisarmos como abordar o problema, Daniel sugeriu que o plugin Pulp deveria interagir com o software de espelhamento de repositório do Python, Bandersnatch.
No entanto, nada que valha a pena fazer é tão fácil. A API Bandersnatch exigiu algumas atualizações para funcionar com o plugin Python do Pulp. Daniel abriu uma conversa com a comunidade Bandersnatch e explicou o que pretendíamos fazer. Eles foram muito receptivos às nossas ideias e muito dispostos a ampliar o código para que pudesse ser utilizado de forma mais ampla. Então, acabei contribuindo tanto para o Pulp Python quanto para o Bandersnatch para que o plugin Pulp Python pudesse aproveitar as vantagens do conjunto de ferramentas de filtragem do Bandersnatch.
Agora que este trabalho foi concluído, você pode usar o plugin Pulp Python para espelhar todo o PyPI em pouco mais de uma hora. Com as contribuições da equipe Pulp para Bandersnatch, também deve ser possível usar a API Bandersnatch para espelhar conteúdo Python de outras fontes além do PyPI (incluindo o próprio Pulp).
Trabalhando entre comunidades
Trabalhando nas comunidades Pulp e Python Bandersnatch, aprendi que cada comunidade de código aberto faz as coisas de maneira diferente. É importante compreender os métodos preferidos de cada comunidade de código aberto para rastreamento de problemas, testes, mensagens de commit, pull requests e envios de changelog. Também aprendi que, em qualquer comunidade com a qual você esteja trabalhando, compreender seus membros e seus objetivos é crucial para realizar um trabalho que beneficie a todos.
A versão mais recente do plugin Pulp Python está disponível com Pulp 3.9 e superior. Você pode conferir todos os seus recursos e como utilizá-los através da documentação. Se você quiser experimentar, o Pulp Python pode ser instalado a partir do PyPI ou do código-fonte. Vinculações de cliente para Python e Ruby também estão disponíveis.