Skip to main content

Plugin for release management in projects based on Poetry

Project description

Poetry release

CI PyPi Package Downloads

Release managment plugin for poetry

The project is currently under development and is not ready for use in production.

Inspired by cargo-release

Features

  • Semver support
  • Creating git tag and commits after release
  • Changelog support

Installation

Note: Plugins work at Poetry with version 1.2.0a2 or above.

poetry add poetry-release

Usage

poetry release <level>

Existing levels

  • major
  • minor
  • patch
  • release (default)
  • rc
  • beta
  • alpha

Prerequisite

Your project should be managed by git.

Config

Replacements

Poetry-release supports two types of release replacements:

  1. By Regex You can create replacements in files using regular expressions:
release-replacements = [
    { file="CHANGELOG.md", pattern="\\[Unreleased\\]", replace="[{version}] - {date}" },
]
  1. Message replacements

You can set the text for release messages:

Replacement Description
release-commit-message Message for release commit
post-release-commit-message Message for post release commit(if it's allowed)
tag-name The name of tag
tag-message The message for tag

Templates

Poetry-release supports templates to build releases. Templates could be used in release replacements/messages/tags. Template is indicated like some text {package_name}

Template Description
package_name The name of this project in pyproject.toml
prev_version The project version before release
version The bumped project version
next_version The version for next development iteration (alpha)
date The current date in %Y-%m-%d format

Release settings

These settings allow you to disable part of the functionality. They can be set either in pyproject.toml or in CLI like flag. Settings from CLI have a higher priority

Settings Default CLI pyproject.toml Description
disable-push false :heavy_check_mark: :heavy_check_mark: Don't do git push
disable-tag false :heavy_check_mark: :heavy_check_mark: Don't do git tag
disable-dev false :heavy_check_mark: :heavy_check_mark: Skip bump version after release
sign-commit false :heavy_check_mark: :heavy_multiplication_x: Signed commit
sign-tag false :heavy_check_mark: :heavy_multiplication_x: Signed tag

Default git messages

  • Tag name - {version}
  • Tag message - Released {package_name} {version}
  • Release commit - Released {package_name} {version}
  • Post release commit - Starting {package_name}'s next development iteration {next_version}

Example

[tool.poetry-release]
release-replacements = [
    { file="CHANGELOG.md", pattern="\\[Unreleased\\]", replace="[{version}] - {date}" },
    { file="CHANGELOG.md", pattern="\\(https://semver.org/spec/v2.0.0.html\\).", replace="(https://semver.org/spec/v20.0.html).\n\n## [Unreleased]"},
]
disable-push = false
disable-tag = false
disable-dev = false
release-commit-message = "Release {package_name} {version}"
post-release-commit-message = "Start next development iteration {next_version}"
tag-name = "{version}"
poetry release minor --disable-dev --disable-tag

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

poetry-release-0.3.0.tar.gz (9.2 kB view hashes)

Uploaded Source

Built Distribution

poetry_release-0.3.0-py3-none-any.whl (9.6 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