Python Version Bumper
A simple Python script for updating the version in Kubernetes Helm Chart.yaml, VERSION, and pyproject.toml/setup.py files.
Ensures version consistency across all files.
Enforces Semantic Versioning 2.0.0.
Supports an optional lowercase ‘v’ prefix (e.g., v1.5.4-beta2).
Installation
To install pybump, run:
pip install pybump
Usage
Bumping Versions
To bump the version:
pybump bump [-h] --file PATH_TO_CHART.YAML --level {major,minor,patch} [--quiet]
Setting Explicit Versions
To set an explicit version or automatically update release metadata:
pybump set --file PATH_TO_CHART.YAML --set-version X.Y.Z [--quiet]
The auto flag is primarily intended for CI/CD pipelines, such as pull request workflows:
pybump set --file PATH_TO_CHART.YAML --auto [--quiet]
When using –auto, pybump appends the Git commit hash as release metadata to the version.
Warning - The –auto flag can be risky, as it may detect a Git repository unintentionally. Ensure that the target file is part of the correct repository before running this command.
Retrieving the Current Version
To get the current version:
pybump get --file PATH_TO_CHART.YAML
Updating Helm Chart appVersion
To bump, get, or set the appVersion field in a Helm chart, use the --app-version flag:
pybump bump [-h] --file PATH_TO_CHART.YAML --level {major,minor,patch} [--quiet] [--app-version]
Examples
CI Usage example
A simple Jenkins CI pipeline (using the Kubernetes plugin) that utilizes the set --file setup.py --auto option:
String label = "test-bump-ci-runner"
podTemplate(
label: label,
containers: [
containerTemplate(
name: 'pybump',
image: "arielev/pybump:1.10.2",
ttyEnabled: true,
command: 'sleep',
args: '1d'
),
containerTemplate(
name: 'jnlp',
image: 'jenkins/inbound-agent:jdk11',
ttyEnabled: true
)
]
) {
node(label) {
timeout(time: 10, unit: 'MINUTES') {
ansiColor('xterm') {
String version = ""
container('jnlp') {
git credentialsId: "credentials_id_here", url: "https://github.com/arielevs/pybump"
}
container('pybump') {
version = sh(
script: "pybump set --file setup.py --auto",
returnStdout: true
).trim()
}
println(version)
}
}
}
}
Version Bumping Examples
Case: version: 0.0.1
pybump bump --file Chart.yaml --level patch
Result: Version updated to 0.0.2.
—
Case: version: 0.1.4-alpha+meta.data
pybump bump --file Chart.yaml --level minor
Result: Version updated to 0.2.0-alpha+meta.data.
—
Case: version: v0.0.3
pybump bump --file Chart.yaml --level major
Result: Version updated to v1.0.0.
—
Case: version: 0.0.1+some-metadata
pybump set --file Chart.yaml --set-version 1.4.0
Result: Version updated to 1.4.0+metadata-here.
—
Case: version: v7.0.2
pybump set --file setup.py --auto
Result: Version updated to v7.0.2-5a51e0e1d9894d3c5d4201619f10be242320cb59.
—
Case: appVersion: 2.3.2
pybump bump --file Chart.yaml --level patch --app-version
Result: appVersion updated to 2.3.3.
—
Case: version: 1.0.13
pybump get --file Chart.yaml
Result: Returns 1.0.13.
—
Case: version: 1.0.13+some-metadata
pybump get --file Chart.yaml --release
Result: Returns some.
Using a Container Image
To run pybump within a container:
docker run --rm --volume $(pwd):/tmp -t arielev/pybump set --file /tmp/setup.py --auto
Release files for pybump 1.14.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pybump-1.14.5.tar.gz | 23.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pybump-1.14.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.2 kB
Release files / pybump-1.14.5.tar.gz
| Download URL | pybump-1.14.5.tar.gz |
|---|---|
| Size | 23.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
185d40b7567b14014b513fe91ebad26932919919e700df160bbfc659aa1a0e2d
|
|
BLAKE2b-256 checksum How to use checksums |
481f0bdb8bdd15d95807f7130b687c61db294eb7a6ef72da2167a07edb312168
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|
Release files / pybump-1.14.5-py3-none-any.whl
| Download URL | pybump-1.14.5-py3-none-any.whl |
|---|---|
| Size | 16.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87f1ca6054ac9a2e907f80c7fef998d50d623f63817ebefc4dcd1eb8f7129b92
|
|
BLAKE2b-256 checksum How to use checksums |
c8e03411f403a6944583426edeefe3ff07e5950340f3df28ddd60f1b29851ae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.17
|