Skip to main content

Publish to PYPI with uv by a single command: `uvx ship` (fixes `uv build && uv ship`).

Project description

uvxship

Build → Publish → Release for Python projects using uv.

Features

  • uvx build : cleans dist/ and runs uv build
  • uvx publish: uses ~/.pypirc to upload to PyPI
  • uvx ship : combines both in one go

Why?

Because uv publish doesn't yet support ~/.pypirc. This fills the gap. And PYPI rejects uv publish in the second try because dist/ contains older release packages. The "fix" is to clean dist/ before every uv build. And to wrap uv publish with a parser for ~/.pypirc to lookup the credentials. This smoothens the releasing/shipping of packages with uv.

So with a single command

uvx ship

you

  1. clean the dist/ folder
  2. uv build the package
  3. uv publish the package to PYPI or with --repository testpypi to test PYPI or other repositories when specified in the ~/.pypirc file.
  4. arguments passed to uvx ship are forwarded to uv publish.

CAVE!

uv pip install uvxship
pip install uvxship

does NOT make these uvx commands available! Only a uv tool install uvxship leads to the desired result!

Install By uv

uv tool install uvxship

Or Install Locally

git clone
uv tool install -e .    # or `uv tool install -e path/to/uvxship` 

This is like uv pip install -e . and installs the package to uv tool in editable mode.

Usage

uvx build
uvx publish

or a single

uvx ship

additional arguments to uvx ship are passed down to uv publish:

uvx ship --repository testpypi

This

  • cleans the dist/ file in the background
  • calls uv build
  • parses ~/.pypirc for PYPI credentials (you have to set it up yourself)
  • and publishes uv publish --repository testpypi

Project details


Download files

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

Source Distribution

uvxship-0.1.1.tar.gz (3.0 kB view details)

Uploaded Source

Built Distribution

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

uvxship-0.1.1-py3-none-any.whl (3.4 kB view details)

Uploaded Python 3

File details

Details for the file uvxship-0.1.1.tar.gz.

File metadata

  • Download URL: uvxship-0.1.1.tar.gz
  • Upload date:
  • Size: 3.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.4

File hashes

Hashes for uvxship-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d48c7e0c72d3c0447f0de8ce60bcc2aef134d812bdec0d35681aae7672e4a4ad
MD5 fceb14b8d6553cc45e49cd082f9aa03f
BLAKE2b-256 a3f375a03876dfea68594ec0a24bae9d9e60354505a1566a0b6b1ee8b029c707

See more details on using hashes here.

File details

Details for the file uvxship-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: uvxship-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 3.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.4

File hashes

Hashes for uvxship-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c1a76a6e21914bc974e9db7aed3c8ad7dbaa73fd0de17395c77502487786b41
MD5 80ec3d9abc1a5d9f2429c965b2e8da3c
BLAKE2b-256 ad70bfcc0b1e557817df4cfab72757148788175ea59843953ff950e3e9231c80

See more details on using hashes here.

Supported by

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