Skip to content

fix(proto): bump to 0.2.2 to unblock the stalled release#302

Merged
SebastianThiebaud merged 2 commits into
mainfrom
fix/proto-publish-leader-hint-api
May 24, 2026
Merged

fix(proto): bump to 0.2.2 to unblock the stalled release#302
SebastianThiebaud merged 2 commits into
mainfrom
fix/proto-publish-leader-hint-api

Conversation

@SebastianThiebaud
Copy link
Copy Markdown
Contributor

Why

Release run 26369479219 failed at cargo publish --verify for tsoracle-server 0.2.3:

error[E0432]: unresolved imports `tsoracle_proto::v1::LEADER_HINT_TRAILER_KEY`,
              `tsoracle_proto::v1::LeaderHintLookup`
error[E0425]: cannot find function `decode_leader_hint` in module `tsoracle_proto::v1`
error: failed to verify package tarball

Root cause: #295 lifted LEADER_HINT_TRAILER_KEY, LeaderHintLookup, and decode_leader_hint into tsoracle_proto::v1 under a refactor: prefix. Crates version independently and release_commits = "^(feat|fix|perf)", so refactor: did not trigger a release — proto stayed at 0.2.1, and the published 0.2.1 (from release #233) predates and lacks those symbols. tsoracle-server 0.2.3 already uses them, so the verify build — which strips the path dep and resolves tsoracle-proto ^0.2.1 from the registry — got the stale crate and failed to compile.

What

  • tsoracle-proto0.2.2 (patch: additive, non-breaking). All consumers pin ^0.2.1, so they resolve to 0.2.2 with no cascade. Once this lands on main, the release job publishes proto 0.2.2 ahead of the stuck dependents (server 0.2.3, client 0.2.2, …), which then verify against a proto that has the symbols.
  • CONTRIBUTING.md — document the trap (library-crate API additions must be feat:/fix:, never refactor:, because the API is visible to dependent crates even when the v1 wire contract is unchanged), correct the stale "versions move in lockstep" claim (independent since chore(release): version crates independently to fix release-plz resolution #223), and spell out the release_commits prefix filter.

Notes

  • The release job publishes on a version-vs-registry diff, so the bump republishes regardless of this PR's squash prefix.
  • The release job does not regenerate changelogs, so tsoracle-proto's CHANGELOG.md will have a gap at 0.2.2 — left as-is rather than hand-editing it.
  • Follow-up worth considering: enable semver_check = true so the Release PR flags "dependent uses a symbol absent from the published dep."

The published tsoracle-proto 0.2.1 (from release #233) predates the
leader-hint lift in #295, which added LEADER_HINT_TRAILER_KEY,
LeaderHintLookup, and decode_leader_hint to v1 under a refactor: prefix.
Because crates version independently and release_commits gates releases
to feat/fix/perf, that change never bumped proto's version — so the
crates.io 0.2.1 lacks those symbols.

tsoracle-server 0.2.3 already uses them, so cargo publish --verify built
the server tarball with the path dep stripped, resolved
tsoracle-proto ^0.2.1 to the stale registry 0.2.1, and failed to compile
(E0432/E0425), aborting the release.

Bumping to 0.2.2 (patch: additive, non-breaking; all consumers pin
^0.2.1 so they resolve to it with no cascade) gets a proto containing
the symbols published ahead of the dependent crates.
…efactor

Document the release-mechanics trap behind the proto 0.2.2 fix: adding
public API to a library crate is user-visible to dependent crates even
when the gRPC wire contract (the v1 proto package) is unchanged, so it
must use feat:/fix: rather than refactor:, which does not trigger a
release. Also correct the stale "version.workspace = true / lockstep"
claim — crates have versioned independently since #223 — and spell out
the release_commits prefix filter.
@coveralls
Copy link
Copy Markdown

Coverage Report for CI Build 26370056716

Coverage remained the same at 94.913%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 11873
Covered Lines: 11269
Line Coverage: 94.91%
Coverage Strength: 453420.47 hits per line

💛 - Coveralls

@SebastianThiebaud SebastianThiebaud merged commit 413ce18 into main May 24, 2026
22 checks passed
@SebastianThiebaud SebastianThiebaud deleted the fix/proto-publish-leader-hint-api branch May 24, 2026 19:10
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.

2 participants