Bmp v1.3.1

Gem Version Build Status Coverage Status Code Climate

No hassle on bumping

bmp command bumps and updates the version numbers in a repository according to the yaml file .bmp.yml. This is convenient if you have written many version numbers in your repository. This command helps you consistently update the version information in your repository.


gem install bmp

This install bmp command


.bmp.yml file

First you need to put .bmp.yml file on the top of your repository like the following:

version: 0.1.6
commit: Bump to version v%.%.%
files: version=%.%.%
    - coveralls-gradle-plugin v%.%.%
    - org.kt3k.gradle.plugin:coveralls-gradle-plugin:%.%.%

version property is the current version number of the repository.

commit property is the commit comment of bump commits. This field is optional. The default is Bump to version v%.%.%.

files are the patterns of the files which contain version numbers in them. The key is the filename and value is the pattern containing the version number. %.%.% in the pettern string expresses the current vesion number.

Example: version=%.%.%

The expression above means the file ./ contains the pattern version=0.1.6 (for now) and %.%.% part means the current version number (0.1.6) and it will be replaced in each version bumping.

You can set arrays of string to the value for a pattern. In that case, every string is considered as a separate pattern and all will be replaced with the next version in each bump

  - coveralls-gradle-plugin v%.%.%
  - org.kt3k.gradle.plugin:coveralls-gradle-plugin:%.%.%

The commands


Show current version info:

bmp [-i|--info]

This shows errors if exist. You can check the contents of .bmp.yml with this command.


bump patch (0.0.1) level:

bmp -p|--patch

This command updates all the version numbers which are specified in .bmp.yml

bump minor (0.1.0) level:

bmp -m|--minor

bump major (1.0.0) level:

bmp -j|--major

Add preid:

bmp --preid beta.1 # This performs 1.2.3 => 1.2.3-beta.1

Remove preid (which means you release it):

bmp --release

Commit (and tag)

Commit bump results (and tag it):

bmp -c|--commit

bmp -c commits all the changes now the repository has. Be careful. And this command also tag it as vX.Y.Z.


  • 2016-05-15 v1.2.0 Add commit property in .bmp.yml.




dev commands

dependency download

bundle install


rake rubocop


rake spec

install dev version

rake install


rake release

Domain models

Domain models are in ./lib/bump/domain dir.


VersionNumber model represents the version number and bumps itself with levels.


FileUpdateRule model represents unit rule of version number replacement. A rule has a version number, a file path and a pattern for replacement.


BumpInfo model represents overall bumping strategy in a project. This model loosely corresponds to the contents of .bmp.yml.