Skip to main content

Automatically increment the project's version number.

Project description

bumper

PyPI - Python Version PyPI PyPI - License pre-commit.ci status

Automatically increment the project's version number.

Heavily inspired by bump2version and bumpversion. While bump-my-version is an excellent modern fork this functionality, I'd like a pared down version of the offered feature set for my personal projects.

Supported Versioning Schemes

Installation

Install from PyPi with your favorite pip invocation, e.g.:

$ pip install sco1-bumper

You can confirm proper installation via the bumper CLI:

$ bumper --help
Usage: bumper [OPTIONS] COMMAND [ARGS]...

Options:
  --help  Show this message and exit.

Commands:
  bump  Bump the requested version component.
  init  Generate a default bumper configuration file.

Configuration

bumper searches for its configuration options first in a .bumper.toml file, then in pyproject.toml; preference is given to whichever configuration is located first.

Required Fields

tool.bumper

  • current_version - The current software version. This is automatically incremented when bumping.
  • versioning_type - Versioning type to be used, accepted values are "semver" and "calver"

tool.bumper.files

  • file - Path to target file relative to the repository root
  • search - Replacement string to search for in the target file. Must contain a {current_version} tag if you want something to happen.

Example Configuration

The basic configuration looks something like the following:

SemVer

[tool.bumper]
current_version = "0.1.0"
versioning_type = "semver"

[[tool.bumper.files]]
file = "./pyproject.toml"
search = 'version = "{current_version}"'

CalVer

[tool.bumper]
current_version = "2025.01.0"
versioning_type = "calver"

[[tool.bumper.files]]
file = "./pyproject.toml"
search = 'version = "{current_version}"'

Multiple replacements within the same file can also be specified:

[tool.bumper]
current_version = "0.1.0"
versioning_type = "semver"

[[tool.bumper.files]]
file = "./pyproject.toml"
search = 'version = "{current_version}"'

[[tool.bumper.files]]
file = "./README.md"
search = "sco1-bumper/{current_version}"

[[tool.bumper.files]]
file = "./README.md"
search = "rev: v{current_version}"

CLI

bumper bump

Bump your project's version number using your defined configuration.

$ bumper bump --help
Usage: bumper bump [OPTIONS] BUMP_BY:{major|minor|patch|date}

  Bump the requested version component.

  Allowable `BUMP_BY` values differ based on the project's specified
  versioning type: SemVer - (major, minor, patch), CalVer - (date)

  When using CalVer, if the user's current UTC month is the same as the
  current project version, then the Micro component is incremented. Otherwise,
  the date components are bumped to the user's current UTC month and Micro
  reset to `0`.

  If `dry_run` is `True`, the requested diff will be displayed in the terminal
  & no file modifications will take place.

Arguments:
  BUMP_BY:{major|minor|patch|date}
                                  [required]

Options:
  --dry-run / --no-dry-run  Preview the requested diff.  [default: no-dry-run]
  --help                    Show this message and exit.

bumper init

A small helper to initialize a starter .bumper.toml file that bumps the version field of your project's pyproject.toml file.

NOTE: Be sure to update the sample version with your current version number before bumping with bumper.

$ bumper init --help
Usage: bumper init [OPTIONS]

  Generate a default bumper configuration file.

  If the `--ignore_existing` flag is set, any existing `.bumper.toml` file
  will be overwritten; this action is not reversible. Otherwise, the existing
  configuration will be preserved.

Options:
  --versioning-type [semver|calver]
                                  [default: semver]
  --ignore-existing / --no-ignore-existing
                                  [default: no-ignore-existing]
  --help                          Show this message and exit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sco1_bumper-2.0.0.tar.gz (43.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sco1_bumper-2.0.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file sco1_bumper-2.0.0.tar.gz.

File metadata

  • Download URL: sco1_bumper-2.0.0.tar.gz
  • Upload date:
  • Size: 43.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for sco1_bumper-2.0.0.tar.gz
Algorithm Hash digest
SHA256 3e43014eb76a78c559d2b9289c240c4e9cd4fbff0fe203c288c7d36032edb408
MD5 d28a4a4d3edf6cc576ed29286d961dd0
BLAKE2b-256 35a5911863b84ef7e293e9888ecbdc5f4cd39af9c61deae6be437153ad64bbd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for sco1_bumper-2.0.0.tar.gz:

Publisher: pypi_release.yml on sco1/bumper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sco1_bumper-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: sco1_bumper-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for sco1_bumper-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 88d90ff205708f4e80424a464687df8311f943b95f0f764b4522c7e5e3dc07d7
MD5 608b447e75984f780490aabfde3784fe
BLAKE2b-256 4042feab6b81ef1ca804fcf8d016326c8b41d1da5054f06f69c79ebbf5697f63

See more details on using hashes here.

Provenance

The following attestation bundles were made for sco1_bumper-2.0.0-py3-none-any.whl:

Publisher: pypi_release.yml on sco1/bumper

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page