docs(guides): the migration guide #291 owed, and the index row #302 never got - #310
Merged
Merged
Conversation
…ever got ADR-0028 obliges a minor that carries a breaking change to ship a migration guide. `[Unreleased]` holds six BREAKING entries and #291's two had none. The guide covers both halves of that change, because both move something a consumer can observe and neither changes a signature: - `AriClient.State` after a failed first connect. It stayed `Connecting` for the life of the instance; it now leaves a terminal state chosen by who ended the attempt — `Faulted` for a refused upgrade or nothing listening, `Disconnected` when the caller cancelled. The guide names the workarounds this makes deletable (a poll waiting for the state to settle), states that the exception is unchanged, and records that 2.5.3's entry told consumers to watch `State` and named a value that is no longer what they will see. `AriHealthCheck`'s status is unchanged and only its message text moves, which matters to anyone asserting on the string. - `AriOutboundListener` surviving an accept failure. The old loop ended silently and for good while `IsRunning` still reported true, so a watchdog that restarted the listener could not work — `StartAsync` refused while the flag was set. That watchdog can go, and a persistent failure is now noisy where it used to be invisible. Also here, found while writing the index row: `audiosocket-wire-format-migration.md` has existed since #302 and was never listed in `docs/guides/README.md`. Its row is added, so all three migration guides are now reachable from the index. The guide restates the accept backoff bounds and their per-minute consequence, which are quantitative figures in a document inside the claim registry's scope, so it carries its registry row in this commit (ADR-0042 D1).
Merged
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.
ADR-0028 obliges a minor that carries a breaking change to ship a migration guide.
[Unreleased]holds six
BREAKINGentries and #291's two had none — the last documentation blocker on the2.6.0 cut.
The guide
Both halves of #291 move something a consumer can observe, and neither changes a signature, so
nothing stops compiling. That is exactly the case a migration guide is for.
AriClient.Stateafter a failed first connectStatebeforeStatenow401,503), nothing listening, name does not resolveConnectingFaultedConnectingDisconnectedWhat the guide tells a consumer to delete: a poll or timeout waiting for
Stateto leaveConnecting. It never left before; it leaves immediately now.What it warns about:
Stateor thehealth check, and named
Connectingas what a401leaves behind. The throw is still exactlythat; the state it named is not.
AriHealthCheckkeeps its status and moves its message.Connecting,FaultedandDisconnectedall fall to theUnhealthyarm, so only the interpolated string changes — whichmatters to anyone asserting on it.
finallythat catches nothing and runs before the exception is observable, so a caller's own
catchalreadyreads the terminal value.
AriOutboundListenersurviving an accept failureThe old loop ended silently and for good on one transient accept failure, while
IsRunningstillreported
trueover a socket still inLISTEN. A watchdog that restarted the listener could notwork —
StartAsyncrefused while the flag was set. That watchdog can go, and a persistent failure isnow noisy where it used to be invisible: one Error line per failed accept, at most twelve a minute
once the backoff reaches its 5 s cap.
Also here
audiosocket-wire-format-migration.mdhas existed since #302 and was never listed indocs/guides/README.md. Its row is added, so all three migration guides are now reachable from theindex — found while adding the row for the new one.
The registry row this earns
The guide restates the accept backoff bounds and their per-minute consequence. Those are quantitative
figures in a document inside the claim registry's scope, so the change carries its row (ADR-0042 D1),
classified
GAPwith the note that the bounds areinternalconstants and the per-minute figure isarithmetic over them.
Not written, and why
#284and#286are alsoFixed — BREAKINGand get no guide: neither leaves a consumer anything todo. A guide exists for a break that requires action, and manufacturing one for a break that requires
none makes the next reader trust the set less.
Verification
Tests/Verbara.Sdk.OpenTelemetry.Tests— 31 passed (the claim-guard suites)Tests/Verbara.Sdk.Governance.Tests— 129 passedopenspec validate --all --strict— 15 passed, 0 failed🤖 Generated with Claude Code