docs: add v2 to v3 migration guide, ADRs, and domain glossary - #62
Merged
Conversation
v3 carries 22 commits with BREAKING CHANGE footers and had no consumer-facing migration document. Worse, several breaks shipped in fix:-typed commits without footers, so semantic-release will never surface them: temporal's WorkflowManager.Close removal, rest's HandleResponse unexport, grpc's gateway base-path stripping and nil-on-clean-shutdown returns, and server's removal of signal handling. MIGRATION.md states those explicitly. Every signature in the guide was verified against the code rather than against the audit backlog's notes; two backlog items described a planned API that did not ship (temporal.NewClient taking a ctx, argo operations keeping a namespace parameter) and are documented as built. Record the five decisions a reader would otherwise have to reverse-engineer: the v2 freeze and big-bang v3, OTel config being injected and never serialized, the constructor naming rule, the selective de-leak split between utility and SDK-integration packages, and the deliberate lifecycle divergence between server and grpc. CONTEXT.md pins the vocabulary those rely on. Also correct the README's claim that v2/v3 arrive "with minimal API changes".
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.
Why
v3 carries 22 commits with
BREAKING CHANGEfooters and had no consumer-facing migration document — the single largest gap blocking the v3.0.0 release.Worse, several breaks shipped in
fix:-typed commits without footers, so semantic-release will never surface them:temporal.WorkflowManager.Closeremoved entirely (commitcadc208's footer omits it)rest.Client.HandleResponseunexported (6cc5af1)grpc.MountGatewayOnEchonow strips the base path;Start*returnnilinstead ofhttp.ErrServerClosed;GetGRPCServer()returns nil afterStopserversignal handling removed — consumers silently lose graceful termination, and nothing fails to compile to tell themMIGRATION.mdstates each of these explicitly.Accuracy
Every signature in the guide was verified against the code, not against the audit backlog's notes. That caught two places where the backlog described a planned API that did not ship:
temporal.NewClientaccepts/returns a ctxNewClient(opts ...Option) (client.Client, error)argooperations keep anamespaceparamSubmitWorkflow(ctx, client, wf)— no namespaceBoth are documented as built. All 14 packages covered, plus a closing section on telemetry changes that need no code edit but will move dashboards.
ADRs
Five decisions a future reader would otherwise have to reverse-engineer:
Newfor the primary type,New<Thing>when there are severalgrpcrestarts,serverdoesn't; and thehttp.server.*attribute-set divergenceADR 0003 resolves the "constructor naming split" backlog item as not a defect —
retry.Newreturns aConfigbecause aConfigis retry's primary artifact. The rule already holds; renaming would have added breaks that make call sites worse.CONTEXT.mdpins the vocabulary those depend on (utility vs SDK-integration package, selective de-leak, escape hatch, convention contract, docs-of-record).Also
README.mdclaimed v2/v3 arrive "with minimal API changes". Corrected.INSTRUCTION.mdgainsMIGRATION.md,CONTEXT.mdanddocs/adr/in Key Paths, plus a note to update the guide as breaks land rather than at release time.All relative links in the new docs verified to resolve.