Skip to content

docs: README v1.3 section + marketing version bump, with drift guard - #178

Merged
johnnichev merged 1 commit into
mainfrom
docs/v1.3-freshness
Jul 15, 2026
Merged

johnnichev merged 1 commit into
mainfrom
docs/v1.3-freshness

Conversation

@johnnichev

Copy link
Copy Markdown
Owner

No-release hygiene after the v1.1–v1.3 same-day releases (the docs site was current via #172, but README/landing/OG had drifted again).

Freshness

  • README: banner → v1.3; new "What's New in v1.3 — Streaming Contracts" section (matches the v1.1/v1.2 format).
  • Marketing surfaces bumped v1.2 → v1.3: landing status bar + footer, both OG SVGs, docs OG-card badge. Landing OG PNG re-rendered from the SVG (headless Chromium, 1200×630, font-faithful — the served card previously sat at v0.20.1 for months).

The actual fix for the recurring drift

  • scripts/sync_marketing_version.py binds every marketing version string to pyproject.toml. --check (added as a CI lint step) fails the build on drift — this is what would have caught the v0.20.1 card and every v1.x lag immediately. Write mode is wired into scripts/release.py so a release can't trip its own gate.
  • scripts/render_og_image.py: pinned headless-Chromium rasterizer for the OG PNG. Deliberately kept out of the sync script so CI never re-renders with a different font stack.
  • docs/CLAUDE.md documents the workflow.

Verified: sync_marketing_version.py --check passes clean; drift injection → exit 1 with a precise message; write mode fixes it. Scripts are ruff-clean + formatted; ci.yml validates. No src//tests/ changes.

Note on test-count figures: the landing shows 7,788 (a local full-suite count). The suite grew to 7,944 collected; CI reports ~7,600 passing (--extra dev, serve tests skipped). I left the number untouched this pass rather than guess — standardizing the count source is better folded into a follow-up (it's within noise either way).

https://claude.ai/code/session_01L1JWChKMs9yTyK92qquhJa

No-release hygiene after the v1.1-v1.3 same-day releases:

- README: banner points at v1.3; new "What's New in v1.3 - Streaming
  Contracts" section (matches the v1.1/v1.2 format).
- landing/index.html status bar + footer, both OG SVGs, and the docs OG
  card badge bumped v1.2 -> v1.3; landing OG PNG re-rendered from the SVG
  (headless Chromium, 1200x630, font-faithful).

Plus the fix for WHY these keep going stale (the served OG card sat at
v0.20.1 for months):

- scripts/sync_marketing_version.py binds every marketing version string to
  pyproject.toml. `--check` mode (now a CI lint step) fails the build on
  drift; write mode is wired into scripts/release.py so a release can't trip
  its own gate.
- scripts/render_og_image.py: pinned headless-Chromium rasterizer for the OG
  PNG (kept out of the sync script to avoid CI font-fallback drift).
- docs/CLAUDE.md documents the workflow.

Claude-Session: https://claude.ai/code/session_01L1JWChKMs9yTyK92qquhJa
@johnnichev
johnnichev merged commit 77fa691 into main Jul 15, 2026
9 checks passed
@johnnichev
johnnichev deleted the docs/v1.3-freshness branch July 15, 2026 21:20
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