Skip to main content

pypublish-cli

A CLI tool for publishing Python packages to PyPI.

Installation

pip install pypublish-cli

Usage

Initialize pyproject.toml

pypublish --init-pyproject    # Add setuptools_scm config to pyproject.toml (creates it if missing)

Initialize repository

pypublish --init-repo              # Initialize local git repo only
pypublish --init-repo --github     # Initialize git and create GitHub repo
pypublish --init-repo --github myproject  # Specify custom repo name
pypublish --init-repo --github --private  # Create private GitHub repo
pypublish --github                 # Create GitHub repo (git already initialized)

--init-repo will:

  1. Initialize git repository (if not already initialized)
  2. Add all files and create initial commit

--github additionally: 3. Create GitHub repository using gh CLI 4. Push to GitHub

Full publish workflow

pypublish 0.2.0              # Full publish: tag, build, upload
pypublish v0.2.0             # Full publish: tag, build, upload

This will:

  1. Validate the environment (pyproject.toml, build tools)
  2. Create a git tag and push to origin
  3. Clean up old build artifacts
  4. Build the package using python -m build
  5. Upload to PyPI using uv publish (if available) or twine upload

Partial workflows

pypublish 0.2.0 --tag-only         # Only create and push tag
pypublish 0.2.0 --build-only       # Tag and build, don't upload
pypublish 0.2.0 --no-build         # Tag and upload existing dist/
pypublish 0.2.0 --no-upload        # Tag and build, don't upload

Delete a tag

pypublish --delete-tag 0.2.0       # Delete tag locally and from origin
pypublish --delete-tag v0.2.0      # Delete tag locally and from origin

Requirements

  • Python >= 3.7
  • build (pip install build)
  • uv or twine for uploading (pip install twine)
  • gh CLI for GitHub repository creation

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypublish_cli-0.2.2.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypublish_cli-0.2.2-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file pypublish_cli-0.2.2.tar.gz.

File metadata

  • Download URL: pypublish_cli-0.2.2.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for pypublish_cli-0.2.2.tar.gz
Algorithm Hash digest
SHA256 0c5bf3160ec86b10105f9eee5a84081d22704cd6dcd1a6ac8be468fbd9a24eed
MD5 a1505dc5acfb30a06dd68a49faf196f1
BLAKE2b-256 202977b4e779081bc1a6ff6df5108932f37b75e1fed9a0a848cd36cf2a7d6d7c

See more details on using hashes here.

File details

Details for the file pypublish_cli-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: pypublish_cli-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 6.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for pypublish_cli-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 219cca46c0df34dcd83c14100e592c16a966c378b9ba61b42d6cbc160ce5d36a
MD5 c0116404b65511fbfbb4c8d3383f0efb
BLAKE2b-256 bef3826687cdcf2fd728215809df424b63e9335e592cb79eb9eb839d7a25c65f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page