Skip to content

fix: unbreak the v1.2.0 release notes and tighten the fragment ceiling to 200 - #168

Merged
skyoo2003 merged 3 commits into
mainfrom
fix/v1-2-0-release-blockers
Sep 13, 2026
Merged

skyoo2003 merged 3 commits into
mainfrom
fix/v1-2-0-release-blockers

Conversation

@skyoo2003

@skyoo2003 skyoo2003 commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

Clears what stood between main and a v1.2.0 tag — six changelog fragments whose issue links render empty, which the release workflow rejects — then halves the fragment body ceiling to 200 characters and refits every unreleased fragment to it. Also corrects a protocol table in docs/coverage.md that miscounts EC2.

Related Issue

Refs #160, #161, #162, #163 — this corrects fragments and documentation those PRs added while still unreleased. No separate issue filed.

Changes

Release blocker — empty issue links

  • Six fragments wrote Issue: at the top level instead of under custom:, where .changie.yaml declares it. changie batch v1.2.0 rendered them as [#<no value>](.../issues/<no value>), and release.yml:234 rejects any entry not ending in issues/<positive int>)). The tag would have failed at notes validation, after the Go suite, the boto3 suite and the codegen drift check had all passed.
  • The pre-flight check in RELEASE.md does not catch this. grep -L 'Issue: "[0-9]' matches both the broken and the correct spelling, so the checklist passed on a tree that could not be tagged.

Fragment ceiling 400 → 200

docs/coverage.md protocol table

  • no in-tree model 12 → 11, unrecognised protocol 1 → 2. Counted against internal/generated/fidelity/manifest_gen.go: 11 entries carry ModelBacked: false, and 13 carry Protocol: "" — the two-service difference is ec2 (aws.protocols#ec2Query, per smithy-models/ec2.json) and partnercentralrevenuemeasurement (rpcv2Cbor). internal/codegen/parser.go:441-453 recognises neither.
  • Prose corrected in three places: "Only the second still stops it" was false once two services are blocked by the first; "exactly one service" was two; and a new paragraph separates what EC2 loses (the engine fallback — its tail stays unimplemented instead of auto-crud) from what a registered-only service loses (EC2 is served by a hand-written provider and is not in the registered-only five).

Test Plan

  • changie batch v1.2.0 --dry-run | grep -c '<no value>' → 0 (was 6); all nine entries render a live issue link
  • Every fragment body ≤ 200 chars (longest 199, was 484)
  • CGO_ENABLED=0 go test ./cmd/devcloud/ → ok
  • hugo --gc --minify && ./scripts/check-site-links.py → 904 internal links across 24 pages all resolve
  • Table rows sum to 431 both before and after, which is why the arithmetic never exposed the error — and why no test gates this table

Full pre-flight on this tree, for the record: codegen drift zero (regenerated to a temp dir and diff -rq against internal/generated), go test ./... green, make test-compat 1,527 passed / 2 skipped / 1 xfailed.

Checklist

  • Self-reviewed the code
  • Added/updated tests — N/A, but see Follow-up
  • Lint/format passes (golangci-lint run) — pre-commit hooks passed on all three commits
  • Updated documentation (if applicable)
  • Added a Changie changelog fragment for user-facing changes — N/A: every fix here corrects unreleased work (feat: register the 218 scaffolded services and stop their routes fabricating successes #162 introduced the wrong table values, and the fragments have never been batched), so the v1.2.0 notes already describe the correct end state

Follow-up

docs/coverage.md states "Every figure on this page is asserted against the binary by go test ./cmd/devcloud/", but the protocol table is not among them — coverage_test.go contains no reference to it. That is how these two rows drifted. Gating the table's protocol distribution against the manifest is worth a separate PR.

Six fragments wrote `Issue:` at the top level instead of under `custom:`,
where `.changie.yaml` declares it. `changie batch` rendered them as
`[#<no value>](.../issues/<no value>)`, which release.yml:234 rejects — the
tag would have failed at the notes-validation step, after the guardrails
had already passed.

The pre-flight grep in RELEASE.md (`grep -L 'Issue: "[0-9]'`) matches both
spellings, so it did not catch this.

Also trims the #163 fragment from 484 to 337 characters, under the 400-char
ceiling `.changie.yaml` sets and `changie new` enforces on fragments it
writes itself. The CI-runner timing detail it dropped is in the issue.
… no model

The protocol table said 12 services have no in-tree Smithy model and exactly
one speaks a protocol the parser cannot read. Counted against
internal/generated/fidelity/manifest_gen.go, it is 11 and two: `ec2` is
model-backed but speaks `aws.protocols#ec2Query`, which parser.go:441-453
does not recognise alongside the five it does.

That put the page at odds with fidelity-manifest.md:106 and
compatibility-policy.md:78, which both say 11, and left a core service's
missing engine coverage unexplained. Rows now sum to 431 either way, so the
arithmetic did not expose it, and no test gates this table.

Adds a paragraph separating what EC2 loses from what a registered-only
service loses: EC2 is served by a hand-written provider and is not in the
registered-only five, but its model-declared tail stays `unimplemented`
rather than falling back to `auto-crud`.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 13, 2026
…e fragments

The 400-character ceiling was wide enough to hold two full sentences plus a
subordinate clause, so it never pushed against the one-sentence rule it was
meant to back — the #163 fragment reached 484 and still read as being in
the spirit of the limit. At 200 the ceiling and the rule push the same way.

Refits the eight unreleased fragments that were over. What came out is
detail the linked issue already carries: the eight service names in #161,
the CI-runner timing in #163, the DynamoDB and Lambda operation counts in
#167.

Also trims RELEASE.md's "right length" example, which was 203 characters
and would have failed the limit the paragraph above it states, and labels
both examples with their length.
@skyoo2003 skyoo2003 changed the title fix: unbreak the issue links the v1.2.0 tag would have rejected fix: unbreak the v1.2.0 release notes and tighten the fragment ceiling to 200 Sep 13, 2026
@skyoo2003
skyoo2003 merged commit 6a47638 into main Sep 13, 2026
9 checks passed
@skyoo2003
skyoo2003 deleted the fix/v1-2-0-release-blockers branch September 13, 2026 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant