check-bump

Check if pyproject.toml version was bumped


Keywords
versioning, check, CI, CD, version, bump
License
MIT
Install
pip install check-bump==1.0.2

Documentation

Check Bump

Build PyPI Code style: black pylint NoPrint

About

Want to add version bump checks to your CI/CD pipeline? This packages makes it easy. Simply execute check-vbump within a directory where your pyproject.toml is located.

If there was a version bump, process will finish with exit code 0 - read stdout for the new version. Otherwise, process will finish with exit code 1.

Requirements

This package requires tomlkit package.

Usage

Command

Simply execute check-bump within a directory where your pyproject.toml is located. Or provide a path using --path argument.

user$ check-bump --help
usage: check-bump [-h] [-p PATH]

Detect and retrieve version bump

options:
  -h, --help            show this help message and exit
  -p PATH, --path PATH  path to pyproject.toml file

Github Actions

Inputs

path

Optional Relative path of pyproject.toml file. Example: 'python_src/pyproject.toml'

prefix

Optional Prefix to provide for version output. Example: 'v'

Outputs

bump

always Whether there was a bump or not. Values: 'true'|'false'

version

optional Current (if bumped) version with prefix. If there was no version bump - no output is provided.

Example usage

- name: Check bump
  id: vbump
  uses: rgryta/Check-Bump@main
  with:
    prefix: 'v'

And then you can later reference like:

- name: Tag repository
  if: steps.vbump.outputs.bump == 'true'
  run: |
    echo "I was bumped to version: ${{ steps.vbump.outputs.version }}"

Development

Installation

Install virtual environment and check_bump package in editable mode with dev dependencies.

python -m venv venv
source venv/bin/activate
pip install -e .[dev]

Formatting

Use black and isort (with black profile) to format the code.

isort .
black .

Syntax checks

Use pylint to check the code for errors and potential problems. Also use noprint to detect print statements in the code (use logging instead!).

isort -c .
black --check .
pylint check_bump tests
noprint -ve check_bump tests

Testing

For testing use coverage with pytest workers - this is due to errors that pytest-cov sometimes has with Python 3.9 and above.

coverage run -m pytest -xv tests
coverage report -m --fail-under=30
coverage erase

Clean up

Clean up the project directory from temporary files and directories. Purge virual environment.

coverage erase
rm -rf check_bump.egg-info/ dist/ build/
rm -rf venv/