Skip to main content

Updates the release numbers for a projects

This script uses the release.ini file placed at the root of the project, and replaces the version or release number in various files.

$ cd <project_root>
$ ls -al
...
release.ini
...
$ bump_release <major>.<minor>.<release>

Installation

On linux, the best place to install it is for the user:

$ pip install --user bump-release

Assume to have ~/.local/bin in the $PATH.

Version numbers that can be updated

  • main project version
  • node package.json
  • sonar properties
  • sphinx docs
  • ansible variables in a vars file
  • setup.py

release.ini

The .ini file provides path, patterns and templates to update files.

If a section is not present, no action if performed for this section.

The application provides some "standard" patterns and templates (aka. the ones I use in my projects). If you provide some patterns and templates, you have to enclose them with double-quotes. Due to configparser limitations, all strings are parsed as raw strings.

The application removes those double-quotes through a :

pattern = config["<section>"].get("pattern") or DEFAULT_PATTERN
pattern = pattern.strip('"')

Exemple ini file:

[DEFAULT]
current_release = 0.1.0  # Current version of the projects, will be updated by the script

[main_project]
path = <project>/settings/base.py
# Optional pattern, default is...
pattern = "^__version__\s*=\s*VERSION\s*=\s*['\"][.\d\w]+['\"]$"
# Optional template, default is...
template = "__version__ = VERSION = '{major}.{minor}.{release}'"

[node_module]
path = <project>/assets/package.json
# Optional key, default is...
key = "version"

[sonar]
path = ./sonar-project.properties
# Optional pattern, default is...
pattern = "^sonar.projectVersion=([.\d]+)$"
# Optional template, default is...
template = "sonar.projectVersion={major}.{minor}"

[docs]
path = <project>/../docs/source/conf.py
# Optional pattern, default is...
version_pattern = "^version\s+=\s+[\"']([.\d]+)[\"']$"
# Optional template, default is...
version_format = "version = '{major}.{minor}'"
# Optional pattern, default is...
release_pattern = "^release\s+=\s+[\"']([.\d]+)[\"']$"
# Optional template, default is...
release_format = "release = '{major}.{minor}.{release}'"

[ansible]
path = <project>/../ansible/prod/vars/vars.yml"
# Optional key - The script searches for the "git" root key, and then for "version" sub-key
key = "git.version"

[setup]
path = <project>/setup.py
# Optional pattern, default is...
pattern = "^\s*version=['\"]([.\d]+)['\"],$"
# Optional template, default is...
template = "    version='{major}.{minor}.{release}',"

Usage

$ cd <project_root>
$ cat release.ini
[DEFAULT}
current_release = 0.0.1

[main_project]
path = "foo/__init__.py"

[sonar]
path = "sonar-project.properties"
...

$ cat foo/__init__.py
...
__version__ = VERSION = "0.0.1"
...
$ bump_release 0.0.2
...
$ cat release.ini
[DEFAULT}
current_release = 0.0.2
...
$ cat foo/__init__.py
...
__version__ = VERSION = "0.0.2"
...

Metadata

Release files for bump-release 0.9.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bump-release 0.9.5
File Size Uploaded
bump_release-0.9.5.tar.gz 9.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bump-release 0.9.5
File Interpreter ABI Platform
bump_release-0.9.5-py3-none-any.whl Python 3 none any Details

Total release size: 21.2 kB

Release files / bump_release-0.9.5.tar.gz

Download URL bump_release-0.9.5.tar.gz
Size 9.1 kB
Tags Source
SHA-256 checksum
How to use checksums
9468db8c731ea27769e20c4656d80cb2ca58398ea3652a3b1f404f406b326ada
BLAKE2b-256 checksum
How to use checksums
9aae4a11f553972c6fba73e8786a7890b0dcc5a9500ebe7dcc6a5f488535f293
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.10

Release files / bump_release-0.9.5-py3-none-any.whl

Download URL bump_release-0.9.5-py3-none-any.whl
Size 12.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a70b596c7d316f2e6277b097b5697ebb987befb34160da04926c88a2d5c33aed
BLAKE2b-256 checksum
How to use checksums
a8711c0bab8e9af92345149bf669dd3c39a74ced92ead94a17a879119e511ce5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.7.10

Release history Release notifications | RSS feed

0.10.6

2 release files

0.10.3

2 release files

0.10.2

2 release files

0.9.9

2 release files

0.9.7

1 release file

0.9.6

2 release files

This release

0.9.5 This release

2 release files

0.9.3

2 release files

0.9.1

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.9

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page