Repository navigation
Conversation
meling
force-pushed
the
feature/424/generated-code-boundary
branch
from
November 1, 2026 21:55
209be92 to
52f4cb1
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The generated files require Gorums runtime v13, but the nested modules and workspace replacement still resolve v0.12.1, causing standalone benchkit and examples builds to fail their version checks and compile-time registrations.
3 open issues
12 files not reviewed
benchkit/benchmark/benchmark_gorums.pb.go: Generated filebenchkit/benchmark/gorums.pb.go: Generated filebenchkit/control_gorums.pb.go: Generated filebenchkit/gorums.pb.go: Generated filecmd/protoc-gen-gorums/dev/zorums_client_gorums.pb.go: Generated filecmd/protoc-gen-gorums/dev/zorums_multicast_gorums.pb.go: Generated filecmd/protoc-gen-gorums/dev/zorums_quorumcall_gorums.pb.go: Generated filecmd/protoc-gen-gorums/dev/zorums_remotecall_gorums.pb.go: Generated filecmd/protoc-gen-gorums/dev/zorums_server_gorums.pb.go: Generated filecmd/protoc-gen-gorums/dev/zorums_unicast_gorums.pb.go: Generated fileexamples/storage/proto/gorums.pb.go: Generated fileexamples/storage/proto/storage_gorums.pb.go: Generated file
What changed in this PR
This breaking API change routes streaming replies through a send func(proto.Message) callback, moves response-envelope construction into runtime/gorumsimpl, and updates generated code for runtime version 13.
Changes:
- Adds callback-based streaming dispatch to handlers and interceptors.
- Removes
ServerContext.SendMessageand the application-facinggorums.NewResponseMessage. - Regenerates fixtures, examples, benchmarks, documentation, and tests for the new API.
- Updates generator compatibility metadata to version 13.
Review notes include three critical dependency/version findings, two import-formatting nits, and one missing interceptor-plus-streaming integration test.
| File | Description |
|---|---|
tree_integration_test.go |
Updates tree handlers for the callback-based API. |
stream_dedup_test.go |
Migrates stream deduplication handlers and response construction. |
server.go |
Adds callback-based streaming dispatch and removes the exported send method. Nit: add interceptor-plus-streaming coverage confirming callback responses reach clients. |
server_test.go |
Updates server handlers and interceptor tests. |
server_internal_test.go |
Updates internal handler tests and response construction. |
runtime/gorumsimpl/version.go |
Raises generated-code compatibility to version 13. |
runtime/gorumsimpl/response.go |
Adds runtime response-envelope construction. |
message.go |
Makes response-envelope construction application-package private. |
message_test.go |
Tests the runtime response helper. |
internal/version/version.go |
Bumps the module version to 0.13.0. Critical: nested module requirements and workspace replacement still reference v0.12.1; update them and related sums for generated version 13. |
internal/tests/unresponsive/unresponsive_gorums.pb.go |
Regenerates unresponsive server bindings. |
internal/tests/unresponsive/gorums.pb.go |
Updates generated version metadata. |
internal/tests/tls/tls_gorums.pb.go |
Regenerates TLS server bindings. |
internal/tests/tls/peer_identity_test.go |
Updates TLS test handlers. |
internal/tests/tls/gorums.pb.go |
Updates generated version metadata. |
internal/tests/ordering/ordering_gorums.pb.go |
Regenerates ordering server bindings. |
internal/tests/ordering/gorums.pb.go |
Updates generated version metadata. |
internal/tests/oneway/oneway_gorums.pb.go |
Regenerates one-way server bindings. |
internal/tests/oneway/gorums.pb.go |
Updates generated version metadata. |
internal/tests/multiservice/multiservice_gorums.pb.go |
Regenerates multiservice server bindings. |
internal/tests/multiservice/gorums.pb.go |
Updates generated version metadata. |
internal/tests/metadata/metadata_gorums.pb.go |
Regenerates metadata server bindings. |
internal/tests/metadata/gorums.pb.go |
Updates generated version metadata. |
internal/tests/correctable/gorums.pb.go |
Updates generated version metadata. |
internal/tests/correctable/correctable_gorums.pb.go |
Regenerates correctable streaming handlers. |
internal/testprotos/testdata/nodeonly/nodeonly_gorums.pb.go.golden |
Updates node-only generated output expectations. |
internal/testprotos/testdata/clientnames/clientnames_gorums.pb.go.golden |
Updates client-name generated output expectations. |
internal/testprotos/testdata/calltypes/quorumcall/quorumcall_gorums.pb.go.golden |
Updates quorum-call generated output expectations. |
internal/testprotos/testdata/calltypes/multiservice/multiservice_gorums.pb.go.golden |
Updates multiservice generated output expectations. |
internal/testprotos/testdata/calltypes/multicast/multicast_gorums.pb.go.golden |
Updates multicast generated output expectations. |
internal/testprotos/testdata/calltypes/importmsgs/importmsgs_gorums.pb.go.golden |
Updates imported-message generated output expectations. |
internal/stream/message.go |
Adds response-envelope creation at the stream layer. |
gorumstest/servers.go |
Updates test server handlers and streaming helpers. Nit: run gofmt to correct import ordering. |
gorumstest/gorumstest.go |
Updates test server context setup. Nit: run gofmt to correct import ordering. |
examples/storage/proto/storage_gorums.pb.go |
Regenerates storage server bindings. Critical: examples/go.mod still requires v0.12.1; update the dependency and related workspace/checksum metadata for generated version 13. |
examples/storage/proto/gorums.pb.go |
Updates generated version metadata. |
examples/interceptors/server_interceptors.go |
Propagates the streaming callback through interceptors. |
doc/user-guide.md |
Documents the new interceptor signature and callback propagation. |
doc/dev-guide.md |
Documents callback-based dispatch and runtime response construction. |
cmd/protoc-gen-gorums/gengorums/template_server.go |
Generates callback-based handlers and runtime response construction. |
cmd/protoc-gen-gorums/gengorums/template_funcs.go |
Adds protobuf imports required by generated callbacks. |
cmd/protoc-gen-gorums/dev/zorums_unicast_gorums.pb.go |
Updates generated version metadata. |
cmd/protoc-gen-gorums/dev/zorums_server_gorums.pb.go |
Regenerates development server bindings. |
cmd/protoc-gen-gorums/dev/zorums_remotecall_gorums.pb.go |
Updates generated version metadata. |
cmd/protoc-gen-gorums/dev/zorums_quorumcall_gorums.pb.go |
Updates generated version metadata. |
cmd/protoc-gen-gorums/dev/zorums_multicast_gorums.pb.go |
Updates generated version metadata. |
cmd/protoc-gen-gorums/dev/zorums_client_gorums.pb.go |
Updates generated version metadata. |
call_test.go |
Updates one-way handler test registrations. |
call_async_test.go |
Propagates the callback through asynchronous handler tests. |
benchkit/gorums.pb.go |
Updates generated version metadata. |
benchkit/control_gorums.pb.go |
Regenerates benchmark control server bindings. Critical: benchkit/go.mod still requires v0.12.1; update the dependency and related workspace/checksum metadata for generated version 13. |
benchkit/benchmark/symmetric_test.go |
Updates benchmark handlers and response construction. |
benchkit/benchmark/gorums.pb.go |
Updates generated version metadata. |
benchkit/benchmark/benchmark_test.go |
Updates benchmark handlers and interceptors. |
benchkit/benchmark/benchmark_gorums.pb.go |
Regenerates benchmark server bindings. |
Review effort: Lite
Comment on lines
+19
to
+21
| _ = gorumsimpl.EnforceVersion(13 - gorumsimpl.MinVersion) | ||
| // Verify that the gorums runtime is sufficiently up-to-date. | ||
| _ = gorumsimpl.EnforceVersion(gorumsimpl.MaxVersion - 12) | ||
| _ = gorumsimpl.EnforceVersion(gorumsimpl.MaxVersion - 13) |
Comment on lines
+19
to
+21
| _ = gorumsimpl.EnforceVersion(13 - gorumsimpl.MinVersion) | ||
| // Verify that the gorums runtime is sufficiently up-to-date. | ||
| _ = gorumsimpl.EnforceVersion(gorumsimpl.MaxVersion - 12) | ||
| _ = gorumsimpl.EnforceVersion(gorumsimpl.MaxVersion - 13) |
Comment on lines
+13
to
+14
| Minor = 13 | ||
| Patch = 0 |
meling
force-pushed
the
feature/424/generated-code-boundary
branch
from
November 2, 2026 15:55
52f4cb1 to
1c00246
Compare
meling
force-pushed
the
feature/424/generated-code-boundary
branch
from
November 2, 2026 16:48
1c00246 to
69a0236
Compare
meling
force-pushed
the
feature/424/generated-code-boundary
branch
from
November 2, 2026 17:05
69a0236 to
dd272b0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #424.
Route streaming replies through a
send func(proto.Message)callback passed to every handler.Move response-envelope construction used by generated unary handlers to
runtime/gorumsimpl.Remove
ServerContext.SendMessageandgorums.NewResponseMessagefrom the application-facing package.Keep
Message,AsProto, andRegisterHandlerbecause interceptors and back-channel applications use them.This is a breaking API change: custom handlers and server interceptors need the new callback argument.
The generated-code minimum and generator version move to 13, so users must regenerate older Gorums output.
Validation:
go test ./...,go test -C benchkit ./...,go test -C examples ./...,make modernize, andmake goplscheckpass.