Skip to content

Prepare connectrpc 0.3.1 release#36

Merged
iainmcgin merged 1 commit intomainfrom
iain/release-0.3.1
Apr 2, 2026
Merged

Prepare connectrpc 0.3.1 release#36
iainmcgin merged 1 commit intomainfrom
iain/release-0.3.1

Conversation

@iainmcgin
Copy link
Copy Markdown
Collaborator

Summary

Lockstep bump of all three crates to 0.3.1: connectrpc, connectrpc-codegen, connectrpc-build.

What changed this cycle

Only connectrpc-codegen and connectrpc-build have user-facing changes — the emit_register_fn plumbing in #35 (ConnectRPC's Options / Config now expose buffa's emit_register_fn knob, with a matching no_register_fn plugin parameter). The connectrpc runtime is unchanged.

Why lockstep on a two-of-three patch

The first patch since the lockstep v0.3.0 release surfaced the "independent vs lockstep on patches" question that's been open since v0.2.1 (tracked on #10). Going lockstep again here for two reasons:

  1. Tag-every-release ergonomics. Independent versioning leaves the connectrpc runtime at 0.3.0 while codegen and build jump to 0.3.1. Tagging v0.3.1 then ships a runtime binary that's bit-identical to v0.3.0's — confusing in the release listing. Lockstep keeps every tag's binaries reflecting the tagged version.
  2. Implicit codegen → runtime coupling. connectrpc-codegen emits source that calls into the connectrpc runtime crate. There's no [dependencies] declaration that captures this — Cargo's resolver can't enforce "codegen X needs runtime ≥Y". Lockstep makes the user-facing story trivially correct ("use 0.3.x for all three"). The risk is zero on this particular release (no new runtime API surface), but the policy choice is forward-looking.

The trade-off is one zero-diff publish (connectrpc@0.3.1 is index cruft on crates.io). That's a small price for the simpler mental model.

When we adopt sampo for release management (mentioned by a contributor — supports a "fixed groups" config that gives exactly this lockstep property automatically), this stops being a per-release decision. I'll capture the lockstep choice in #10's runbook when we get to it.

Files changed

The path-dep constraint (connectrpc-buildconnectrpc-codegen) already uses caret "0.3", so no change required there. README dependency snippets are also caret "0.3", unchanged.

Test Plan

cargo build --workspace clean with the bumped versions. Tests, clippy, and fmt all green from #35; this PR is metadata-only on top of that.

Lockstep bump of all three crates to 0.3.1: connectrpc, connectrpc-codegen,
connectrpc-build. Only connectrpc-codegen and connectrpc-build have
user-facing changes this cycle (emit_register_fn plumbing in #35), but
the runtime crate is bumped along with them so the user-facing version
story stays simple — "use 0.3.1 everywhere".

Path-dep version constraint (build → codegen) already uses caret "0.3",
so no change required there. README dependency snippets are also caret
"0.3", unchanged.

CHANGELOG gains a 0.3.1 section with the emit_register_fn entry.
@iainmcgin iainmcgin marked this pull request as ready for review April 2, 2026 16:30
@iainmcgin iainmcgin merged commit 30132af into main Apr 2, 2026
10 checks passed
@github-actions github-actions bot locked and limited conversation to collaborators Apr 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants