ZDDC/website/releases
ZDDC 94591397cf build: pre-release semver for alpha/beta channels
Replace the build-counter version scheme (every alpha push monotonically
bumps the patch number, producing immutable :0.0.X tags that look
indistinguishable from stable releases) with proper semver pre-release
suffixes. Stable owns clean vX.Y.Z; alpha and beta carry
vX.Y.Z-{alpha,beta}[.N] indicating the next-stable target.

The next-stable target is the patch-bump of the latest clean
<prefix>-vX.Y.Z tag. Counter N is per-channel (alpha and beta count
separately) and resets when a new stable advances next-patch. Used
only for zddc-server image tags, where every release is git-tagged;
HTML tools omit the counter since alpha/beta cuts there don't tag.

release-image.sh:
- New CLI: sh release-image.sh [alpha|beta|stable] [<version>].
- Default channel alpha. Version arg only valid (and only optional)
  for stable.
- Auto-derives the version via next_prerelease for alpha/beta, and
  patch-bump for unspecified stable.
- Now creates the git tag itself (the auto-derived version is no
  longer something the operator can predict in advance), but does
  not push — operator finishes with `git push --tags`.

shared/build-lib.sh:
- Add next_prerelease(channel, tag_prefix) helper.
- compute_build_label embeds v<next-stable>-{alpha,beta} in the
  on-page label for plain and --release alpha|beta builds.
- Plain builds: v<next-stable>-alpha · <ts> · <sha>[-dirty]
  --release alpha: v<next-stable>-alpha · <date> · <sha>
  --release beta:  v<next-stable>-beta · <date> · <sha>
  --release [<version>]: v<X.Y.Z> (clean stable, unchanged shape).

Pre-release semver ordering (vX.Y.Z-alpha.1 < vX.Y.Z-alpha.2 <
vX.Y.Z-beta.1 < vX.Y.Z) is honored by registry tag sorting,
git tag --sort=-v:refname, sort -V, npm, cargo — so consumers can
pin or compare versions without surprises.

Existing zddc-server-v0.0.{3..7} git tags and registry tags are
audit history; not rewritten. Going forward, alpha/beta cuts produce
v0.0.8-{alpha,beta}.N format, and clean v0.0.8 is reserved for a
deliberate stable promotion.

freshen-channel needs no code change. It runs --release <channel>
inside a worktree at the latest stable tag, where the build-lib.sh
at that tag is still the old version producing old-format labels;
the first stable cut after this commit will propagate the new format
to subsequent freshens (per the existing "build pipeline at the tag"
reproducibility policy).

AGENTS.md and CLAUDE.md updated.
2026-04-29 17:32:35 -05:00
..
archive_alpha.html build: pre-release semver for alpha/beta channels 2026-04-29 17:32:35 -05:00
archive_beta.html build: pre-release semver for alpha/beta channels 2026-04-29 17:32:35 -05:00
archive_stable.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
archive_v0.0.1.html Initial commit 2026-04-27 11:05:47 -05:00
archive_v0.0.2.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
classifier_alpha.html build: pre-release semver for alpha/beta channels 2026-04-29 17:32:35 -05:00
classifier_beta.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
classifier_stable.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
classifier_v0.0.1.html Initial commit 2026-04-27 11:05:47 -05:00
classifier_v0.0.2.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
index.html feat(install): replace .zip downloads with copy-paste shell snippets 2026-04-29 13:30:32 -05:00
landing_alpha.html build: pre-release semver for alpha/beta channels 2026-04-29 17:32:35 -05:00
landing_beta.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
landing_stable.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
landing_v0.0.1.html Initial commit 2026-04-27 11:05:47 -05:00
landing_v0.0.2.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
mdedit_alpha.html build: pre-release semver for alpha/beta channels 2026-04-29 17:32:35 -05:00
mdedit_beta.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
mdedit_stable.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
mdedit_v0.0.1.html Initial commit 2026-04-27 11:05:47 -05:00
mdedit_v0.0.2.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
transmittal_alpha.html build: pre-release semver for alpha/beta channels 2026-04-29 17:32:35 -05:00
transmittal_beta.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
transmittal_stable.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00
transmittal_v0.0.1.html Initial commit 2026-04-27 11:05:47 -05:00
transmittal_v0.0.2.html release: archive/transmittal/classifier/mdedit/landing v0.0.2 stable 2026-04-29 13:16:32 -05:00