docs: close foundation roadmap for release - #52
Conversation
rgehrsitz
left a comment
There was a problem hiding this comment.
Review: docs — close foundation roadmap for release (M8 complete, M9, v0.2.0-alpha)
Verified on codex/rex-foundation-release (ba0f51e): go test ./... all packages pass, go vet/go build clean, git diff --check clean, bash -n clean, tree left clean (dist/ is gitignored). I also exercised the release mechanics end-to-end rather than trusting the script by reading. No blockers.
Release mechanics — verified by execution, not just inspection
- Tag → workflow → script chain is coherent for a prerelease.
release.ymltriggers onv*(matchesv0.2.0-alpha), passesgithub.ref_nameasVERSION, auto-adds--prereleaseon-, and--verify-tagmatches the annotated-tag procedure inRELEASING.md. - Semver gate behaves correctly. I ran 11
VERSIONcases:v0.2.0-alpha,v0.1.0,v1.10.3-rc.1,v2.0.0+build.5accepted;bad,v1.2,v01.2.3(leading zero),v1.2.3-(dangling hyphen),NOTAVERSIONall rejected with exit 2, before any archive work. The regex is unquoted on the RHS (portable, safe under macOS bash 3.2), and exit 2 distinguishes bad input from build failure. - Full archive build reproduces the PR's claim. A valid-
VERSIONrun produced all six archives (4×.tar.gz, 2×.zip) andshasum -a 256 --check checksums.txtpasses 6/6. Bonus observation: pushing a mistyped non-semverv*tag now yields a failed workflow run instead of a silently misnamed release — the intended hardening, just noting the failure mode is visible in Actions.
Docs consistency — checked against sources
- M8 Complete is justified. PRs #50 (
0e24a3c) and #51 (c323ddb) are merged, so "M8.1–M8.10 are integrated" is factual; D15 now reads "Accepted for REX-M8.10 in PR #51", resolving the proposed-vs-integrated wording. - M9 section faithfully transcribes D15. All eight bullets match the D15 gates I reviewed under PR #51: same 5,000-event fixtures, CV ≤ 20% + p95 max/min ≤ 1.20 control gates, 150KB/1,500-object targets, 1.10x / 0.90x dense gates, 0.98x/1.02x sparse guards, 5% Redis-CPU band, byte-identical formats, and revert-without-D13 falsification. No gate drift introduced in transcription.
- Release-notes contract claims verify.
rexcv4–v7 +-legacy-v3wirken as described perBYTECODE_COMPATIBILITY.md; Redis 7.0+/script vs 6.2+/explicit-WATCH matches the M8.9 operator docs; serial-daemon/standalone-domain scope matches D15; all four linked guides exist;v0.1.0-alphatag exists as the stated baseline.
Nits (non-blocking)
- Roadmap provenance convention drift. Earlier milestone rows carry merge commit hashes (e.g., M8.8
d01b5ad); the M8.9/M8.10 rows cite only PR numbers. Consider appending0e24a3candc323ddbfor consistency — cheap, and this table is the project's audit trail. - Reviewed notes vs published notes can drift. The workflow publishes
--generate-notesand never readsdocs/RELEASE_NOTES_<tag>.md; the file is a manual review aid applied via step-5 edits. The procedure covers it, but the drift risk is structural — a future improvement could pass the reviewed file as the release body (or explicitly record why generated notes are preferred). - Follow-up sequencing is correct as written (tag from merged
main, verify assets, apply notes before declaring complete) — just confirming the tag must be created after this PR merges, since the release boundary it declares doesn't exist onmainyet.
Clean release PR: mechanics proven by execution, docs consistent with the evidence line from M8.8→M8.10, and M9 correctly staged as independently gated post-release work.
|
Addressed both review nits in
Validation after the changes: workflow YAML parses, |
|
README release audit completed in
|
Completes the foundation release boundary after M8.10: M8 is marked complete and the independently gated dense commit allocation work moves to REX-M9. Adds reviewed
v0.2.0-alphaoperator notes, documents release-note preparation, and rejects malformed release tags before archive creation.The supported release remains the serial durable daemon on a standalone Redis commit domain. Redis 7.0+ uses the default scripted transaction mode; Redis 6.2+ requires explicit WATCH mode. Shared-Redis concurrent workers and Redis Cluster remain outside the supported contract.
Validation
GOCACHE=/tmp/rex-go-cache go test ./...GOCACHE=/tmp/rex-go-cache go test -race ./...GOCACHE=/tmp/rex-go-cache go vet ./...GOCACHE=/tmp/rex-go-cache go build ./...bash -n scripts/release/build-archives.shVERSIONrejection returns exit 2VERSION=v0.2.0-alphabuilds six release archives and all SHA-256 checks passgit diff --checkRelease follow-up
After review and merge, create the annotated
v0.2.0-alphatag from the mergedmaincommit. The tag-triggered workflow will publish the archives and generated GitHub release; verify its assets and apply the reviewed operator notes before declaring the release complete.