Skip to content

feat(client/rpc): auto-generate RPC GO client#11210

Draft
lidel wants to merge 1 commit intomasterfrom
feat/gen-rpc-client
Draft

feat(client/rpc): auto-generate RPC GO client#11210
lidel wants to merge 1 commit intomasterfrom
feat/gen-rpc-client

Conversation

@lidel
Copy link
Member

@lidel lidel commented Feb 25, 2026

Warning

not ready yet, early exploration of alternative to manually maintained client/rpc, as noted in #11069 (comment)

add a code generator that walks the kubo command tree and produces typed Go methods on *HttpApi for every HTTP-accessible command. adding a new kubo command now requires zero manual client work.

  • tools/gen-rpc-client/: generator tool (walk, reflect, generate, templates, smoke)
  • client/rpc/gen_*.go: generated files
  • client/rpc/gen_smoke_test.go: generated smoke tests
  • core/commands/cmdutils/: ResponseKind annotation for streaming commands
  • core/commands/*.go: annotate ~20 streaming commands with ResponseKind
  • client/rpc/*.go: deprecation comments on old CoreAPI adapter types
  • Rules.mk: make rpc_client and make rpc_client_check targets
  • .github/workflows/golang-analysis.yml: CI check for stale generated code
  • docs/changelogs/v0.41.md: changelog entry

…finitions

add a code generator that walks the kubo command tree and produces
typed Go methods on `*HttpApi` for every HTTP-accessible command.
adding a new kubo command now requires zero manual client work.

- tools/gen-rpc-client/: generator tool (walk, reflect, generate, templates, smoke)
- client/rpc/gen_*.go: 145 generated methods across 35 files
- client/rpc/gen_smoke_test.go: generated smoke tests (93 exercised, 52 skipped)
- core/commands/cmdutils/: ResponseKind annotation for streaming commands
- core/commands/*.go: annotate ~20 streaming commands with ResponseKind
- client/rpc/*.go: deprecation comments on old CoreAPI adapter types
- Rules.mk: `make rpc_client` and `make rpc_client_check` targets
- .github/workflows/golang-analysis.yml: CI check for stale generated code
- docs/changelogs/v0.41.md: changelog entry
@lidel lidel added the status/blocked Unable to be worked further until needs are met label Feb 25, 2026
@lidel lidel self-assigned this Feb 25, 2026
@lidel lidel mentioned this pull request Mar 6, 2026
22 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status/blocked Unable to be worked further until needs are met

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant