Registry / devops / uv-dynamic-versioning

uv-dynamic-versioning

JSON →
library0.14.1pypypi✓ verified 26d ago

uv-dynamic-versioning is a plugin for `uv` (and `hatch`) that provides dynamic versioning capabilities for Python projects, typically by deriving versions from Git VCS tags. It's built on top of `setuptools_scm` and offers various configuration options for version formatting and bumping. The current version is 0.14.0, with frequent minor releases addressing features, bug fixes, and documentation.

pip install uv-dynamic-versioning
INSTALL
IMPORT
SIG · UV-DYNAMIC-VERSION
U
uv-dynamic-versioning
devopspythonv0.14.1
Install
2.3s avg
Import
Disk
21MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v0.14.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
installs and imports cleanly · install 0.0s · import 0.000s · 22.6MB
glibc
py 3.103.95 runs
installs and imports cleanly · install 2.3s · import 0.000s · 23MB
21MB installed
● package 21MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

uv-dynamic-versioning
This library is primarily configured via `pyproject.toml` and invoked indirectly through build tools like `uv` or `hatch`. Direct Python imports are not a typical use case for end-users.
Users interact with this tool via `pyproject.toml` configuration and command-line execution (e.g., `uv build`), rather than importing Python modules.

Configure dynamic versioning in your `pyproject.toml` and then use `uv build` to build your project, allowing `uv-dynamic-versioning` to automatically determine and apply the version based on your VCS tags.

# pyproject.toml [project] name = "my-dynamic-project" version = "0.0.0" # This placeholder will be overwritten by uv-dynamic-versioning [tool.uv-dynamic-versioning] # Optional: Specify version source and style source = "git_archive" style = "default" # Terminal pip install uv uv-dynamic-versioning git init git add . git commit -m "Initial commit" git tag 0.1.0 uv build
Debug
Known issues
breakingStarting from v0.9.0, `uv-dynamic-versioning` no longer auto-coerces configuration values. Boolean and other types must be set explicitly with their correct type.
fix
Ensure all configuration values in `pyproject.toml` (e.g., `bump`, `tag`) are set with their correct Python type (e.g., `bump = true` instead of `bump = "true"`).
affects: >=0.9.0
gotchaThe minimum Python version requirement was raised to 3.10.
fix
Ensure your development and build environments are running Python 3.10 or newer. Python 3.9 is no longer supported.
affects: >=0.13.0
gotchaWhen using `uv build`, remember that `uv` has its own build cache. If you change Git tags or commit messages that should alter the version, `uv` might serve a cached wheel with an old version string.
fix
To force a fresh build and ensure the latest dynamic version is applied, use `uv clean --all` or `uv build --refresh` before building your project. Refer to `uv`'s documentation on caching for more details.
affects: All versions
gotcha`uv-dynamic-versioning` primarily integrates with build systems (like `uv` or `hatch`) and modifies the project's version metadata during the build process. It's not a library intended for direct programmatic import and use within application code.
fix
Focus on configuring the tool via `pyproject.toml` and leveraging your chosen build orchestrator (`uv` or `hatch`) rather than attempting to import and call functions from `uv_dynamic_versioning` in your Python application.
affects: All versions
Upgrade
Version history
0.14.1latest on PyPI · released Aug 18, 2026
Audit
Dependencies
setuptools_scmrequiredThe core functionality for deriving versions from VCS tags relies heavily on `setuptools_scm` being available in the build environment.
Agent activity
10 hits · last 30 days
node
8
Resources