Skip to main content

Automatic semantic versioning for python projects

Project description

Automatic semantic versioning for python projects. This is an python implementation of the semantic-release for js by Stephan Bönnemann. If you find this topic interesting you should check out his talk from JSConf Budapest.

Build status PyPI version

Install

pip install python-semantic-release

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.
  --post   If used with the changelog command, the changelog will be posted to the release api.
  --retry  Retry the same release, do not bump.
  --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.

  • changelog - Generates the changelog for the next release.

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 would semantic-release <command>.

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

Configuration

Configuration belongs in semantic_release section of the setup.cfg file in your project. Details about configuration options can be found in the configuration documentation.

Development

Install this module and the development dependencies:

python setup.py develop
pip install -r requirements/dev.txt

Testing

To test your modifications locally:

tox

Project details


Release history Release notifications | RSS feed

This version

4.3.3

Download files

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

Source Distribution

python-semantic-release-4.3.3.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

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

python_semantic_release-4.3.3-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file python-semantic-release-4.3.3.tar.gz.

File metadata

  • Download URL: python-semantic-release-4.3.3.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.4

File hashes

Hashes for python-semantic-release-4.3.3.tar.gz
Algorithm Hash digest
SHA256 c508102ae8770bb7eb59359c38f5b07565f80772168ada7206339597f4790a4d
MD5 5b33547ce1ec1646edf6c819419457ec
BLAKE2b-256 5f22b0593ee2f1be15a128e338b887a84e94fd1b7171baa40f6cbbbe1e703e42

See more details on using hashes here.

File details

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

File metadata

  • Download URL: python_semantic_release-4.3.3-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.4

File hashes

Hashes for python_semantic_release-4.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d48d31c5e5cf7d3d7895e1de51b3a1b4200a2184a9d9201bb1e63989fddb003d
MD5 538a324b759c72c226aec1e335efe11f
BLAKE2b-256 354d9b4bb117bfa18690fa4c401bb423a037b1dabca1590b01b9863cb0489fc7

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