-
Notifications
You must be signed in to change notification settings - Fork 15.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for Ruby 3.2.0 in prebuilt binaries #11538
Comments
As stated in the bug you linked to, the workaround for this is to use the ruby source gem instead of the compiled binary. We are working on 22.0 currently, which will only release ruby source gems making them default compatible with ruby 3.2. Unfortunately I don't think we will be updating the ruby gem binary for 21.x given the impending release. |
@deannagarcia and how long until that is released? Bundler does not like keeping |
We are currently aiming to release next week. When we release only source gems will that solve your problem or will you still have the same issue? |
@deannagarcia Oh cool, that's not long to wait at all, thanks. Source-only gems should be OK for protobuf since it builds fairly quickly (GRPC is around 10 minutes or more!). There's always a risk of failure when building native components but it sounds like you don't want to have to manage a wide range of pre-built binaries or have to keep the builds on a Ruby treadmill and that definitely makes sense. |
We're also in the position of wanting this - building from source takes way to long on CI/CD - plus much more bloated images with the build tools. Looking forward to an officially supported gem - we're not going to go production without it and really want to test YJIT. Thanks for all the hard work everyone involved. |
While source-only gems will mitigate the problem, it is in my opinion a suboptimal solution. I will strongly suggest, that we keep up the support for prebuilt gems. If not with the existing CI pipeline, then maybe we could rethink the build-setup a bit, to make it easier in the future, to support future Ruby versions (And maybe architectures etc.)? |
PR raised for supporting fat binaries on Ruby 3.2: #11592 |
From what I can tell the build time for protobuf is negligible. It seems like precompiled binaries add extra maintenance overhead and delay our ability to upgrade Ruby, so I'm totally in favor of removing them. It's easy to cache things on CI, and there are loads of other gems that take much longer to compile. |
I note that it was estimated there'd be 3.22 within the week, but it's been more than two weeks and there is still no 3.22 other than a release candidate from Feb-2, which other Google gems do not select via their gemspec, so we are still unable to use this in CI. Is there an update, please, on when this will be done? It's kinda dragging and the maintenance burden and extra CI time required by being forced into a |
Why aren't you able to use 3.22-rc2? Unfortunately our release process often takes multiple release candidate iterations and we are actually trying to get support for binary gems into 3.22. We are aiming to get the full release out next week, but if we see issues with release candidates it could get pushed back. |
We don't use protobuf directly. It's pulled in as a dependency of GRPC, which uses |
@pond you can add |
@johnnyshields I appreciate the suggestion, but then I have to add a task to my backlog to remove it again, and/or keep watching Google Protobuf every day, just so I can remove the hack. We don't hack our software and we don't put alpha, beta or release candidate gems into Production. |
@deannagarcia A little ironic that after all this it's going to be a binary release anyway 😂 but thanks for the update and:
Understood. |
Then you're doing it wrong 😆 |
I see 3.22.0 has now been released - thanks; we've updated to that and the CI builds are running again. Yay! |
What version of protobuf and what language are you using?
Version: main
Language: Ruby
What operating system (Linux, Windows, ...) and version?
All
What runtime / compiler are you using (e.g., python version or gcc version)
Any
What did you do?
Install latest rubygem.
What did you expect to see
Prebuilt binary for Ruby 3.2.0 to be installed
What did you see instead?
It is installing
with native extensions
(ie. compiling)Anything else we should know about your project / environment
Reopening #11407 with proper template, and because the issue has been closed.
Virtually, the rubygem needs to explicitly support and build for Ruby 3.2.0 as well as the others.
Currently the native prebuilt gems are build for
>= 2.5, < 3.2.DEV
(see https://rubygems.org/gems/google-protobuf/versions/3.21.12-x86_64-linux for instance)
We should add support for 3.2.0 as it has been released in December.
The text was updated successfully, but these errors were encountered: