diff --git a/docs/release.md b/docs/release.md index 4982fa8..5e6c71c 100644 --- a/docs/release.md +++ b/docs/release.md @@ -74,7 +74,7 @@ For an optional local diagnostic of a committed candidate, run: ``` This is not a required step before publication. The upstream -[candidate-check contract](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.2.0/docs/consumers/check.md) +[candidate-check contract](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/check.md) describes its requirements. Run the single publication command with the chosen version: @@ -114,7 +114,7 @@ resolved. ReleaseKit reports the attempted version, tag object, and recovery state, including the captured publication endpoint when available. Use that endpoint—not merely the current `origin` URL—to query the exact tag; follow the upstream -[failure-recovery procedure](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.2.0/docs/release.md#resolve-failures): +[failure-recovery procedure](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/release.md#resolve-failures): ```sh releasekit_endpoint='COPY_CAPTURED_ENDPOINT' diff --git a/docs/roadmap/releasekit.md b/docs/roadmap/releasekit.md index a9c3db5..ed2865d 100644 --- a/docs/roadmap/releasekit.md +++ b/docs/roadmap/releasekit.md @@ -1,6 +1,8 @@ # ReleaseKit v0.3.0 Upgrade Roadmap -Status: Accepted; implementation pending. +Status: Complete. ReleaseKit v0.3.0 is selected and the upgraded integration +is verified. Current workflow requirements belong in the +[release procedure](../release.md) and [release policy](../policy/release.md). ## Purpose @@ -12,7 +14,7 @@ wrappers, and product-specific checks locally. This is a focused tooling upgrade, not another release-process migration. The [release policy](../policy/release.md) and [release procedure](../release.md) continue to own PromptKit's release -requirements and workflow. A separate implementation plan will own staged work. +requirements and workflow. The upgrade was implemented as one focused unit. ## Current Baseline And Reviewed Upstream @@ -111,3 +113,12 @@ Completion means v0.3.0 is selected, wiring verification passes without a duplicated version pin, and current documentation agrees with the adopted tool. No real tag publication is part of implementation verification. Future PromptKit release preparation remains a separate task under the runbook. + +Implementation verification passed with Go 1.26.8: the module-selected wrapper +reported `releasekit v0.3.0`, the disposable publication and failure fixtures +passed, and the ordinary offline Go suite, full vet, and maintained consumer +examples passed. The fixtures also verified native usage status, same-Go +bootstrap, and unchanged candidate module metadata. Release profile and wrapper +contents are unchanged; no real PromptKit tag was published. Upstream notices +were reviewed; the tooling-only upgrade introduced no incorporated material +requiring a new attribution entry. diff --git a/go.mod b/go.mod index 2206069..61e8664 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( ) require ( - gitea.maximumdirect.net/eric/ReleaseKit v0.2.0 // indirect + gitea.maximumdirect.net/eric/ReleaseKit v0.3.0 // indirect github.com/yuin/goldmark/v2 v2.1.6 // indirect go.yaml.in/yaml/v4 v4.0.0-rc.6 // indirect golang.org/x/mod v0.40.0 // indirect diff --git a/go.sum b/go.sum index 6614d78..1fa10f0 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ gitea.maximumdirect.net/eric/ConfigKit v0.5.0 h1:2KwG10+kApWM3avOoYA+p768xcbHUp7tQ2rqizBNpyg= gitea.maximumdirect.net/eric/ConfigKit v0.5.0/go.mod h1:tYWpsrbLyu05r8+1MapWp5fN6ZrX9I8hU2xEPedYmYk= -gitea.maximumdirect.net/eric/ReleaseKit v0.2.0 h1:EACELngRel4RiulR+Ors56nMZ5fA9orJDyhPxn6UVe4= -gitea.maximumdirect.net/eric/ReleaseKit v0.2.0/go.mod h1:xN8w1OWjhCwtDxyHVFbKxFWowuEPbMTCZrf0JIIm9pE= +gitea.maximumdirect.net/eric/ReleaseKit v0.3.0 h1:aTMn+50MEpHpHI2RoCCmJYsy7Ohrpa+RSva63Kq0/tU= +gitea.maximumdirect.net/eric/ReleaseKit v0.3.0/go.mod h1:LVodqNQ3OIKv9NBq+fFeyMByd1lHY25YOmmpah/NaNI= gitea.maximumdirect.net/eric/promptkit-backend-openrouter/v3 v3.20260930.0 h1:lzfCDbzJQRGzIlRPRprnAV9hVVL5zUQy80VMQ0kbYa0= gitea.maximumdirect.net/eric/promptkit-backend-openrouter/v3 v3.20260930.0/go.mod h1:HjS0f+3q0IdHCTEz+VVAEgIwIWJFAZUjuKdAtvtqKdg= gitea.maximumdirect.net/eric/promptkit-backend-rakestrawhome/v3 v3.20260930.0 h1:h12ZTRldAmpLAomj0oQRGteFxHLN1LPE6XDl9zJNbm8= diff --git a/scripts/test-release.py b/scripts/test-release.py index da88e62..ecb2a9a 100644 --- a/scripts/test-release.py +++ b/scripts/test-release.py @@ -216,6 +216,11 @@ def prepare_repository(repository, remote, environment, module_bytes, version): def verify_publication(repository, remote, temporary_root, environment, module_bytes, selected_go): + selected_releasekit = run( + ["go", "list", "-mod=readonly", "-m", "-f", "{{.Version}}", RELEASEKIT_MODULE], + cwd=repository, + environment=environment, + ).strip() publication = repository / "scripts/release.sh" run( [str(publication), RELEASE_VERSION], @@ -249,9 +254,11 @@ def verify_publication(repository, remote, temporary_root, environment, module_b first_line = build_info.splitlines()[0] if selected_go not in first_line: raise RuntimeError(f"tool was built with {first_line!r}, expected {selected_go}") - expected_module = f"\tmod\t{RELEASEKIT_MODULE}\tv0.2.0\t" + expected_module = f"\tmod\t{RELEASEKIT_MODULE}\t{selected_releasekit}\t" if expected_module not in build_info: - raise RuntimeError("bootstrap executable does not record ReleaseKit v0.2.0") + raise RuntimeError( + f"bootstrap executable does not record selected ReleaseKit {selected_releasekit}" + ) candidate = repo_git(repository, environment, "rev-parse", "HEAD").strip() if repo_git(repository, environment, "rev-parse", "main").strip() != candidate: