CLI tool for managing package version
Project description
uv-version
CLI tool for managing package version
Functionality
- Parsing:
git
,pyproject.toml
,env
,stdin
- Output to:
pyproject.toml
,stdout
Increment
Quick start
uvx uv-version increment
Configs
Commands
Arguments for using version
--to-pyproject
: Set a new version in pyproject.toml. [Default]--to-print
: Print the new version to the console.
Arguments for getting version
--from-pyproject
: Version is determined by the value in pyproject.toml project.version [Default]--from-git
: Version is determined based on thegit status
--from-stdin
: Version is expected as the last argument of the call or from stdin--from-env
: Version is expected in the environment variable$PACKAGE_VERSION
.
You can use multiple attributes together.
When retrieving the version from different sources, keep in mind that the highest version will be used in the end.
uvx increment
Increases the version by 1
$ uvx uv-version --to-print
0.1.1
$ uvx uv-version --to-print increment prerelease
0.1.2a1
$ uvx uv-version --to-print increment micro
0.1.3
$ uvx uv-version --to-print increment minor
0.2.0
$ uvx uv-version --to-print increment major
1.0.0
Use cases
Publishing python package to pypi via uv with version equal to git tag
.gitlab-ci.yml:
pypi:
stage: publishing
image: ghcr.io/astral-sh/uv:python3.12-bookworm-slim
tags:
- docker
script:
- apt install git
- uvx uv-version --from-git
- uv build --no-sources
- uv publish
rules:
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- When creating a git tag: new package with version == {TAG}
- When pushing to CI_DEFAULT_BRANCH: new package with version == {TAG}a{N}
Publishing python package to private pypi via uv with version equal to git tag and commit hash
.gitlab-ci.yml:
pypi:
stage: publishing
image: ghcr.io/astral-sh/uv:python3.12-bookworm-slim
tags:
- docker
script:
- apt install git
# set alpha version template
- PACKAGE_VERSION_ALPHA_VERSION_FORMAT='{version}a{distance}+{commit_hash}'
# Update package version
- uvx uv-version --from-git
# Publishing to gitlab
- UV_PUBLISH_URL=https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/packages/pypi
- UV_PUBLISH_TOKEN=${PYPI_TOKEN}
- uv build --no-sources
- uv publish
rules:
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- When creating a git tag: new package with version == {TAG}
- When pushing to CI_DEFAULT_BRANCH: new package with version == {TAG}a{N}+{COMMIT_HASH}
Roadmap
- logging
- tests
- version construct
- Set to
__init__
,__version__
,VERSION
files
Contribute
Issue Tracker: https://gitlab.com/rocshers/python/uv-version/-/issues
Source Code: https://gitlab.com/rocshers/python/uv-version
Before adding changes:
make install-dev
After changes:
make format test
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
uv_version-0.1.8.tar.gz
(9.2 kB
view details)
Built Distribution
File details
Details for the file uv_version-0.1.8.tar.gz
.
File metadata
- Download URL: uv_version-0.1.8.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b456240e741212bc9441e9a00bec3bc31106d050fcb28f06891eee83450c19d8 |
|
MD5 | f9c42cc680ae0bb5a751a0ac68f26da8 |
|
BLAKE2b-256 | 0d8804422cd04bda0c4a08b50534f25f11fdbe1664de128d6d1ae87bc1482c40 |
File details
Details for the file uv_version-0.1.8-py3-none-any.whl
.
File metadata
- Download URL: uv_version-0.1.8-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 646ea56109251848f4804fe8204b54bd17f70bafa5447c5751a6f561ec09ab6d |
|
MD5 | eb0f40ca0a77b311d3b3673955b42251 |
|
BLAKE2b-256 | aa4031fc58324cc9ec9f0a40e77235d25fde3d13fab9d3f44fdc935cfb1ae62b |