From 2c0a0b0eef87c52060ef2ffdcde379aaaf71eb3a Mon Sep 17 00:00:00 2001 From: Marko Petzold Date: Mon, 26 Oct 2026 17:45:11 +0100 Subject: [PATCH] pr.sh: an empty TAG_PREFIX tags the bare version TAG_PREFIX defaults to v only when unset; empty gives bare-version tags (the widgets: 1.0.10). release.sh and the reusable workflows already take the prefix as given. Test: an empty prefix titles and tags the bare version. --- README.md | 3 +++ scripts/pr.sh | 9 +++++---- scripts/test_pr.sh | 8 ++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d51c125..9a36ec9 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,9 @@ versions); `pr.sh release` takes `TAG_PREFIX` and `WRITE_VERSION` (the project's version recipe) from the environment, and `pr.sh merge` a comma-separated list of every version file. One release per pull request. +Bare-version tags (`1.0.10`, the widgets): an empty `TAG_PREFIX` for +`pr.sh release` and `tag-prefix: ""` for `release-intent` and `release-tag`. + Onboarding a repository onto this flow, besides the caller files: - `main` ruleset: squash merges only; repository setting "default commit diff --git a/scripts/pr.sh b/scripts/pr.sh index f7fdbeb..b8d6651 100755 --- a/scripts/pr.sh +++ b/scripts/pr.sh @@ -24,9 +24,10 @@ # required checks pass; its merge starts (the image and the # tag), and this waits for that run. # -# Env: PR_WAIT_SECONDS (default 20) between polls. For one of several release -# projects in a repository: TAG_PREFIX (default v; e.g. db-v) and -# WRITE_VERSION (default _write-version; the project's recipe). +# Env: PR_WAIT_SECONDS (default 20) between polls. TAG_PREFIX (default v when +# unset; e.g. db-v for one of several release projects in a repository, empty +# for bare-version tags) and WRITE_VERSION (default _write-version; the +# project's recipe). set -euo pipefail wait_s=${PR_WAIT_SECONDS:-20} @@ -170,7 +171,7 @@ cmd_release() { base=$(version "$vf" origin/main) [ -n "$base" ] || die "release: $vf has no version on origin/main" next=$(next_version "$level" "$base") - tag="${TAG_PREFIX:-v}$next" + tag="${TAG_PREFIX-v}$next" title="release $name $tag" if [ "$(version "$vf")" != "$next" ]; then just "${WRITE_VERSION:-_write-version}" "$next" diff --git a/scripts/test_pr.sh b/scripts/test_pr.sh index ac67843..c21d147 100755 --- a/scripts/test_pr.sh +++ b/scripts/test_pr.sh @@ -258,6 +258,14 @@ unset TAG_PREFIX expect "release: title with the prefixed tag" logged "gh pr create --base main --head feat --title release platform-db db-v1.2.4" expect "release: the prefixed tag fetched" git -C "$repo" rev-parse --verify refs/tags/db-v1.2.4 +setup package.json 1.0.9 +ci_tag 1.0.10 +export TAG_PREFIX= +check "release: an empty TAG_PREFIX tags the bare version" 0 release patch widget-label package.json build-publish.yml package.json +unset TAG_PREFIX +expect "release: title with the bare version" logged "gh pr create --base main --head feat --title release widget-label 1.0.10" +expect "release: the bare tag fetched" git -C "$repo" rev-parse --verify refs/tags/1.0.10 + setup VERSION 1.2.3 ci_tag v1.2.4 export WRITE_VERSION=_write-db-version