ci: switch versioning from CalVer to SemVer #120

Merged
lerko merged 1 commits from chore/semver-switch into main 2026-06-12 15:19:01 +00:00
Owner

Switches release tagging from CalVer (2026.06.x) to SemVer (vX.Y.Z), relaunching at v1.0.0.

Why:

  • Go module tooling only resolves v-prefixed semver tags — go install @latest ignored every CalVer tag and built untagged HEAD pseudo-versions
  • GoReleaser enforces semver and errors on non-compliant tags; zero-padded CalVer months (2026.06.x) are invalid semver, so the rebuilt pipeline would have failed on the next CalVer tag
  • CalVer-as-semver is impossible in Go: major version 2026 would require a /v2026 module path suffix
  • All old CalVer tags/releases/images were deliberately deleted (pre-release security issues) — clean switch point

Changes:

  • Workflow tag triggers [0-9]*v[0-9]* (release-binaries, release-docker, GitHub mirror-release relay)
  • cliff.toml tag_patternv[0-9].* — regex, not glob (git-cliff ≥1.4); old pattern [0-9]* matched everything by accident
  • Docker image tags strip the v (git tag v1.2.3lerkolabs/uptop:1.2.3) per registry convention

Validated: goreleaser check passes, git-cliff renders full history under Unreleased with the new pattern.

Switches release tagging from CalVer (`2026.06.x`) to SemVer (`vX.Y.Z`), relaunching at `v1.0.0`. **Why:** - Go module tooling only resolves v-prefixed semver tags — `go install @latest` ignored every CalVer tag and built untagged HEAD pseudo-versions - GoReleaser enforces semver and errors on non-compliant tags; zero-padded CalVer months (`2026.06.x`) are invalid semver, so the rebuilt pipeline would have failed on the next CalVer tag - CalVer-as-semver is impossible in Go: major version 2026 would require a `/v2026` module path suffix - All old CalVer tags/releases/images were deliberately deleted (pre-release security issues) — clean switch point **Changes:** - Workflow tag triggers `[0-9]*` → `v[0-9]*` (release-binaries, release-docker, GitHub mirror-release relay) - `cliff.toml` `tag_pattern` → `v[0-9].*` — regex, not glob (git-cliff ≥1.4); old pattern `[0-9]*` matched everything by accident - Docker image tags strip the `v` (git tag `v1.2.3` → `lerkolabs/uptop:1.2.3`) per registry convention Validated: `goreleaser check` passes, `git-cliff` renders full history under Unreleased with the new pattern.
lerko added 1 commit 2026-06-12 15:13:32 +00:00
ci: switch versioning from CalVer to SemVer
CI / test (pull_request) Successful in 1m59s
CI / lint (pull_request) Successful in 1m27s
CI / vulncheck (pull_request) Successful in 56s
e99e959b64
Go module tooling requires v-prefixed semver tags (go install @latest
ignores CalVer tags entirely), GoReleaser errors on non-semver tags,
and zero-padded CalVer months are invalid semver. Old CalVer tags and
releases were deleted due to pre-release security issues; relaunch
tags as v1.0.0.

- Workflow tag triggers: [0-9]* -> v[0-9]* (Gitea + GitHub relay)
- cliff.toml tag_pattern: regex v[0-9].* (was matching everything --
  tag_pattern is regex since git-cliff 1.4, not glob)
- Docker image tags drop the v prefix per registry convention
lerko merged commit e99e959b64 into main 2026-06-12 15:19:01 +00:00
lerko deleted branch chore/semver-switch 2026-06-12 15:19:01 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lerkolabs/uptop#120