Skip to main content

A Poetry plugin to automate the release process of Python packages.

Project description

nr.poetry-release

A Poetry plugin to automate releasing new versions of Python packages.

Features

  • Update the version number in all relevant places
    • Built-in support for pyproject.toml (like the poetry versioncommand) & in your package source code
    • Configuration option to match and bump version numbers in other files
    • Plugin infrastructure to dispatch additional logic on version bump (used by e.g. poetry-changelog)
  • Automatically commit, tag and push version bumps
  • Easily release from CI

Installation

Plugins work with Poetry version 1.2.0a2 or above.

$ poetry plugin add nr.poetry-release

Usage

$ poetry release patch --tag --push

This will

  1. Increment the patch version number in pyproject.toml and synchronize all other built-in and configured places where the version number is referenced
  2. Commit the changes and create a Git tag with the new version number, then push the branch to the remote repository

In addition to the version rules already supported by poetry version, the poetry release plugin supports a git rule which will construct a version number based on the last Git tag and the commit distance. Note that this version number is not PyPI compatible, but can be used to publish for example to Artifactory.

Using the --verify option will instead check if the specified version number is used consistently across all version references and is useful in CI.

Configuration

Release branch

If in a Git project, unless --no-branch-check is passed, poetry release will prevent you from creating the release unless the worktree is currently on the configured release branch (develop by default). The release branch can be changed by setting the tool.nr.poetry-release.branch option in pyproject.toml.

[tool.nr.poetry-release]
branch = "main"

Tag format

When using the --tag option, a Git tag will be created with the target version as its name. The name assigned to the new tag can be changed by setting the tool.nr.poetry-release.tag-format option in pyproject.toml. For example, if the target version is 1.0.0 but the tag name should be v1.0.0, the configuration to use is:

[tool.nr.poetry-release]
tag-format = "v{version}"

Additional version references

You can configure additional references to the version number in your project using the tool.nr.poetry-release.references option. It must be a list of tables that define the files and a regular expression to find the version number.

[tool.nr.poetry-release]
references = [
  { file = "../frontend/package.json", pattern = "  \"version\": \"{version}\"," }
]

In addition to this configuration option, plugins of type peotry_release.plugin_api.PoetryReleasePlugin registered under the poetry_release.plugins entrypoint will be used to detect additional version number references, or register a callback to modify file(s) with respect to the target version number.

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

nr.poetry-release-0.1.3.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

nr.poetry_release-0.1.3-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file nr.poetry-release-0.1.3.tar.gz.

File metadata

  • Download URL: nr.poetry-release-0.1.3.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for nr.poetry-release-0.1.3.tar.gz
Algorithm Hash digest
SHA256 7aec1404de4e2ffca9b1efa5c036d5f709f446279f195b5c510b2e0abbc5196c
MD5 23afb6a6962c32d968bd46ccb8c8b76c
BLAKE2b-256 7d7f2903c4debe8ff4081674f6270a83b294a07f93c65e0a1b9836a7f1ee2285

See more details on using hashes here.

File details

Details for the file nr.poetry_release-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: nr.poetry_release-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 10.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.1 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for nr.poetry_release-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 cf1125cfa2a7920f11621a828707dac98e8fa921d96ba6a2110bad1dbb7652f2
MD5 cf1d7b5114991fcc5d5a450edea06a76
BLAKE2b-256 d6b92cf942852da378e8514bb2bc6ffea73b2ba7670a9638f8110560cef185eb

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