Skip to main content

Easy version bumping

Project description

ebump

Easy version bumping CLI for python projects.

ebump is a simple (opinionated) wrapper around the bumpver library that provides an easy-to-use CLI for version bumping in Python projects. It focuses on simplicity and ease of use, making it ideal for developers, CI/CD pipelines, and scriptsr

Quick showcase

> 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)

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)

Instalation / Usage

You can use ebump directly via uvx (recommended):

uvx ebump [PARAMS ...]

Or install it via pip:

pip install ebump

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-final. 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. It is a wrapper around it. You can still use bumpver library directly for more complex use cases.
  • It does not aim to cover all use cases. It focuses on simplicity and ease of use.

🤝 Contributing

Contributions are welcome! Please ensure all QA checks and tests pass before opening a pull request.


🚀 Project starter provided by Cookie Pyrate

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

ebump-0.1.2.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

ebump-0.1.2-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

Details for the file ebump-0.1.2.tar.gz.

File metadata

  • Download URL: ebump-0.1.2.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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}

File hashes

Hashes for ebump-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6473fdf8c4fe9705ef06d6f3a0fdef8e43f7499bca09e0b0b1529ed5cce2e23e
MD5 cb8e2e7480bc157e230b80ac8b32c8a9
BLAKE2b-256 2b38e05d5f07d3870d2679970e13be393f656f999bb3e126d416e9231a6c0dcf

See more details on using hashes here.

File details

Details for the file ebump-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: ebump-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 5.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","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}

File hashes

Hashes for ebump-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6528cb2315d7e6df2f75c2e73a92cb6a10d5d86951e073b9e5e15103a4bffe9a
MD5 34407728d27338a2a8ed213b61a60cec
BLAKE2b-256 e6fea0778687ddd578ec1edb45302b0550ec9ca2d0c30079599e88522b301ce2

See more details on using hashes here.

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