revert: restore the goridge net/rpc server#114
Conversation
Serve plugin RPC over net/rpc with the goridge codec again; the RPCer contract returns to RPC() any. Drops the h2c server, grpcreflect, TLS and request_timeout that arrived with the Connect-RPC migration. Keeps the parseDSN validation improvement. Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
|
Warning Review limit reached
Next review available in: 26 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (8)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #114 +/- ##
==========================================
- Coverage 63.94% 59.80% -4.15%
==========================================
Files 3 3
Lines 147 102 -45
==========================================
- Hits 94 61 -33
+ Misses 36 32 -4
+ Partials 17 9 -8 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR reverts the RPC plugin implementation back to serving plugin RPC over net/rpc using the Goridge codec (instead of Connect-RPC over HTTP/2/h2c), restoring the RPCer contract to return RPC() any and removing the Connect-RPC reflection/TLS/request-timeout surface. Tests and module dependencies are updated accordingly, including pinning Goridge to a branch that restores pkg/rpc.
Changes:
- Replace Connect-RPC HTTP server/handlers with a Goridge-backed
net/rpcserver andRPC() anyservice registration. - Update test plugins to expose/call
net/rpcservices and remove the Connect-RPC reflection test. - Update module dependencies (drop Connect-RPC + grpc deps, add Goridge v4 pseudo-version) and adjust toolchain pins.
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
plugin.go |
Replaces HTTP/Connect-RPC serving with an accept loop that serves Goridge net/rpc codecs; restores RPCer.RPC() any and adds Register. |
rpc.go |
Replaces Connect unary handlers with net/rpc-style Config/Version methods on an API receiver. |
config.go |
Removes request timeout and TLS config/validation, leaving DSN parsing validation and listener/dialer helpers. |
tests/rpc_test.go |
Removes reflection test and updates goroutine/waitgroup usage in init/disabled tests. |
tests/plugin1.go |
Changes Plugin1 to expose a net/rpc service object via RPC() any with an exported method set. |
tests/plugin2.go |
Changes Plugin2 to act as a net/rpc client using Goridge client codec to call Plugin1. |
go.mod |
Drops Connect-RPC requirements, adds Goridge v4 requirement, and adjusts toolchain pin. |
go.sum |
Updates dependency checksums to match the switch away from Connect-RPC and toward Goridge. |
tests/go.mod |
Mirrors dependency/toolchain changes for the tests module. |
tests/go.sum |
Updates dependency checksums for the tests module. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Reverting the RPC transport should not carry a gratuitous toolchain patch downgrade; keep it aligned with master (go1.26.4). Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
Serve may return early (listener creation or Register failure), or Stop may run before Serve assigned the listener (e.g. another plugin's Serve failed during startup). Calling Close on the nil listener panicked; guard it and treat the plugin as already stopped. Signed-off-by: Valery Piashchynski <piashchynski.valery@gmail.com>
Serves plugin RPC over net/rpc with the goridge codec again; the RPCer contract returns to RPC() any. Drops the h2c server, grpcreflect, TLS and request_timeout that arrived with Connect-RPC, keeps the parseDSN validation improvement. Pins goridge to the branch restoring pkg/rpc (roadrunner-server/goridge#207).