ci: publish only GA tags (vX.Y.Z), never RC tags #15

Merged
KofTwentyTwo merged 1 commits from feature/ga-only-release-tags into develop 2026-10-12 21:01:09 +00:00
KofTwentyTwo commented 2026-10-12 20:58:18 +00:00 (Migrated from github.com)

Restricts the publish_release workflow's tag filter from /v.*/ to GA tags only (/^v\d+\.\d+\.\d+$/).

Why: a release-candidate tag (for example v1.0.0-RC.2) matched /v.*/ and started qqq-orb/mvn_publish with branch_type: release. calculate_version.sh treats an RC tag as its release branch and increments the RC, so pushing the tag for a candidate already on Maven Central published a new RC number containing the old code. That happened on 2026-10-12 for qbit-sql-workbench (1.0.0-RC.3, a copy of RC.2) and qbit-assistant (0.1.0-RC.2, a copy of RC.1). RC versions are published only from release/* branch builds, and RC tags are only bookkeeping, so they must not trigger a publish. GA tags (vX.Y.Z) keep publishing as before.

Root cause in the orb is tracked separately in QRun-IO/qqq-orb. This change only touches the tag filter.

🤖 Generated with Claude Code

Restricts the `publish_release` workflow's tag filter from `/v.*/` to GA tags only (`/^v\d+\.\d+\.\d+$/`). Why: a release-candidate tag (for example `v1.0.0-RC.2`) matched `/v.*/` and started `qqq-orb/mvn_publish` with `branch_type: release`. `calculate_version.sh` treats an RC tag as its release branch and **increments** the RC, so pushing the tag for a candidate already on Maven Central published a *new* RC number containing the old code. That happened on 2026-10-12 for qbit-sql-workbench (`1.0.0-RC.3`, a copy of RC.2) and qbit-assistant (`0.1.0-RC.2`, a copy of RC.1). RC versions are published only from `release/*` branch builds, and RC tags are only bookkeeping, so they must not trigger a publish. GA tags (`vX.Y.Z`) keep publishing as before. Root cause in the orb is tracked separately in QRun-IO/qqq-orb. This change only touches the tag filter. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.