Reconcile version identity and make the untagged state honest - #52
Merged
Merged
Conversation
The product version disagreed three ways — smithy::Version() said "0.1.0", the client User-Agent said "0.0.0-dev", MODULE.bazel said "0.0.0" — and the CHANGELOG/versioning docs advertised a v0.1.0 tag and release that do not exist (issue #44). Staying untagged and reconciling: - smithy::Version() and ClientConfig::user_agent both report "0.1.0-dev" (version.cc is the single source of truth; the User-Agent mirrors it), so a consumer sees one consistent, honestly pre-release version. - MODULE.bazel keeps the bzlmod module version "0.0.0" (the unpublished convention; overrides ignore it) with a comment explaining it is a distinct identifier from the product version. - CHANGELOG: the [0.1.0] - 2026-07-07 section becomes [Unreleased] and the broken releases/tag/v0.1.0 link points at the commit history; the intro states the work is developed on main and not yet tagged. - versioning.md gains a "Current state: pre-release, untagged" section explaining the two version identifiers and how to pin a commit; the quickstart's git_override placeholder is replaced with a real SHA placeholder plus where to copy one, and notes the version is ignored under an override; README says "0.1.0-dev, untagged". No git tag is cut (per the decision to stay untagged). version_test asserts the new "0.1.0-dev". Closes #44 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SyQAo21Pv6GYhHrkbQj8xQ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #44 (top-tier from the whole-project review). The product version disagreed three ways —
smithy::Version()said0.1.0, the clientUser-Agentsaid0.0.0-dev,MODULE.bazelsaid0.0.0— and the CHANGELOG / versioning docs advertised av0.1.0tag and release that don't exist. Per the decision to stay untagged, this reconciles the identity and makes the docs honest rather than cutting a release.Changes
smithy::Version()(runtime/src/core/version.cc, the single source of truth) andClientConfig::user_agentboth report0.1.0-dev. A consumer now sees one coherent, honestly-unreleased version.0.0.0inMODULE.bazel— the established unpublished-module convention, whichgit_override/local_path_overrideignore anyway — now with a comment explaining it is a distinct identifier from the product version (not an accidental mismatch). This is why the quickstart'sbazel_dep(version = "0.0.0")stays valid and unchanged.[0.1.0] - 2026-07-07→[Unreleased]; the brokenreleases/tag/v0.1.0link now points at the commit history; the intro states the work is developed onmainand not yet tagged.commit = "<pin a commit>"becomes a real 40-char SHA placeholder with a pointer to copy one fromcommits/main, and notes theversionis ignored under an override.No git tag is cut.
Testing
version_testupdated and passing on0.1.0-dev;bazel test //runtime/... //examples/...(minus Beast targets per docs): 38/38 pass.examples/bazel-consumermodule against the editedMODULE.bazel— configures and builds cleanly (the module-version comment is inert; the consumer overrides the source).Checklist
bazel test //...and(cd codegen && gradle build spotlessCheck)pass locally (Beast/benchmark excluded per docs)🤖 Generated with Claude Code
https://claude.ai/code/session_01SyQAo21Pv6GYhHrkbQj8xQ
Generated by Claude Code