Skip to content

Reconcile version identity and make the untagged state honest - #52

Merged
aaylward merged 1 commit into
mainfrom
claude/issue-27-fix-42z1s0
Jul 8, 2026
Merged

aaylward merged 1 commit into
mainfrom
claude/issue-27-fix-42z1s0

Conversation

@aaylward

@aaylward aaylward commented Jul 8, 2026

Copy link
Copy Markdown
Collaborator

Closes #44 (top-tier from the whole-project review). 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 don't exist. Per the decision to stay untagged, this reconciles the identity and makes the docs honest rather than cutting a release.

Changes

  • One product version, consistently pre-release. smithy::Version() (runtime/src/core/version.cc, the single source of truth) and ClientConfig::user_agent both report 0.1.0-dev. A consumer now sees one coherent, honestly-unreleased version.
  • bzlmod module version stays 0.0.0 in MODULE.bazel — the established unpublished-module convention, which git_override/local_path_override ignore anyway — now with a comment explaining it is a distinct identifier from the product version (not an accidental mismatch). This is why the quickstart's bazel_dep(version = "0.0.0") stays valid and unchanged.
  • CHANGELOG [0.1.0] - 2026-07-07[Unreleased]; the broken releases/tag/v0.1.0 link now 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 (there's no tag to pin), and what to change when 0.1.0 is actually cut.
  • quickstart.md: the unfillable commit = "<pin a commit>" becomes a real 40-char SHA placeholder with a pointer to copy one from commits/main, and notes the version is ignored under an override.
  • README heading: "What works today (v0.1.0)" → "(0.1.0-dev, untagged)".

No git tag is cut.

Testing

  • version_test updated and passing on 0.1.0-dev; bazel test //runtime/... //examples/... (minus Beast targets per docs): 38/38 pass.
  • Rebuilt the out-of-tree examples/bazel-consumer module against the edited MODULE.bazel — configures and builds cleanly (the module-version comment is inert; the consumer overrides the source).
  • Docs/markdown otherwise; no generated-code or generator changes, so goldens are untouched.

Checklist

  • Tests added/updated for the change (version_test)
  • bazel test //... and (cd codegen && gradle build spotlessCheck) pass locally (Beast/benchmark excluded per docs)
  • Formatting clean
  • Architectural decisions recorded as an ADR (not applicable — version/doc reconciliation)

🤖 Generated with Claude Code

https://claude.ai/code/session_01SyQAo21Pv6GYhHrkbQj8xQ


Generated by Claude Code

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
@aaylward
aaylward merged commit e6af100 into main Jul 8, 2026
12 checks passed
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.

v0.1.0 is unconsumable: missing release tag, placeholder git_override, version identity disagrees three ways

2 participants