Skip to content

ci: semver release versioning (port from toolchain)#19

Merged
julian-goldstein merged 1 commit into
masterfrom
semver-versioning
Jun 19, 2026
Merged

ci: semver release versioning (port from toolchain)#19
julian-goldstein merged 1 commit into
masterfrom
semver-versioning

Conversation

@julian-goldstein

Copy link
Copy Markdown
Contributor

Ports the toolchain's versioning scheme to script-template.

What changed

release.yml

  • Replaces the decimal "tenths" counter (v0.9v1.0, can't express v0.10) with semver vMAJOR.MINOR.PATCH.
  • Bump = highest level any commit since the last release asks for, via [bump:major|minor|patch] in the commit subject; unmarked defaults to minor on master, patch on release/*.
  • Name-based baseline + release/* trigger → back-ports scoped to a line.
  • Branch-creation guard + empty-range guard → no spurious releases.
  • Keeps the rolling latest release and the tree-archive publish; latest only moves on master.

commit-convention.yml (new) — markers PR check. Triggers on pull_request and merge_group from day one, because master has a merge queue — so a required markers check won't deadlock the queue (the lesson learned the hard way on the toolchain).

README.md (new) — documents scaffolding, the toolchain pin, and the versioning/commit convention.

Deliberately different from the toolchain

  • No auto-opened release/* branches. script-template releases on every push, so auto-opening a branch per minor would spawn one per push. Maintenance branches stay manual.
  • No flavors (no meaning for a template).

Follow-ups (separate PRs)

  • Point the toolchain pin at v0.8.0 (currently pinned to the deleted v0.9).
  • Tag cleanup / 3-component normalization (same situation the toolchain had).
  • Make markers a required check + a release/* ruleset, after it's run once.

Port the toolchain's versioning scheme: replace the decimal tenths counter
(v0.9 -> v1.0, no v0.10) with semver vMAJOR.MINOR.PATCH driven by [bump:*]
markers in the commit subject (default minor on master, patch on release/*).
Name-based baseline + release/* support enable back-ports; branch-creation and
empty-range guards prevent spurious releases. Keeps the rolling 'latest' and the
tree-archive publish. Adds commit-convention.yml (markers check, triggering on
pull_request AND merge_group since master has a merge queue) and a README with
the convention.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@julian-goldstein julian-goldstein merged commit 1601d80 into master Jun 19, 2026
1 check passed
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