Ir para o conteúdo

Conteúdo Extra

O PyPI (Python Package Index) é um repositório online onde desenvolvedores podem publicar e compartilhar pacotes de código Python. Todos os pacotes publicados nele são públicos e ficam disponíveis para qualquer pessoa usar através da instalação via pip.

Como publicar meu pacote Python no PyPI?

1 - Criando uma Conta no PyPI

Vá até PyPI e crie uma conta. Após criar sua conta, você terá acesso ao painel de controle do PyPI. Atualmente o PyPI obriga os usuários usarem 2FA, desta forma será necessário ativar o 2FA para obter o token que será utilizado na etapa seguinte.

2- Instalando o twine

Para fazer o upload para o PyPI, você precisará do twine, que é a ferramenta recomendada para o upload de pacotes Python.

pip install twine

3 - Enviando o Pacote para o PyPI

Com o pacote gerado, no diretório dist, use o seguinte comando para enviar o pacote para o PyPI:

twine upload dist/*

Será solicitado o token da API do PyPI, basta colar no terminal e pressionar o enter. Após o upload, o pacote estará disponível publicamente.

Atenção

No Windows, pode ser que seu terminal esteja configurado para receber entradas silenciosas, uma abordagem muito comum para aceitar dados sensíveis no terminal. Desta forma, ao tentar colar o token no terminal ele não ficará aparente, mas basta seguir pressionando o enter que a entrada será computada.

Atenção

O Twine pode retornar um erro que seu novo projeto não pode ser criado com o nome desejado, apesar de nenhuma evidência de um projeto ou versão do mesmo nome no PyPI. Atualmente, há quatro razões principais que isso pode ocorrer:

  • O nome do projeto está em conflito com um módulo da Biblioteca Padrão do Python de qualquer versão principal de 2.5 até o presente.
  • O nome do projeto é muito semelhante a um projeto existente e pode ser confundido.
  • O nome do projeto foi explicitamente proibido pelos administradores do PyPI. Por exemplo, pip install requirements.txt é um erro de digitação comum para pip install -r requirements.txt e não deve surpreender o usuário com um pacote mal-intencionado.
  • O nome do projeto foi registrado por outro usuário, mas não foram criados lançamentos.Veja Como faço para reivindicar um nome de projeto abandonado ou registrado anteriormente?

Para atualizar o nome do pacote, é necessário atualizar o parâmetro name do método setup, no arquivo `setup.py, e gerar novamente o pacote Python. Em seguida, apague o .targz com nome antigo da pasta dist para seguir com a etapa de upload no PyPI.

4 - Instalando a Biblioteca via PyPI

Após a publicação, qualquer pessoa pode instalar sua biblioteca com o pip:

pip install meu_rpa

Alternativas para disponibilizar internamente

Se você preferir não publicar sua biblioteca no PyPI, há várias maneiras de distribuí-la internamente na sua empresa. Vamos explorar algumas opções.

1 - Instalando pacotes do Git

Se a sua biblioteca estiver em um repositório Git privado, use o seguinte comando para instalar diretamente:

pip install git+https://github.com/empresa/meu_rpa.git
Caso o repositório seja privado, use a URL com SSH ou forneça suas credenciais.

2 - Usando diretórios compartilhados

Se a configuração de um servidor for muito complexa, você pode simplesmente armazenar os pacotes em um diretório compartilhado em rede e instalar diretamente de lá.

Instalando do diretório compartilhado

Depois de gerar o pacote (no formato .tar.gz ou .whl), coloque-o em um diretório compartilhado e instale com:

pip install /path/to/shared/directory/meu_rpa-0.1.0.tar.gz

3 - Utilizando Nexus repository

Nexus é uma plataforma open source que permite gerenciar e armazenar pacotes de várias linguagens e ferramentas e é uma alternativa para empresas e equipes que precisam de repositórios privados para armazenar e compartilhar pacotes de maneira mais controlada e segura. Com Nexus você pode:

  • Configurar o Nexus como um proxy de repositório PyPI. Isso significa que você pode usar o Nexus para armazenar pacotes internos, além de permitir a instalação de pacotes do PyPI público de maneira mais controlada.

  • O Nexus pode ser usado para cachês de pacotes do PyPI, ou seja, ele pode armazenar uma cópia local de pacotes públicos do PyPI para reduzir o tráfego externo e melhorar a velocidade de instalação em ambientes corporativos.

Entenda mais sobre essa manipulação, acessando esse link.

Como utilizar o Snyk localmente em seu projeto?

Para utilizar o Snyk via linha de comando, você pode seguir este tutorial que mostra a execução dos comandos básicos para verificar vulnerabilidades em suas dependências de projetos.

1 - Instalar o Snyk

A instalação do Snyk costumar ser bem simples, mas como pode variar de acordo com o sistema operacional, sugerimos que siga o link oficial do Snyk para obter o passo a passo da instalação de acordo com o seu sistema.

2 - Autenticar com o Snyk:

Para usar o Snyk de maneira eficaz, você precisa de uma conta no Snyk para monitorar vulnerabilidades de seus projetos.

Autentique-se via linha de comando:

Após instalar o Snyk, você precisa se autenticar. Para isso, execute:

  snyk auth
Isso abrirá uma página no navegador solicitando que você faça login ou crie uma conta no Snyk.

3 - Verificar Vulnerabilidades

Agora que você está autenticado, você pode usar os comandos do Snyk para verificar vulnerabilidades em seu projeto.

Verificar Vulnerabilidades em Dependências:

O Snyk pode verificar as dependências de segurança de seus projetos. Se você estiver em um projeto com um arquivo requirements.txt (para Python), basta executar o comando abaixo no diretório do seu projeto:

  snyk test

O comando snyk test irá analisar as dependências listadas no arquivo equirements.txt e verificar se há vulnerabilidades conhecidas nessas dependências. Ele irá retornar um relatório com as vulnerabilidades encontradas, a gravidade e as possíveis correções.

Uso do SonarQube para garantir a qualidade do código

O SonarQube é uma ferramenta de análise estática de código que ajuda a identificar problemas no código de forma automatizada, promovendo a melhoria contínua na qualidade do software. Ele detecta problemas oferecendo insights valiosos sobre como melhorar o código.

Por que usar o SonarQube?

  • Qualidade do Código: Detecta erros, duplicação e complexidade excessiva.
  • Débito Técnico: Ajuda a controlar e reduzir a débito técnico, garantindo que o código que você modifica, atualiza ou adiciona não introduza novos problemas.
  • Integração com CI/CD: Análises automatizadas do código sempre que houver novas alterações.

Benefícios

  • Feedback Rápido: Permite que os desenvolvedores corrijam problemas antes que eles se tornem críticos.
  • Melhoria Contínua: Estimula a adoção de boas práticas e a manutenção de um código limpo e seguro.
  • Visualização de Métricas: Oferece dashboards e relatórios detalhados sobre a saúde do código, facilitando a gestão da qualidade.

Entenda mais sobre SonarQube em seu site oficial.