updv
tiny version string updater written in python.
updv updates a version string across a project from a single version value, using a configurable TOML-based configuration file. this keeps version values in source files, package metadata, documentation, and other project files synchronized.
features
- toml-based configuration (
.updv.toml) - simple
getopt-based cli frontend - update multiple files from a single version value
- configurable file creation and failure behavior
- templated paths, patterns, and replacements
- minimal runtime dependencies
dependencies
updv requires at least
- a python 3.11 or newer interpreter
runtime dependencies include
packaging: to parse and modify version strings
development dependencies include
pytest: to execute the unit tests
installation
clone the repository and install updv in editable mode.
python -m pip install -e .
or install via PyPI
python -m pip install updv
configuration
create a project configuration from the included example:
cp updv.toml.example .updv.toml
edit .updv.toml to define which files and version values updv should update.
example
.updv.toml:[project] name = "hello" version = "0.0.0" previous_version = "0.0.0" [project.vars] changelog_header = "Unreleased" [project.files.initpy] path = "src/{name}/__init__.py" on-missing-file = "fail" on-no-match = "fail" enabled = true pattern = "__version__ = \"{old}\"" replacement = "__version__ = \"{new}\"" [project.files.changelog] path = "CHANGELOG.md" on-missing-file = "fail" on-no-match = "skip" enabled = true pattern = "## \\[{changelog_header}\\]" replacement = "## [{new}] - {date}" [project.files.version] path = "VERSION" on-missing-file = "create" on-no-match = "write" enabled = true pattern = "{old}" replacement = "{new}"paths, patterns, and replacements support project and version variables such as
{old},{new},{name}, and{date}. custom placeholders can be added through the[project.vars]section on the configuration file.
policies
on-missing-file
create: create an empty fileskip: skip the filefail: fail with an error
on-no-match
append: append the replacement to the fileprepend: prepend the replacement to the filewrite: overwrite the file with the replacementskip: skip the filefail: fail with an error
usage
updv -n 0.2.0 # updates version values to 0.2.0
updv -h # view all available cmd options
testing
running the test suite can be done with pytest
pip install -e ".[dev]" # install dev dependencies
pytest -vs . # run the unit tests
project status
updv is in active development. while functional, it is not yet production-ready for real-world usage.
- CHANGELOG.md -- release history
- CONTRIBUTING.md -- how to report bugs and send patches
license
BSD-3-Clause, see LICENSE
Release files for updv 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| updv-0.4.0.tar.gz | 13.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| updv-0.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.7 kB
Release files / updv-0.4.0.tar.gz
| Download URL | updv-0.4.0.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
deafb96c6433702326d6b6e78c37839f10ea33b753096d41149c945b8fb5fee0
|
|
BLAKE2b-256 checksum How to use checksums |
a13bf4a96297b3a0f90300ea9fe017190dad7fed6b9516780879ccf96afd7dee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency logRelease files / updv-0.4.0-py3-none-any.whl
| Download URL | updv-0.4.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d456fdfd8b7dbf965ee0305d3d64cd24e9befd8963b0b5d4ad2f6bf7cef62f9d
|
|
BLAKE2b-256 checksum How to use checksums |
f7840e6e2aff57f6b02973fc2f464a676b401dbb120bf22a47c00419174295b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log