Skip to main content

Utilities to deal with pep440 versioning

Project description

Continuous Integration Coverage Status

pep440-version-utils

This package regroups utilities to deal with pep440 versioning. It is based on the PyPA's packaging project and extends it.

It makes it easier to handle version bumps and strictly follows PEP440 specification.

Release cycle

Installation

Use pip or poetry to install this package:

$ pip install pep440-version-utils

# or alternatively
$ poetry add pep440-version-utils

Usage

Since this package extends the packaging library, so it supports version parsing and ordering as described in this documentation.

To bump to a new release version:

from pep440_version_utils import Version

version = Version("1.10.2")
version.next_micro()  # 1.10.3
version.next_minor()  # 1.11.0
version.next_major()  # 2.0.0

To bump to a new prerelease version:

from pep440_version_utils import Version

version = Version("1.10.2")
version.next_alpha()  # 1.10.3a1
version.next_beta()  # 1.10.3b1
version.next_release_candidate()  # 1.10.3rc1

version.next_alpha("minor")  # 1.11.0a1
version.next_beta("mior")  # 1.11.0b1
version.next_release_candidate("major")  # 2.0.0rc1

And it implements the full release cycle:

from pep440_version_utils import Version

version = Version("1.10.2")
alpha1 = version.next_alpha()  # 1.10.3a1
alpha2 = alpha1.next_alpha()  # 1.10.3a2
beta1 = alpha2.next_beta()  # 1.10.3b1
rc1 = beta1.next_release_candidate()  # 1.10.3rc1
rc2 = rc1.next_release_candidate()  # 1.10.3rc2
new_version = rc2.next_micro()  # 1.10.3

Limitations

This package doesn't support post, dev and local versions yet. Contributions are welcome 😊

How to contribute

This package is fairly simple, here is how you can contribute:

  1. ⚙️ Install poetry
  2. 📦 In the repository folder, run poetry install
  3. ✍️ Implement the desired changes
  4. ✅ Run test, type checking and code quality checks:
$ poetry run black . --check
$ poetry run mypy */**.py --ignore-missing-imports
$ poetry run pytest --cov=pep440_version_utils
  1. ➡️ Submit a new pull request

Do not hesitate to contribue, even for very small changes!

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

pep440-version-utils-0.1.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

pep440_version_utils-0.1.1-py3-none-any.whl (4.9 kB view details)

Uploaded Python 3

File details

Details for the file pep440-version-utils-0.1.1.tar.gz.

File metadata

  • Download URL: pep440-version-utils-0.1.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/2.7.16 Darwin/19.4.0

File hashes

Hashes for pep440-version-utils-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2b18b0569c61b58cbd2e6c480f5b36e473bd81b9f553bcbd851f56c4784fcdbc
MD5 1a0b84dadef8ebe0d3f25992c1772ad4
BLAKE2b-256 ceb9505922ecf8944cb30a7991ac0b9abd76a5f5e53477ac63a7f57424c25a2e

See more details on using hashes here.

File details

Details for the file pep440_version_utils-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for pep440_version_utils-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bfbd56ea0fa06eac16d897da96447f34307ff930ea84e9e1571bb156fab1e319
MD5 4129c1a7705060204095e085b8bc4d98
BLAKE2b-256 855a37444ea3dcd5d833bf9406f804e27c41da6ba4ed8b614d61badfe342e00a

See more details on using hashes here.

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