Skip to main content

Automatic semantic versioning for python projects

Project description

Automatic semantic versioning for python projects. This blogpost explains in more detail.

Install

pip3 install python-semantic-release

Python 2 is currently not supported. See #10 for more information.

Usage

The general idea is to have some sort of tag in commit messages that indicates certain types of changes. If a commit message lack a tag it is ignored. Running release can be run locally or from a CI service.

Usage: semantic-release [OPTIONS] COMMAND

Options:
  --major  Force major version.
  --minor  Force minor version.
  --patch  Force patch version.
  --noop   No-operations mode, finds the new version number without changing it.
  --help   Show this message and exit.

Commands

  • version - Create a new release. Will change the version, commit it and tag it.

  • publish - Runs version before pushing to git and uploading to pypi.

Running commands from setup.py

Add the following to your setup.py and you will be able to run python setup.py <command> as you woul semantic-release <command>.

try:
    from semantic_release import setup_hook
    setup_hook(sys.argv)
except ImportError:
    pass

Configuration

All configuration described here belongs in setup.cfg in a section: semantic-release.

version_variable - The filename and variable name of where the version number is stored, e.g. semantic_release/__init__.py:__version__. patch_without_tag - If set to true semantic-release will create a new release even if there is no tag in any commits since last release. Default: false.

Tags

There are a set of tags used to evaluate the changes from commit messages. They can be configured to meet what you want them to be. The different tags are listed below with their defaults.

  • Major change: major_tag = :boom: :boom:

  • Minor change: minor_tag = :sparkles: :sparkles:

  • Patch change: patch_tag = :bug: :bug:

Project details


Release history Release notifications | RSS feed

This version

0.7.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

python_semantic_release-0.7.0-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file python_semantic_release-0.7.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_semantic_release-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ddc0cec8800af10d3652978d74d1007bd1046e04ed1af5cc43d1f21531a60c73
MD5 191fc1665bf080a70b57fc5c55770b9a
BLAKE2b-256 c284ca15c0d398bf470cbc59f7f8a47f7b87a88112f3e264445bb9a0a0d6d3d4

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