NewVersion - PEP 440 version manager


Features
Installation
python -m pip install newversion
Usage
uv
uvx newversion -p bump --save
uvx newversion -p bump minor --save
uvx newversion -p bump major --save
uvx newversion -p bump pre --save
uvx newversion -p set local ${COMMIT_SHA} --save
CLI
newversion
newversion bump major
newversion -p
newversion -p bump
newversion -p bump pre
newversion -p get minor
newversion -p --save bump minor
echo "1.2.3rc1" | newversion bump micro
echo "1.2.3rc1" | newversion bump minor
echo "1.2.3rc1" | newversion bump major
echo "1.2.3rc1" | newversion bump pre
echo "1.2.3rc1" | newversion bump rc
echo "1.2.3rc1" | newversion bump alpha
echo "1.2.3rc1" | newversion set micro 5
echo "1.2.3rc1" | newversion set minor 5
echo "1.2.3rc1" | newversion set major 5
echo "1.2.3rc1" | newversion set pre 5
echo "1.2.3rc1" | newversion set rc 5
echo "1.2.3rc1" | newversion set alpha 5
echo "1.2.3rc1" | newversion get micro
echo "1.2.3rc1" | newversion get minor
echo "1.2.3rc1" | newversion get major
echo "1.2.3rc1" | newversion get pre
echo "1.2.3rc1" | newversion get rc
echo "1.2.3rc1" | newversion get alpha
echo "1.2.3rc1" | newversion stable
echo "1.2.3rc1" | newversion is_stable
echo "1.2.3" | newversion is_stable
echo "1.2.3" | newversion is_stable && echo "Stable!"
echo "1.2.3rc1" | newversion gt "1.2.3"
echo "1.2.3rc1" | newversion lte "1.2.3"
Python library
from newversion import Version
version = Version("1.2.3")
next_version = version.bump_minor()
version.dumps()
version.bump_micro().dumps()
version.bump_minor().dumps()
version.bump_major().dumps()
version.bump_prerelease().dumps()
version.bump_prerelease(bump_release="minor").dumps()
version.bump_prerelease("alpha").dumps()
Version("1.2.3b4").bump_prerelease().dumps()
version.bump_micro().replace(dev=1234).dumps()
version.bump_postrelease().dumps()
Version("1.2.3.post3").bump_postrelease(2).dumps()
Version("1.2.3").is_stable
Version("1.2.3a6").is_stable
Version("1.2.3.post3").is_stable
Version("1.2.3.post3").get_stable().dumps()
Versioning
newversion
version follows PEP 440.
Latest changes
Full changelog can be found in Releases.