uv-publish is a simple command line wrapper to run uv publish using your configured Python PyPi
credentials from your ~/.pypirc file. Simply run
uv-publish instead of uv publish with any of the options and
arguments that uv publish normally accepts. uv-publish will read
your ~/.pypirc and pass those credentials to uv publish as arguments
--username, --password, or --token, and --publish-url. Those
arguments are passed automatically at the start of the uv publish
command line so they can be overridden manually by later arguments if
required.
Note that similar tools to push your Python packages to PyPi
such as twine, hatch, and flit recognise
the common ~/.pypirc file so this wrapper is created to
enable uv publish to do the same.
By default uv-publish will use the first repository in your ~/.pypirc file
(defaulting to pypi if the file does not exist). You can specify the
repository to use from your ~./pypirc file with the --repository (or
--repo) option. This is the only option that uv-publish accepts itself, all
other options and arguments are passed directly to uv publish. Note that
--repository is the switch that twine and flit accept, and --repo is
the switch that hatch accepts, so uv-publish accepts both.
This utility has been developed and tested on Linux but should also work on macOS and Windows although has not been tried on those platforms. The latest documentation and code is available at https://github.com/bulletmark/uv-publish.
You are a uv user so you should have uv installed. Just run
uv-publish as follows (uv-publish will get automatically installed
by uvx if you don't already have it):
$ uvx uv-publish [uv publish options]E.g. if you use twine to publish your package[s] and you
store your PyPi credentials in ~/.pypirc then you can
swap to uv-publish by simply changing the command:
$ twine upload dist/*to:
$ uvx uv-publishOf course uv-publish is available from PyPi so you can
choose to install it using uv tool install if you prefer a traditional
approach.
Type uv-publish -h to view the usage summary:
usage: uv-publish [-h] [--repository {pypi,testpypi}]
Command line wrapper to run `uv publish` using default credentials from your
`~/.pypirc`. All extra arguments supplied on the command line are passed to
`uv publish`.
options:
-h, --help show this help message and exit
--repository, --repo {pypi,testpypi}
Name of the repository to upload to (must match a
repository in your .pypirc file). Default is "pypi".
Copyright (C) 2024 Mark Blakeney. This program is distributed under the terms of the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at https://en.wikipedia.org/wiki/GNU_General_Public_License for more details.