Pular para conteúdo

Publicacao no PyPI

Esta pagina descreve o fluxo oficial de publicacao do projeto no PyPI usando Trusted Publisher com GitHub Actions.

Estado oficial do repositorio

  • nome do pacote: rede-neural-do-zero
  • workflow de publicacao: .github/workflows/publish.yml
  • environment do GitHub Actions: pypi
  • action de upload: pypa/gh-action-pypi-publish@release/v1
  • validacao pos-upload: instalacao limpa com pip install rede-neural-do-zero==<versao> e teste da CLI rede-neural-do-zero --help

Build local antes da release

python -m rede_neural_do_zero verify --build-package

Arquivos esperados em dist/:

  • rede_neural_do_zero-<versao>-py3-none-any.whl
  • rede_neural_do_zero-<versao>.tar.gz

Conferindo o status do PyPI

Use a CLI oficial para checar se o projeto ja existe no PyPI e qual configuracao do Trusted Publisher deve ser cadastrada:

python -m rede_neural_do_zero pypi-status

O comando imprime um JSON com:

  • URL esperada do projeto no PyPI
  • se o pacote ja existe ou nao
  • se ainda precisa de pending publisher
  • owner, repository, workflow e environment esperados pelo upload oficial

Configuracao unica no PyPI

Na primeira publicacao, o projeto ainda nao existe no PyPI. Nesse caso, e obrigatorio criar um pending publisher em:

Preencha exatamente assim:

  • PyPI project name: rede-neural-do-zero
  • Owner: SavioCodes
  • Repository name: rede-neural-do-zero
  • Workflow name: publish.yml
  • Environment name: pypi

Se algum desses campos nao bater com o workflow real, o upload vai falhar com erros como invalid-pending-publisher ou invalid-publisher.

Fluxo oficial fim a fim

  1. Atualize pyproject.toml, src/__init__.py e CHANGELOG.md.
  2. Rode python -m rede_neural_do_zero release-check.
  3. Rode python -m rede_neural_do_zero verify --build-package.
  4. Revise o draft de release notes gerado a partir do CHANGELOG.md.
  5. Confirme no PyPI que o pending publisher ja foi cadastrado com os campos corretos.
  6. Publique a release no GitHub.
  7. O workflow Publish vai:
  8. validar notebooks
  9. validar changelog, versao e release notes
  10. gerar wheel e sdist
  11. publicar no PyPI via Trusted Publisher
  12. criar uma venv limpa
  13. rodar pip install rede-neural-do-zero==<versao>
  14. validar import e a CLI oficial

Teste manual de instalacao limpa

Depois da primeira publicacao bem-sucedida, o smoke test manual fica assim:

python -m venv .venv-pypi-smoke
source .venv-pypi-smoke/bin/activate
python -m pip install --upgrade pip
python -m pip install rede-neural-do-zero
rede-neural-do-zero --help

No PowerShell:

python -m venv .venv-pypi-smoke
.\.venv-pypi-smoke\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install rede-neural-do-zero
rede-neural-do-zero --help

Release notes locais

python -m rede_neural_do_zero release-notes --version v2.5.0
python -m rede_neural_do_zero release-check
python -m rede_neural_do_zero release-notes --json --output logs/release-notes.md

Troubleshooting rapido

  • invalid-pending-publisher ou invalid-publisher: confira owner, repository, nome do workflow e environment cadastrados no PyPI.
  • Non-user identities cannot create new projects: o nome do projeto no pending publisher nao bateu com o project.name do pyproject.toml.
  • workflow Publish pulando ou sem permissao: confira se o job esta rodando no environment pypi e se o repositório usa o workflow .github/workflows/publish.yml.