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:
- Initialize git repository (if not already initialized)
- 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:
- Validate the environment (pyproject.toml, build tools)
- Create a git tag and push to origin
- Clean up old build artifacts
- Build the package using
python -m build - Upload to PyPI using
uv publish(if available) ortwine 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)uvortwinefor uploading (pip install twine)ghCLI for GitHub repository creation
License
MIT
Metadata
Release files for pypublish-cli 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pypublish_cli-0.2.2.tar.gz | 5.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pypublish_cli-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.8 kB
Release files / pypublish_cli-0.2.2.tar.gz
| Download URL | pypublish_cli-0.2.2.tar.gz |
|---|---|
| Size | 5.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0c5bf3160ec86b10105f9eee5a84081d22704cd6dcd1a6ac8be468fbd9a24eed
|
|
BLAKE2b-256 checksum How to use checksums |
202977b4e779081bc1a6ff6df5108932f37b75e1fed9a0a848cd36cf2a7d6d7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|
Release files / pypublish_cli-0.2.2-py3-none-any.whl
| Download URL | pypublish_cli-0.2.2-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
219cca46c0df34dcd83c14100e592c16a966c378b9ba61b42d6cbc160ce5d36a
|
|
BLAKE2b-256 checksum How to use checksums |
bef3826687cdcf2fd728215809df424b63e9335e592cb79eb9eb839d7a25c65f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.7
|