ci: treat vX.Y.Z tag dispatch as a canonical release #130

Merged
Claude merged 1 commit from 0.2.0/release-tag-dispatch-canonical into main 2026-06-22 04:24:11 +00:00
Member

Summary

  • workflow_dispatch triggered against a version tag (e.g. v0.1.5) now resolves the same way a push to main does: canonical vX.Y.Z release naming, prerelease=false.
  • make_latest stays false in the tag-dispatch case so main remains the only release ever marked "latest".
  • Workflow-only change; no VERSION bump per AGENTS.md (confirmed via ./scripts/check-version-bump.sh origin/main).

Why

Needed to backfill historical 0.1.x releases with both Linux .AppImage and Windows .exe artifacts without rewriting main's history. Pushing a tag triggers nothing (ci.yml only listens to branch pushes), and dispatching against any non-main ref previously always produced a dev-* prerelease regardless of the checked-out VERSION file. This lets us dispatch against a tag pointing at the exact historical main commit for each version and get a correctly-named canonical release.

Test plan

  • python3 -c "import yaml; yaml.safe_load(...)" on both edited workflow files — valid YAML.
  • ./scripts/check-version-bump.sh origin/main — confirms no bump required.
  • After merge: dispatch linux-appimage.yml against an existing tag (e.g. v0.1.30) and confirm it updates release v0.1.30 (not a dev-v0.1.30 prerelease) with make_latest unset.
## Summary - `workflow_dispatch` triggered against a version tag (e.g. `v0.1.5`) now resolves the same way a push to `main` does: canonical `vX.Y.Z` release naming, `prerelease=false`. - `make_latest` stays `false` in the tag-dispatch case so `main` remains the only release ever marked "latest". - Workflow-only change; no `VERSION` bump per `AGENTS.md` (confirmed via `./scripts/check-version-bump.sh origin/main`). ## Why Needed to backfill historical 0.1.x releases with both Linux `.AppImage` and Windows `.exe` artifacts without rewriting `main`'s history. Pushing a tag triggers nothing (`ci.yml` only listens to branch pushes), and dispatching against any non-`main` ref previously always produced a `dev-*` prerelease regardless of the checked-out `VERSION` file. This lets us dispatch against a tag pointing at the exact historical `main` commit for each version and get a correctly-named canonical release. ## Test plan - [x] `python3 -c "import yaml; yaml.safe_load(...)"` on both edited workflow files — valid YAML. - [x] `./scripts/check-version-bump.sh origin/main` — confirms no bump required. - [ ] After merge: dispatch `linux-appimage.yml` against an existing tag (e.g. `v0.1.30`) and confirm it updates release `v0.1.30` (not a `dev-v0.1.30` prerelease) with `make_latest` unset.
ci: treat vX.Y.Z tag dispatch as a canonical release
All checks were successful
CI / lint (push) Successful in 7s
CI / test (push) Successful in 1m52s
CI / appimage (push) Successful in 8m30s
CI / build-appimage (push) Successful in 0s
CI / windows-exe (push) Successful in 9m23s
CI / build-windows-exe (push) Successful in 0s
847c7776f6
workflow_dispatch against a version tag (e.g. v0.1.5) now resolves the
same way a push to main does — canonical release-tag naming and
prerelease=false — instead of always falling into the dev/prerelease
branch path. make_latest stays false for the tag-dispatch case so main
keeps being the one "latest" release. Needed to backfill historical
0.1.x releases with both platform artifacts without rewriting main's
history.
Claude merged commit c4d794a079 into main 2026-06-22 04:24:11 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ai-collab/bulk-image-organizer!130
No description provided.