Skip to content

[ruby] Build/test ruby 3.4 and build native gems with Ruby 3.4 support (REDUX)#38601

Closed
chadlwilson wants to merge 5 commits intogrpc:masterfrom
chadlwilson:ruby-34-redux
Closed

[ruby] Build/test ruby 3.4 and build native gems with Ruby 3.4 support (REDUX)#38601
chadlwilson wants to merge 5 commits intogrpc:masterfrom
chadlwilson:ruby-34-redux

Conversation

@chadlwilson
Copy link
Contributor

@chadlwilson chadlwilson commented Jan 28, 2025

Repeat attempt of #38338 to bring Ruby 3.4 precompiled gems to grpc.

Pending #38597

Brief history

This PR

Needs rake-compiler-dock test image re-uploads courtesy of @apolcyn 🙏

grpc#38338)

Updates ruby-compiler-dock to `1.7.1` to [bring Ruby 3.4 support](https://github.com/rake-compiler/rake-compiler-dock/releases/tag/v1.7.0) and starts cross-compiling native gems for Ruby 3.4. Added a distribtest as well.

I believe from last year at grpc#35399 that this probably requires @apolcyn or another Googler to build+push+update the `grpc-testing` images, along with

- `tools/dockerfile/push_testing_images.sh`
- update the values within [the current_version files](https://github.com/grpc/grpc/tree/9b77138b71e04bb127ec1fb3ae280bca33c59ae1/third_party/rake-compiler-dock).
re-run generate_dockerimage_current_versions_bzl.sh and commit changes to dockerimage_current_versions.bzl.
- similar for the `ruby_debian11_x64_ruby_3_4` image added here (needs to be built and pushed)

Marking as draft until we are happy with approach. Note that fully pre-compiled install wont be possible until protobuf pushes their own 3.4 native versions via protocolbuffers/protobuf#19752 (and a release), but this does not seem to block things as protobuf compile seems to be working OK without code change right now.

Closes grpc#38338

PiperOrigin-RevId: 715431412
(cherry picked from commit 18bebd3)
Per discussion on grpc#38487

Signed-off-by: Chad Wilson <chadw@thoughtworks.com>
This avoids needing to fix the specific target minor versions, to match the prebuilt images, making
future Ruby and rake-compiler-dock upgrades easier, per https://github.com/rake-compiler/rake-compiler-dock?tab=readme-ov-file#choosing-specific-ruby-versions-to-support
and https://github.com/rake-compiler/rake-compiler-dock/releases/tag/v1.9.1

Signed-off-by: Chad Wilson <chadw@thoughtworks.com>
@apolcyn
Copy link
Contributor

apolcyn commented Jan 28, 2025

Thanks! chadlwilson#14 for the image bumps

@chadlwilson
Copy link
Contributor Author

Merged now 🙏

@apolcyn apolcyn added release notes: yes Indicates if PR needs to be in release notes release notes: no Indicates if PR should not be in release notes kokoro:force-run and removed release notes: yes Indicates if PR needs to be in release notes labels Jan 28, 2025
@apolcyn
Copy link
Contributor

apolcyn commented Jan 28, 2025

basic tests ruby macos looks like a pre-existing build timeout flake

@chadlwilson chadlwilson deleted the ruby-34-redux branch January 29, 2025 06:00
chadlwilson added a commit to chadlwilson/grpc that referenced this pull request Jan 29, 2025
…t (REDUX) (grpc#38601)

Repeat attempt of grpc#38338 to bring Ruby 3.4 precompiled gems to grpc.

Pending grpc#38597

Brief history
- grpc#38338 merged
- grpc#38458 backported to 1.70.x and merged
- Above two changes reverted in grpc#38516 and grpc#38515 due to release urgency. Root cause was minor artifact build timeout due to release infra having smaller hosts (fixed in grpc#38597)
- Discussion in grpc#38487 about adding back the workaround with `RUBY_PATCHLEVEL`. Unclear if necessary.

This PR
- cherry-picks the original squashed PR
- adds back the `RUBY_PATCHLEVEL` hack, per discussion in grpc#38487
- further upgrades `rake-compiler-dock` to `1.9.1` which avoids coupling patch versions between grpc and rake-compiler-dock
  - This version changes the host Ruby version from `3.1` -> `3.4` so _technically_ we _could_ validate the theory from grpc#38487. Will await @apolcyn advice.

 Needs rake-compiler-dock test image re-uploads courtesy of @apolcyn 🙏

Closes grpc#38601

PiperOrigin-RevId: 720824180
(cherry picked from commit ef13727)
apolcyn added a commit that referenced this pull request Jan 29, 2025
…th Ruby 3.4 support (REDUX) (#38615)

Backports #38601 and #38597 to `1.70.x`.

Equivalent change earlier reverted in #38515 - after which the root
cause was traced to a release build timeout due to differing test vs
release build infrastructure, which should have been worked around in
#38597.

Note that there still appear to be some unrelated Python timeout issues
so #38602 or similar may need a merge and backport.

FYI @apolcyn @stanley-cheung

---------

Co-authored-by: apolcyn <apolcyn@google.com>
paulosjca pushed a commit to paulosjca/grpc that referenced this pull request Feb 20, 2025
…t (REDUX) (grpc#38601)

Repeat attempt of grpc#38338 to bring Ruby 3.4 precompiled gems to grpc.

Pending grpc#38597

Brief history
- grpc#38338 merged
- grpc#38458 backported to 1.70.x and merged
- Above two changes reverted in grpc#38516 and grpc#38515 due to release urgency. Root cause was minor artifact build timeout due to release infra having smaller hosts (fixed in grpc#38597)
- Discussion in grpc#38487 about adding back the workaround with `RUBY_PATCHLEVEL`. Unclear if necessary.

This PR
- cherry-picks the original squashed PR
- adds back the `RUBY_PATCHLEVEL` hack, per discussion in grpc#38487
- further upgrades `rake-compiler-dock` to `1.9.1` which avoids coupling patch versions between grpc and rake-compiler-dock
  - This version changes the host Ruby version from `3.1` -> `3.4` so _technically_ we _could_ validate the theory from grpc#38487. Will await @apolcyn advice.

 Needs rake-compiler-dock test image re-uploads courtesy of @apolcyn 🙏

Closes grpc#38601

PiperOrigin-RevId: 720824180
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants