Skip to content

ci: fork-only releases via fork_revision (v1.13.3.1) - #11

Merged
HerrSammyDE merged 1 commit into
developfrom
ci/fork-revision-releases
Sep 6, 2026
Merged

ci: fork-only releases via fork_revision (v1.13.3.1)#11
HerrSammyDE merged 1 commit into
developfrom
ci/fork-revision-releases

Conversation

@HerrSammyDE

Copy link
Copy Markdown
Member

We need a new release without code changes. The pipeline could not do that: it derives the version strictly from the upstream tag contained in develop, so a dispatch found "1.13.3, already published" and stopped — exactly as designed in #9, where a fourth version component was considered and rejected. This reverses that decision, narrowly.

fork_revision — dispatch only

Run Release manually with fork_revision: 1 and the version becomes <upstream>.<revision>v1.13.3.1. Upstream's number stays visible in front and the tag sorts after v1.13.3. The input is validated as a positive integer (0, 01, abc, 1.5 are refused with a clear error).

The automatic push path is untouched: it never sets the input, so a merge into develop still only ever cuts the upstream version. After v1.13.3.1 is published, a normal push resolves 1.13.3, finds it published, and no-ops as before; the next upstream bump cuts v1.13.4 normally.

Everything downstream works unchanged with the longer version string — ldflags injection, the binary smoke test (wings v1.13.3.1), the CHANGELOG gate (anchored, so ## v1.13.3 still does not match ## v1.13.3.1 and vice versa), image tags :1.13.3.1/:v1.13.3.1, :latest by digest.

Also

  • CHANGELOG.md: ## v1.13.3.1 section — required by the gate, becomes the release notes.
  • FORK_CHANGES.md: the versioning rule on the release-pipeline row.
  • No Go code touched; v1.13.3.1 is built from the same sources as v1.13.3.

Verification

  • actionlint (with shellcheck) clean.
  • Validation logic exercised locally for '', 1, 2, 0, 01, abc, 1.5.
  • CHANGELOG extraction checked for both v1.13.3 and v1.13.3.1.

After merge

Merging triggers the usual push run, which no-ops (1.13.3 is published). Then dispatch Release on develop with fork_revision = 1 to cut v1.13.3.1.

The pipeline derives the version strictly from the upstream tag contained in
develop, so a release without an upstream bump was impossible: dispatching
found "1.13.3, already published" and stopped. That was the deliberate
design — but we now need exactly such a release.

`fork_revision` (dispatch only, validated as a positive integer) appends a
fourth component: 1 → v1.13.3.1. Upstream's number stays visible in front,
the tag sorts after v1.13.3, and the automatic push path is untouched — it
never sets the input, so a merge still only ever cuts the upstream version.

CHANGELOG.md gains the v1.13.3.1 section the release gate requires;
FORK_CHANGES.md records the versioning rule.
@HerrSammyDE
HerrSammyDE merged commit d67b5bd into develop Sep 6, 2026
5 checks passed
@HerrSammyDE
HerrSammyDE deleted the ci/fork-revision-releases branch September 6, 2026 17:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant