Skip to main content

ebump

Easy version bumping

QA Release Python 3.11+ License: MIT PyPI
uv Ruff Checked with mypy

Quick start · Usage · Configuration · Development


Easy version bumping CLI tool for python projects.

Features

  • Simple and intuitive CLI for version bumping.
  • Automatic detection of version field in pyproject.toml.
  • Pattern-based configuration that allows to change version in multiple files at once.

Quick start

You can use ebump directly via uvx (recommended):

uvx ebump [PARAMS ...]

Or install it via pip:

pip install ebump

Usage

> ebump             # 1.0.0                         Shows current version (same as `uv version --short`)
> ebump patch       # 1.0.0 -> 1.0.1                Bump patch
> ebump minor       # 1.0.1 -> 1.1.0                Bump minor
> ebump major       # 1.5.4 -> 2.0.0                Bump major
> ebump minor beta  # 1.0.0 -> 1.1.0-beta0          Bump minor and add beta tag
> ebump tag         # 1.0.0-beta0 -> 1.0.0-beta1    Bump current tag number
> ebump alpha       # 1.0.0-alpha4 -> 1.0.0-alpha5  Bump tag number if already at tag
> ebump beta        # 1.0.0-alpha5 -> 1.0.0-beta0   Bump to tag if not already at that tag
> ebump tag beta    # 1.0.0-alpha5 -> 1.0.0-beta0   Same as 'ebump beta'
> ebump tag beta    # 1.0.0-beta0 -> 1.0.0-beta1    Same as 'ebump beta'
> ebump final       # 1.0.0-rc2 -> 1.0.0            Bump to final
> ebump final       # 1.0.0 -> 1.0.0                If already at final do nothing (ensures final release)

Setting specific versions

> ebump --set 1.2.3         # 1.0.0 -> 1.2.3        Set specific version
> ebump --set 1.2.3 --force # 5.0.0 -> 1.2.3        Force set specific version (even if it's a downgrade). Use with caution!

Bad examples:

> ebump minor alpha beta    # Error: You can only specify one part to bump and/or one tag
> ebump patch minor         # Error: You can only specify one part to bump
> ebump alpha beta          # Error: You can only specify one tag to bump

# If current version has no tag
> ebump tag                 # Error: No tag found to bump

Any combination that violates the bumping rules will throw an error. E.g., trying to bump alpha while being at beta.

You can also use the --dry-run to see what the new version would be without actually changing it:

> ebump minor --dry-run  # 1.0.0 -> 1.1.0 (no change to version)

Configuration

If you only maintain a simple project with the version only in pyproject.toml, you can use ebump without any configuration. It will automatically detect the version field and update it accordingly.

However, heavily inspired by bumpver, ebump supports pattern-based configuration via pyproject.toml under the [tool.ebump.patterns] section. This allows you to specify different versioning files and patterns for different parts of your project.

[tool.ebump.patterns]
"path/to/__init__.py" = ['^__version__ = "{version}"$']

Why ebump?

Design differences with bumpver CLI:

  • Bumping final tag doesn't throw errors if the version is already final.

    Useful for CI/CD pipelines where you want to ensure the version is final without worrying about its current state.

  • Bumping one of the main version parts (patch, minor, major) automatically resets any pre-release tag to final unless you explicitly specify a new tag in the same command.

    If you bump the minor version from 1.0.0-beta2, it will become 1.1.0 instead of 1.1.0-beta0. You can still set a pre-release tag in the same command (e.g., ebump minor beta to get 1.1.0-beta0).

  • Simplified CLI with fewer options, focusing on the most common use cases.

  • Can be executed in any directory of the project, root is automatically detected.

What ebump is NOT

  • It is not a replacement for bumpver library. You can still use bumpver library directly for more complex use cases if necessary.
  • It does not aim to cover all use cases. It focuses on simplicity and ease of use.

Development

Setup, QA, docs and releases: DEVELOPMENT.md.

Contributing

Issues and pull requests are welcome; make qa must pass.

Acknowledgements

This project is heavily inspired by bumpver.

License

MIT: see LICENSE.


🚀 Project starter provided by Cookie Pyrate v1.1.0

Metadata

Release files for ebump 0.2.3

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

Source distribution (sdist)

Source distribution for ebump 0.2.3
File Size Uploaded Provenance Actions
ebump-0.2.3.tar.gz 74.6 kB Without provenance Details for ebump-0.2.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ebump 0.2.3
File Interpreter ABI Platform Actions
ebump-0.2.3-py3-none-any.whl Python 3 none any Details for ebump-0.2.3-py3-none-any.whl

Total release size: 85.8 kB

Release files / ebump-0.2.3.tar.gz

Download URL ebump-0.2.3.tar.gz
Size 74.6 kB
Tags Source
SHA-256 checksum
How to use checksums
de2e1c86195a8a950540f00d9060c935324c82e586fc6a85b98ef8503966de63
BLAKE2b-256 checksum
How to use checksums
727ff92585d16f1b4fb5ac0be53294ae22d19c95c18f23457d5d6b6dcd0dca56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ebump-0.2.3-py3-none-any.whl

Download URL ebump-0.2.3-py3-none-any.whl
Size 11.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4aad6233aacead5c6576bd913342194a667ee54753d30f6ff12d32b46516dbb5
BLAKE2b-256 checksum
How to use checksums
b45894e325d40f79a148ed9ba2055a18a1394d02ebbca3f524c99fc1d5342c4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for ebump 0.2.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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