Skip to content

fix: regenerate stale python/ts clients + msrv/client/proto-drift CI gates#356

Merged
kacy merged 1 commit into
mainfrom
cleanup/client-regen-ci
Jul 3, 2026
Merged

fix: regenerate stale python/ts clients + msrv/client/proto-drift CI gates#356
kacy merged 1 commit into
mainfrom
cleanup/client-regen-ci

Conversation

@kacy

@kacy kacy commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Part 2 of a 5-PR cleanup series from a full-codebase audit.

What

  • Python + TS clients regenerated. Both were 17 RPCs behind the canonical proto (Sintercard, Hrandfield, Zmpop, bitmap ops, Expireat/Pexpireat, …) — fix(go): regenerate protobuf stubs for 17 new rpcs #337 only regenerated Go. Verified: all 130 RPCs now present in each client; TS builds clean (tsc); Python client tests pass (7/7) against the new stubs.
  • Portable Makefile: clients/ember-py used sed -i '', which only works with BSD sed — make proto-gen failed on Linux. Now uses sed -i.bak.
  • New CI jobs:
    • msrv (1.93)cargo check on the declared rust-version; previously the MSRV was never verified (all jobs track latest stable via RUSTUP_TOOLCHAIN).
    • python client — installs and runs the existing pytest suite, which was never wired into CI.
    • ts clientnpm ci && npm run build (the package has no tests yet; the build is the gate).
    • client proto driftscripts/check-client-drift.sh asserts every RPC in proto/ember/v1/ember.proto appears in each client's generated stubs and the TS vendored proto. Name-presence rather than byte-exact regeneration, so it's stable across protoc/plugin versions while catching exactly the drift class that happened. Confirmed it fails against the pre-regen stubs and passes now.

The python and ts clients were 17 rpcs behind proto/ember/v1/ember.proto
(only the go client was regenerated in #337). Regenerate both and add CI
so this class of drift can't recur:

- clients/ember-py: regenerate pb2/pb2_grpc (all 130 rpcs); make the
  Makefile's sed invocation portable (bare `sed -i ''` is macOS-only and
  fails on Linux)
- clients/ember-ts: regenerate src/generated types and the vendored
  proto copy (17 new request/response types)
- ci: new jobs — msrv check on the declared 1.93 toolchain (other jobs
  track latest stable), python client pytest, ts client build, and a
  proto-drift check (scripts/check-client-drift.sh) asserting every rpc
  in the canonical proto exists in each client's generated stubs

Claude-Session: https://claude.ai/code/session_017uab7k2MyLpWAQwFDNt4tw
@kacy kacy merged commit e36d5d0 into main Jul 3, 2026
11 of 12 checks passed
@kacy kacy deleted the cleanup/client-regen-ci branch July 3, 2026 16:24
kacy added a commit that referenced this pull request Jul 3, 2026
…tes (#356)

The python and ts clients were 17 rpcs behind proto/ember/v1/ember.proto
(only the go client was regenerated in #337). Regenerate both and add CI
so this class of drift can't recur:

- clients/ember-py: regenerate pb2/pb2_grpc (all 130 rpcs); make the
  Makefile's sed invocation portable (bare `sed -i ''` is macOS-only and
  fails on Linux)
- clients/ember-ts: regenerate src/generated types and the vendored
  proto copy (17 new request/response types)
- ci: new jobs — msrv check on the declared 1.93 toolchain (other jobs
  track latest stable), python client pytest, ts client build, and a
  proto-drift check (scripts/check-client-drift.sh) asserting every rpc
  in the canonical proto exists in each client's generated stubs
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