From 629ebed159a2784e3ea798482a2e0ff0d0a91366 Mon Sep 17 00:00:00 2001 From: farhan Date: Mon, 17 Aug 2026 15:13:52 +0500 Subject: [PATCH] fix: pin python-semantic-release tag_format to v{version} PSR determines the last released version by reading git tags only (never PyPI), matching them against tag_format. The default is v{version}, but this repo's historical release tags are bare (0.1.0 ... 0.4.3), so a default-config PSR ignores that entire history, restarts from 0.0.0, and either refuses to release or invents versions (v0.4.4/v0.4.5) that were never published. Pin the format explicitly so the convention is unambiguous. Making releases actually work also requires a matching baseline tag (v0.4.3) and cleanup of the stray tags; see the PR description for the full remediation checklist. Co-Authored-By: Claude Opus 4.8 (1M context) --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 6401415f..9de869a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -76,6 +76,9 @@ build_command = "pip install build && SETUPTOOLS_SCM_PRETEND_VERSION=$NEW_VERSIO # Repo is on 0.x: prevent a feat: commit from bumping 0.x.y → 1.0.0 allow_zero_version = true major_on_zero = false +# PSR reads git tags only; default format is v{version}. A matching baseline tag +# (e.g. v0.4.3) must exist for it to detect the last release. Pinned for clarity. +tag_format = "v{version}" # uv configuration # https://docs.astral.sh/uv/reference/settings/