From 741edbf937b3e7e9aee165b76115ee2c8ed8a082 Mon Sep 17 00:00:00 2001 From: Joshua Levy Date: Thu, 12 Dec 2024 09:47:17 -0800 Subject: [PATCH] Clarify poetry dynamic versioning. --- pyproject.toml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index a3f7c10..dfd1a46 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,15 +25,27 @@ rich = "^13.9.3" requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" -# Auto-generated version in build, based on tag or commit. -# https://sam.hooke.me/note/2023/08/poetry-automatically-generated-package-version-from-git-commit/ +# Auto-generated version for builds based on git tag or commit. +# +# Preferred styles of versioning (PEP 440 compliant): +# 1.2.3 (stable release) +# 1.2.3a4 (pre-release, no dash or dots) +# 1.2.3rc1 (release candidate) +# 1.2.3.dev4+abcdef12 (development build, .dev for dev releases and +commit hash) +# +# Tags with a "v" prefix (e.g., v1.2.3) or additional dots (e.g., v1.2.3.rc1) are recognized +# but normalized to the preferred style for distribution. +# See: https://sam.hooke.me/note/2023/08/poetry-automatically-generated-package-version-from-git-commit/ [tool.poetry-dynamic-versioning] enable = true vcs = "git" -pattern = "^v?(?P\\d+\\.\\d+\\.\\d+)(-?((?P[a-zA-Z]+)\\.?(?P\\d+)?))?" +pattern = "^v?(?P\\d+\\.\\d+\\.\\d+)(-?((?P[a-zA-Z]+)\\.?(?P\\d+)?))?" format-jinja = """ {%- if distance == 0 -%} {{- base -}} + {%- if stage -%} + {{ stage }}{{ revision | default("") }} + {%- endif -%} {%- else -%} {{- base }}.dev{{ distance }}+{{commit}} {%- endif -%}