Skip to main content

Check if pyproject.toml version was bumped

Project description

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/

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

check_bump-1.0.2.tar.gz (5.5 kB view hashes)

Uploaded Source

Built Distribution

check_bump-1.0.2-py3-none-any.whl (5.2 kB view hashes)

Uploaded Python 3

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