Skip to main content

Bump software releases

Project description

https://img.shields.io/travis/SuperTanker/tbump.svg?branch=master https://img.shields.io/pypi/v/tbump.svg https://img.shields.io/github/license/SuperTanker/tbump.svg

Installation

  • Make sure you are using Python 3.4 or later

  • Intall tbump with pip as usual.

Screenshot

Here’s what a typical usage of tbump looks like:

https://raw.githubusercontent.com/SuperTanker/tbump/master/scrot.png

Usage

Create a tbump.toml file looking like:

[version]
current = "1.2.41"
regex = '''
  (?P<major>\d+)
  \.
  (?P<minor>\d+)
  \.
  (?P<patch>\d+)
'''

[git]
message_template = "Bump to {new_version}"
tag_template = "v{new_version}"

[[file]]
src = "setup.py"

Then run:

$ tbump 1.2.42

tbump will:

  • Replace the string 1.2.41 by 1.2.42 in every file listed in the configuration

  • Make a commit based on the message_template.

  • Make an annotated tag based on the tag_template

  • Push the current branch and the tag.

Note that by default, tbump will display all the changes and stop to ask if they are correct before performing any action, allowing you to abort and re-try the bump if something is not right.

You can use --non-interactive to disable this behavior.

Advanced configuration

Restricting the lines that are replaced

Sometimes you want to make sure only the line matching a given pattern is replaced. For instance, with the folliwing package.json:

/* in package.json */
{
   "name": "foo",
   "version": "0.42",
   "dependencies": {
     "some-dep": "0.42",
     "other-dep": "1.3",
   }
}

you’ll want to make sure that when you bump from 0.42 to 0.43 that the line containing some-dep does not change.

In this case, you can set a search option in the file section:

# In tbump.toml

[[file]]
src = "package.json"
search = '"version": "{current_version}"'

Using a custom version template

If you are using a version schema like 1.2.3-alpha-4, you may want to expose a variable that only contains the “public” part of the version string. (1.2.3 in this case).

To do so, add a version_template option in te file section. The names used in the format string should match the group names in the regular expression.

/* in version.js */

export FULL_VERSION = '1.2.3-alpha-4';
export PUBLIC_VERSION = '1.2.3';
[[file]]
src = "version.js"
version_template = "{major}.{minor}.{patch}"
search = "export PUBLIC_VERSION = '{current_version}'"

[[file]]
src = "version.js"
search = "export FULL_VERSION = '{current_version}'"

Running commands before push

You can specify a list of hooks to be run after the file have changed, but before the commit is made and pushed.

Here’s an example:

[[hook]]
name = "Check Changelog"
cmd = "grep -q {new_version} Changelog.rst"

The name is mandatory. The command will be executed via the shell, after the {new_version} placehoder is replaced with the new version.

Any hook that fails will interupt the bump. You may want to run git reset --hard before trying again to undo the changes made in the files.

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

tbump-3.0.1.tar.gz (15.8 kB view details)

Uploaded Source

Built Distribution

tbump-3.0.1-py3-none-any.whl (108.9 kB view details)

Uploaded Python 3

File details

Details for the file tbump-3.0.1.tar.gz.

File metadata

  • Download URL: tbump-3.0.1.tar.gz
  • Upload date:
  • Size: 15.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for tbump-3.0.1.tar.gz
Algorithm Hash digest
SHA256 32faea69e040601a60c087de8d20d26745dad69df58059e97e85ce975b41f45d
MD5 f8c6db7c85375ca50f93b9200c43661f
BLAKE2b-256 6c544409f6e45ba18edfa2315b383ea98e2c3d0bddbb85ccd0d73e585a7e5cfa

See more details on using hashes here.

File details

Details for the file tbump-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for tbump-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e090b20b5ae2948b62c9ce4ab17e0c0ebbbcb3b3c5453ac4a8485b4feab0c4a
MD5 acbfdf680aedb8b32f2f3f1c2788ed29
BLAKE2b-256 5eeab933c224d25a3ba9e0ccd1fa23cdc6f9e1e13bbb49c574097cc58e0c67cb

See more details on using hashes here.

Supported by

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