Skip to content

Commit 647e433

Browse files
docs: add Release & rollout section per review feedback
1 parent 34388cc commit 647e433

1 file changed

Lines changed: 30 additions & 4 deletions

File tree

docs/deprecating-tools.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ descriptions, input/output schemas, annotations, and `_meta` — as a versioned
1111
contract at submission time. Removing or renaming a tool is a breaking change for
1212
all installed clients that depend on that tool string.
1313

14-
A deploying the server immediately removes a tool from the live server, but the
14+
Deploying the server immediately removes a tool from the live server, but the
1515
published contract (the snapshot submitted to the app store) still lists it. Clients
1616
using the published version see a mismatch; the tool disappears without warning.
1717
See `CONTRIBUTING.md` (§ Published-app contract) and
@@ -85,7 +85,26 @@ callable. Keep all of the following intact:
8585
- [ ] `task docs:generate`
8686
- [ ] `task contract:generate` — regenerates `tests/unit/contract/contract_snapshot.json`; commit the result
8787
- [ ] `task check` + `task test:unit`
88-
- [ ] Submit a new app version after merge (the snapshot changed)
88+
- [ ] Release and roll out — merging this PR doesn't update the published apps
89+
on its own (see [Release & rollout](#release--rollout))
90+
91+
## Release & rollout
92+
93+
A merged dbt-mcp PR does **not** reach the published apps on its own — merging
94+
is not releasing, and releasing is not deploying. The same rollout applies to
95+
both the deprecate and the remove phases:
96+
97+
1. **Merge the dbt-mcp PR** (code + contract snapshot + changelog entry).
98+
2. **Cut a dbt-mcp release.** See `CONTRIBUTING.md` (§ Release). A deprecation
99+
is typically a minor bump; a removal is a major bump.
100+
3. **Roll the new release into the hosted MCP service and deploy it.** This is
101+
the step that actually changes the tool surface the published apps talk to.
102+
A major bump (a removal) requires updating the pinned dbt-mcp version in the
103+
hosted service, not just a routine dependency refresh.
104+
4. **Resubmit the app version in each store (OpenAI and Claude), after step 3.**
105+
Each store is a separate submission, and each captures the live server's
106+
tool list at submission time — submitting before the hosted service runs
107+
the new release captures the old surface.
89108

90109
## Monitoring usage before removal
91110

@@ -97,7 +116,9 @@ Proxied tools are filtered out before emission — only tools directly served by
97116
repo are tracked.
98117

99118
Query `ToolCalled` events filtered to the deprecated `tool_name` over a trailing
100-
30-day window. The bar for proceeding to removal is approximately zero calls.
119+
30-day window. The bar for proceeding to removal is approximately zero calls —
120+
measured against the *deployed* hosted service, not just the merged PR (see
121+
[Release & rollout](#release--rollout)).
101122

102123
## Removing a tool (Phase B)
103124

@@ -117,4 +138,9 @@ Once usage is ~0, remove the tool in a dedicated PR:
117138
8. `task docs:generate`
118139
9. `task contract:generate` — commit the updated snapshot
119140
10. `task check` + `task test:unit`
120-
11. Submit a new app version after merge.
141+
11. Release and roll out (see [Release & rollout](#release--rollout)).
142+
143+
The tool leaves the live server only once the hosted service deploys this
144+
removal, and the published contract still lists it until each store approves
145+
the new app version — so confirm usage is ~0 against the deployed service
146+
before that deploy, not merely before this PR merges.

0 commit comments

Comments
 (0)