Skip to content

docs: add v2 to v3 migration guide, ADRs, and domain glossary - #62

Merged
jasoet merged 1 commit into
nextfrom
docs/v3-migration-guide
Aug 17, 2026
Merged

docs: add v2 to v3 migration guide, ADRs, and domain glossary#62
jasoet merged 1 commit into
nextfrom
docs/v3-migration-guide

Conversation

@jasoet

@jasoet jasoet commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Why

v3 carries 22 commits with BREAKING CHANGE footers 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.Close removed entirely (commit cadc208's footer omits it)
  • rest.Client.HandleResponse unexported (6cc5af1)
  • grpc.MountGatewayOnEcho now strips the base path; Start* return nil instead of http.ErrServerClosed; GetGRPCServer() returns nil after Stop
  • server signal handling removed — consumers silently lose graceful termination, and nothing fails to compile to tell them

MIGRATION.md states 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:

backlog said actually shipped
temporal.NewClient accepts/returns a ctx NewClient(opts ...Option) (client.Client, error)
argo operations keep a namespace param SubmitWorkflow(ctx, client, wf) — no namespace

Both 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:

ADR Decision
0001 Freeze v2, ship v3 as one big bang (module-path versioning is what makes it cheap)
0002 OTel config is injected, never serialized — a half-deserialized provider set is worse than none
0003 Constructor naming: New for the primary type, New<Thing> when there are several
0004 Selective de-leak — utility packages hide their dependency, SDK-integration packages don't
0005 grpc restarts, server doesn't; and the http.server.* attribute-set divergence

ADR 0003 resolves the "constructor naming split" backlog item as not a defectretry.New returns a Config because a Config is retry's primary artifact. The rule already holds; renaming would have added breaks that make call sites worse.

CONTEXT.md pins the vocabulary those depend on (utility vs SDK-integration package, selective de-leak, escape hatch, convention contract, docs-of-record).

Also

  • README.md claimed v2/v3 arrive "with minimal API changes". Corrected.
  • INSTRUCTION.md gains MIGRATION.md, CONTEXT.md and docs/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.

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".
@jasoet
jasoet merged commit 8d4a6ec into next Aug 17, 2026
1 check passed
@jasoet
jasoet deleted the docs/v3-migration-guide branch August 17, 2026 11:16
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.

1 participant