Skip to content

revert: restore the goridge net/rpc server#114

Merged
rustatian merged 3 commits into
masterfrom
revert/connectrpc
Jul 15, 2026
Merged

revert: restore the goridge net/rpc server#114
rustatian merged 3 commits into
masterfrom
revert/connectrpc

Conversation

@rustatian

Copy link
Copy Markdown
Member

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).

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>
Copilot AI review requested due to automatic review settings July 14, 2026 20:09
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@rustatian, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 26 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5e728f6d-800a-4c21-923e-9fb23dbc8641

📥 Commits

Reviewing files that changed from the base of the PR and between c05b249 and 9744be6.

⛔ Files ignored due to path filters (2)
  • go.sum is excluded by !**/*.sum
  • tests/go.sum is excluded by !**/*.sum
📒 Files selected for processing (8)
  • config.go
  • go.mod
  • plugin.go
  • rpc.go
  • tests/go.mod
  • tests/plugin1.go
  • tests/plugin2.go
  • tests/rpc_test.go
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch revert/connectrpc

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 14, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 45.45455% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 59.80%. Comparing base (c05b249) to head (9744be6).

Files with missing lines Patch % Lines
plugin.go 50.00% 14 Missing and 4 partials ⚠️
rpc.go 0.00% 6 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/rpc server and RPC() any service registration.
  • Update test plugins to expose/call net/rpc services 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.

Comment thread plugin.go
Comment thread plugin.go
Comment thread plugin.go
Comment thread plugin.go
Comment thread tests/plugin2.go
Comment thread go.mod Outdated
Comment thread tests/go.mod Outdated
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>
@rustatian
rustatian merged commit cd0b9a3 into master Jul 15, 2026
7 of 9 checks passed
@rustatian
rustatian deleted the revert/connectrpc branch July 15, 2026 17:15
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