{"id":26232551,"url":"https://github.com/bulletmark/uv-publish","last_synced_at":"2025-04-22T10:40:55.706Z","repository":{"id":257798560,"uuid":"862871340","full_name":"bulletmark/uv-publish","owner":"bulletmark","description":"Command line wrapper  to run `uv publish` using default credentials from `~/.pypirc`","archived":false,"fork":false,"pushed_at":"2025-02-19T01:16:43.000Z","size":13,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-19T02:25:09.387Z","etag":null,"topics":["flit","hatch","pypi","twine","uv"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bulletmark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-25T10:28:12.000Z","updated_at":"2025-02-19T01:16:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"f53700c9-6372-428d-b31f-959e5b9b7689","html_url":"https://github.com/bulletmark/uv-publish","commit_stats":null,"previous_names":["bulletmark/uv-publish"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fuv-publish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fuv-publish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fuv-publish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulletmark%2Fuv-publish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bulletmark","download_url":"https://codeload.github.com/bulletmark/uv-publish/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243318778,"owners_count":20272136,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flit","hatch","pypi","twine","uv"],"created_at":"2025-03-13T00:37:28.923Z","updated_at":"2025-04-22T10:40:55.518Z","avatar_url":"https://github.com/bulletmark.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"## UV-PUBLISH - run `uv publish` using credentials from your `~/.pypirc`\n[![PyPi](https://img.shields.io/pypi/v/uv-publish)][uv-publish-py]\n\n[`uv-publish`][uv-publish] is a simple command line wrapper to run [`uv\npublish`][uv_publish] using your configured Python [PyPi][pypi]\ncredentials from your [`~/.pypirc`][pypirc] file. Simply run\n`uv-publish` instead of `uv publish` with any of the options and\narguments that `uv publish` normally accepts. `uv-publish` will read\nyour `~/.pypirc` and pass those credentials to `uv publish` as arguments\n`--username`, `--password`, or `--token`, and `--publish-url`. Those\narguments are passed automatically at the start of the `uv publish`\ncommand line so they can be overridden manually by later arguments if\nrequired. \n\nNote that similar tools to push your Python packages to [PyPi][pypi]\nsuch as [`twine`][twine], [`hatch`][hatch], and [`flit`][flit] recognise\nthe common [`~/.pypirc`][pypirc] file so this wrapper is created to\nenable [`uv publish`][uv_publish] to do the same.\n\nBy default `uv-publish` will use the first repository in your\n`~/.pypirc` file (defaulting to `pypi` if the file does not exist). You\ncan specify the repository to use from your `~./pypirc` file with the\n`--repository` (or `--repo`) option. This is the only option that\n`uv-publish` accepts itself, all other options and arguments are passed\ndirectly to `uv publish`. Note that `--repository` is the same switch\nthat `twine` and `flit` accept, and `--repo` is the same switch that\n`hatch` accepts, so both are supported by `uv-publish`.\n\nThis utility has been developed and tested on Linux but should also work\non macOS and Windows although has not been tried on those platforms. The\nlatest documentation and code is available at\nhttps://github.com/bulletmark/uv-publish.\n\n## How to run\n\nYou are a [`uv`][uv] user so you should have `uv` installed. Just run\n`uv-publish` as follows (`uv-publish` will get automatically installed\nby [`uvx`][uvx] if you don't already have it):\n\n```sh\n$ uvx uv-publish [uv publish options]\n```\n\nE.g. if you use [`twine`][twine] to publish your package[s] and you\nstore your PyPi credentials in `~/.pypirc` then you can\nswap to [`uv-publish`][uv-publish] by simply changing the command:\n\n```sh\n$ twine upload dist/*\n```\n\nto:\n\n```sh\n$ uvx uv-publish\n```\n\nTo upgrade:\n\n```sh\n$ uvx uv-publish@latest --help\n```\n\nTo remove:\n\n```sh\n$ uv cache clean uv-publish\n```\n\nOf course `uv-publish` is available from [PyPi][uv-publish-py] so you\ncan choose to install it using [`pipx`][pipx] or [`pipxu`][pipxu] or\n[`uv tool`][uvtool] if you prefer a traditional approach.\n\n## Usage\n\nType `uv-publish -h` to view the usage summary:\n\n```\nusage: uv-publish [-h] [--repository {pypi,testpypi}]\n\nCommand line wrapper to run `uv publish` using default credentials from your\n`~/.pypirc`. All extra arguments supplied on the command line are passed to\n`uv publish`.\n\noptions:\n  -h, --help            show this help message and exit\n  --repository {pypi,testpypi}, --repo {pypi,testpypi}\n                        Name of the repository to upload to (must match a\n                        repository in your .pypirc file). Default is \"pypi\".\n```\n\n## License\n\nCopyright (C) 2024 Mark Blakeney. This program is distributed under the\nterms of the GNU General Public License. This program is free software:\nyou can redistribute it and/or modify it under the terms of the GNU\nGeneral Public License as published by the Free Software Foundation,\neither version 3 of the License, or any later version. This program is\ndistributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or\nFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at\n\u003chttp://www.gnu.org/licenses/\u003e for more details.\n\n[uv-publish]: https://github.com/bulletmark/uv-publish\n[uv]: https://docs.astral.sh/uv/\n[uvx]: https://docs.astral.sh/uv/guides/tools/\n[uv_publish]: https://docs.astral.sh/uv/guides/package/#publishing-your-package\n[twine]: https://twine.readthedocs.io/\n[hatch]: https://hatch.pypa.io/\n[flit]: https://flit.readthedocs.io/\n[pypirc]: https://packaging.python.org/en/latest/specifications/pypirc/\n[pypi]: https://pypi.org/\n[uv-publish-py]: https://pypi.org/project/uv-publish/\n[pipx]: https://github.com/pypa/pipx\n[pipxu]: https://github.com/bulletmark/pipxu\n[uvtool]: https://docs.astral.sh/uv/guides/tools/#installing-tools\n\n\u003c!-- vim: se ai syn=markdown: --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletmark%2Fuv-publish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbulletmark%2Fuv-publish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulletmark%2Fuv-publish/lists"}