feat(release): make release tooling + versioning ritual (WHYNOT-WP-0003 T01)

- scripts/release.mjs + `make release VERSION=x.y.z`: guarded release cut —
  bumps package.json, relabels CHANGELOG [Unreleased] → [x.y.z], commits, and
  creates the annotated git tag. Refuses on dirty tree, existing tag, duplicate
  section, or empty [Unreleased]. Never pushes (outward step stays manual).
- DesignSystemIntroduction.md §6: document the release ritual; §9: fix the
  stale bootstrap host + tag note.
- README: bump the install pin to the first real tag (v0.3.0).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-27 14:03:08 +02:00
parent f6233811f5
commit 57bd2beaec
5 changed files with 118 additions and 5 deletions

View File

@@ -10,7 +10,7 @@ NODE ?= node
PYTHON ?= $(shell [ -x $(HOME)/llm-connect/.venv/bin/python ] && echo $(HOME)/llm-connect/.venv/bin/python || echo python3)
.DEFAULT_GOAL := help
.PHONY: help designbook-pull designbook-sync designbook-check ir adapt-lit recent-changes sync-styles test
.PHONY: help designbook-pull designbook-sync designbook-check ir adapt-lit recent-changes sync-styles test release
help: ## Show this help.
@grep -hE '^[a-zA-Z_-]+:.*?## ' $(MAKEFILE_LIST) \
@@ -42,3 +42,7 @@ sync-styles: ## Regenerate src/elements/_styles.js from components.css.
test: ## Run the Playwright visual-regression suite.
pnpm test:visual
release: ## Cut a release: bump + cut CHANGELOG + tag. Usage: make release VERSION=0.3.0
@test -n "$(VERSION)" || { echo "usage: make release VERSION=x.y.z"; exit 2; }
$(NODE) scripts/release.mjs $(VERSION)