Newversion
PEP 440 version manager
Install / Use
/learn @altitudenetworks/NewversionREADME
NewVersion - Your version manager
Features
- Follows PEP 440
- Fully compatible with packaging.Version
- Brings version bumping from semver
- Comes with a helpful CLI tool
newversion - Shines in CI
Installation
python -m pip install newversion
Usage
CLI
newversion # 0.0.0
newversion bump major # 1.0.0
python setup.py --version # 1.2.3
python setup.py --version | newversion bump # 1.2.4
python setup.py --version | newversion get minor # 2
echo "1.2.3rc1" | newversion bump micro # 1.2.3
echo "1.2.3rc1" | newversion bump minor # 1.3.0
echo "1.2.3rc1" | newversion bump major # 2.0.0
echo "1.2.3rc1" | newversion bump pre # 1.2.3rc2
echo "1.2.3rc1" | newversion bump rc # 1.2.3rc2
echo "1.2.3rc1" | newversion bump alpha # 1.2.4a1
echo "1.2.3rc1" | newversion set micro 5 # 1.2.5rc1
echo "1.2.3rc1" | newversion set minor 5 # 1.5.3rc1
echo "1.2.3rc1" | newversion set major 5 # 5.2.3rc1
echo "1.2.3rc1" | newversion set pre 5 # 1.2.3rc5
echo "1.2.3rc1" | newversion set rc 5 # 1.2.3rc5
echo "1.2.3rc1" | newversion set alpha 5 # 1.2.3a5
echo "1.2.3rc1" | newversion get micro # 1
echo "1.2.3rc1" | newversion get minor # 2
echo "1.2.3rc1" | newversion get major # 3
echo "1.2.3rc1" | newversion get pre # rc1
echo "1.2.3rc1" | newversion get rc # 1
echo "1.2.3rc1" | newversion get alpha # 0
echo "1.2.3rc1" | newversion stable # error!
echo "1.2.3" | newversion stable # 1.2.3
echo "1.2.3" | newversion stable && echo "Stable!" # Stable!
echo "1.2.3rc1" | newversion gt "1.2.3" # error!
echo "1.2.3rc1" | newversion lte "1.2.3" # "1.2.3rc1"
Python library
from newversion import Version
version = Version("1.2.3")
next_version = version.bump_minor() # Version("1.3.0")
# bump version same way as SemVer
version.dumps() # "1.2.3"
version.bump_micro().dumps() # "1.2.4"
version.bump_minor().dumps() # "1.3.0"
version.bump_major().dumps() # "2.0.0"
# create and bump pre-releases
version.bump_prerelease().dumps() # "1.2.4rc1"
version.bump_prerelease(bump_release="minor").dumps() # "1.3.0rc1"
version.bump_prerelease("alpha").dumps() # "1.2.4a1"
Version("1.2.3b4").bump_prerelease().dumps() # "1.2.3b5"
version.bump_micro().replace(dev=1234).dumps() # "1.2.4.dev1234"
# and post-releases
version.bump_postrelease().dumps() # "1.2.3.post1"
Version("1.2.3.post3").bump_postrelease(2).dumps() # "1.2.3.post5"
# easily check if this is a pre- or dev release or a stable version
Version("1.2.3").is_stable # True
Version("1.2.3a6").is_stable # False
Version("1.2.3.post3").is_stable # True
Version("1.2.3.post3").get_stable().dumps() # "1.2.3"
Versioning
newversion version follows PEP 440.
Latest changes
Full changelog can be found in Releases.
Related Skills
node-connect
345.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
106.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
345.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
345.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
