[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support#41324
[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support#41324chadlwilson wants to merge 6 commits intogrpc:masterfrom
Conversation
6bc7833 to
d0b0e30
Compare
This comment was marked as resolved.
This comment was marked as resolved.
|
Thanks for the PR @chadlwilson . We will look into this. |
This comment was marked as outdated.
This comment was marked as outdated.
|
great work on this, hoping to get this merged, because it is making my CI take 30+ minutes to just run bundle install on the ruby 4.0 upgrade PR 🙏 |
|
Don’t get your hopes up too high. 😅 It’s very easy for things to get stuck, as it currently has been for 3 weeks. I’ve worked on it the last few years (#38601 , #38615, #35399 , #35594 ) to try and shorten the cycle time from prior years, but it typically still takes weeks to months to get this supported every year, as the work can’t be done fully by OSS contributors like me, and is thus subject to Google’s internal priorities and release schedule. If no Googler spends 30m building and pushing the testing images, it cannot even be tested to get initial feedback, which is where it has been stuck for 3 weeks now. Every trial+error change to the build/test/cross-compile images while resolving problems typically requires a googler to unblock it. To my knowledge there is no way to run tests on ones own fork CI as it uses Google’s internal proprietary build system. IIRC, some things are hard coded to use x64 base images so even running them locally is slow & unstable as I only have arm64 hardware available, so I typically can only run for 1 or 2 platforms (but all must pass to get this through) Personally I typically don’t know the bindings or C++ well enough to solve any real issues that appear, I just help with the build infra logistics. I also infer from commits that the biggest challenge may be that the primary maintainer of grpc-ruby (whom I’d probably built some marginal trust with that helped speed things up) appears to no longer work on grpc at Google, as last commits were in October - so imagine that will slow things down further. |
Yes, sorry about that. Our (new) Ruby devs happen to be OOO at the moment. Tagging our new CI person to run the |
|
Oh, @yuanweiz is out today as well. I'll run the script for you. |
|
Please ignore the |
This comment was marked as outdated.
This comment was marked as outdated.
26369bb to
22da886
Compare
|
Hey - what was that force-push? Rebase? I asked to wait before I push my changes, sorry if I didn't made it clear enough. I might need to force-push and override you changes. |
|
Thanks for this @chadlwilson I just have couple of questions before we move ahead. Really appreciate the work. |
Thanks @asheshvidyut - have responded to those now. I note there is a |
|
What's next ? |
Probably needs a second internal Google approver before copybara can cherry-pick/squash it internally, and perhaps someone to share why |
Signed-off-by: Chad Wilson <29788154+chadlwilson@users.noreply.github.com>
Updates ruby-compiler-dock to `1.11.1` to bring Ruby 4.0 support. Signed-off-by: Chad Wilson <29788154+chadlwilson@users.noreply.github.com>
Signed-off-by: Chad Wilson <29788154+chadlwilson@users.noreply.github.com>
Signed-off-by: Chad Wilson <29788154+chadlwilson@users.noreply.github.com>
|
Update - I am trying to merge this, I was getting some merge conflicts. Will sync with @sergiitk on this today. |
@asheshvidyut Oh? I guess merge conflicts for things at internal google not yet pushed to public, as I have been checking and couldn't see any? |
Yes. |
|
@asheshvidyut OK, thx. Lemme know if you need any help! |
grpc#41324) - Run CI and normal specs with Ruby 4.0.1 - Updates ruby-compiler-dock to `1.11.1` to bring Ruby 4.0 cross compile support. - updates Rubocop and resolves latent warnings since update is needed for compatibility to avoid runtime warnings on modern Ruby - Adds missing `syslog` development dependency to resolve nag on more recent Ruby versions where it has moved to a bundled gem, rather than default gem as in `<= 3.3` - Weakens a single test assertion for bidi servers since `.inspect` of certain Ruby errors (e.g `NoMethodError`) serialize differently in `4.0` onwards Closes grpc#41324 PiperOrigin-RevId: 865208597 (cherry picked from commit 7e3a37d)
|
@asheshvidyut Since 1.78 is seemingly still in pre-release (and we did not get a |
|
Looks like grpc 1.78 gems were published to https://rubygems.org/gems/grpc/versions/1.78.0-x86_64-linux-gnu with |
|
I guess, the branch cut was done before. |
|
|
…ith Ruby 4.0 support (#41554) Backport of #41324 to v1.78.x. --- - Run CI and normal specs with Ruby 4.0.1 - Updates ruby-compiler-dock to `1.11.1` to bring Ruby 4.0 cross compile support. - updates Rubocop and resolves latent warnings since update is needed for compatibility to avoid runtime warnings on modern Ruby - Adds missing `syslog` development dependency to resolve nag on more recent Ruby versions where it has moved to a bundled gem, rather than default gem as in `<= 3.3` - Weakens a single test assertion for bidi servers since `.inspect` of certain Ruby errors (e.g `NoMethodError`) serialize differently in `4.0` onwards (cherry picked from commit 7e3a37d)
1.11.1to bring Ruby 4.0 cross compile support.syslogdevelopment dependency to resolve nag on more recent Ruby versions where it has moved to a bundled gem, rather than default gem as in<= 3.3.inspectof certain Ruby errors (e.gNoMethodError) serialize differently in4.0onwards