Plugin for release management in projects based on Poetry
Project description
Poetry release
Release managment plugin for poetry
The project is currently under development and is not ready for use in production.
Inspired by cargo-release
Features
Installation
Note: Plugins work at Poetry with version 1.2.0a1 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:
- By Regex You can create replacements in files using regular expressions:
release-replacements = [
{ file="CHANGELOG.md", pattern="\\[Unreleased\\]", replace="[{version}] - {date}" },
]
- 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
Built Distribution
Hashes for poetry_release-0.2.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c81408f48834ad3c92e9181771bf585f6e5673c079243fef540b8e7ab950bea6 |
|
MD5 | 3bab72a2cc0997590ded255de0dbf92c |
|
BLAKE2b-256 | 52169062c08295a9b7ef4643db5c2a8d5a1d4d7f43090527d1ec574e987468ab |