Skip to content
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

Fill out JRuby support #7923

Merged
merged 7 commits into from Dec 12, 2020
Merged

Conversation

rdubya
Copy link

@rdubya rdubya commented Sep 28, 2020

This gets the Ruby gem to be able to be used on JRuby. Almost all Ruby tests are passing with a couple minor changes. There are a significant number of compatibility tests that are failing, but I figured this would at least get something in place that could be expanded upon by others in the community.

This is related to the following issues:

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

@rdubya
Copy link
Author

rdubya commented Sep 28, 2020

I'm working on getting my company to sign the CLA, hopefully will be able to get that done today. The codespell failure doesn't look to be related to anything I changed.

@TeBoring TeBoring added the ruby label Oct 5, 2020
@TeBoring TeBoring requested a review from haberman October 5, 2020 20:35
@rdubya
Copy link
Author

rdubya commented Oct 9, 2020

Sorry about the delay on the CLA we're still working on taking care of it.

@rdubya
Copy link
Author

rdubya commented Oct 15, 2020

@googlebot I signed it!

@google-cla
Copy link

google-cla bot commented Oct 15, 2020

CLAs look good, thanks!

ℹ️ Googlers: Go here for more info.

@google-cla google-cla bot added cla: yes and removed cla: no labels Oct 15, 2020
@google-cla
Copy link

google-cla bot commented Oct 15, 2020

CLAs look good, thanks!

ℹ️ Googlers: Go here for more info.

@rdubya
Copy link
Author

rdubya commented Nov 2, 2020

Is there anything I can do to keep this moving along?

@acozzette
Copy link
Member

@rdubya Sorry for the delay, feel free to keep pinging us every few days if you don't get a response.

@haberman Are you OK with reviewing this one?

@mmarod
Copy link

mmarod commented Nov 17, 2020

Pinging every couple of days as per @acozzette 's comment above :) Would love to see this get moved through.

@rdubya
Copy link
Author

rdubya commented Nov 23, 2020

Just sending in a ping to see if this has gotten on anybody's radar yet.

@acozzette
Copy link
Member

@rdubya Sorry for the delay again. We talked about this at our team meeting today. The thing we've been hesitating about is that the JRuby protobuf implementation has not been very actively maintained the past few years, and no one one currently on the team is very familiar with it. I believe it was originally written by JRuby enthusiasts from outside the protobuf team and never really worked on much by our team itself. We can try to review this PR but it's just tricky because no one on the team is knowledgeable enough about the JRuby code to really do a thorough review. We were thinking it would be ideal if we could perhaps split off the JRuby implementation into its own separate Git repo that could be owned and maintained by members of the community such as yourself. What do you think?

@rdubya
Copy link
Author

rdubya commented Nov 24, 2020

Hey @acozzette, Thanks for the feedback. I think splitting it off would probably cause some issues since the JRuby version needs to be pushed with the same gem name so that dependencies can work correctly. How would you see that interaction going if it were a separate repo?

@enebo or @headius : any thoughts on maintaining a JRuby specific repo?

We could also potentially move more of the code into ruby so there are less pieces that are written in c or java, but I don't know what other implications that might have.

Not having JRuby support locks JRuby users out of several of Google's gems because it is a dependency for them. The gRPC gem is unfortunately another hinderance there but this is step one of getting full support. I got permission to do this as a way to hopefully kickstart some better support going forward, but I don't think my company sees enough value in it to fund me maintaining a whole project. Our workaround thus far has been to implement the REST api calls we need since most of our use cases have only needed a couple of api calls.

@acozzette
Copy link
Member

@rdubya That is a good point about the JRuby gem needing to have the same name, and I don't know of any good solution to that.

@acozzette
Copy link
Member

There are a couple test failures but they should be easy to fix just by adding RubyFileDescriptor.java and RubyFileBuilderContext.java to the list here.

from = get_msg_proto2
data = A::B::Proto2::TestMessage.encode(from)
to = A::B::Proto2::TestMessage.decode(data)
# This doesn't work for proto2 on JRuby because there is a nested required message.
Copy link
Member

Choose a reason for hiding this comment

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

Does this mean that the plain Ruby implementation isn't validating required fields during parsing?

Copy link
Author

Choose a reason for hiding this comment

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

Yeah, I didn't dig into the c-ruby side too much on it but I think it tracked down to it not checking things in the same order. There is a required field that is the same type as the message that contains it and, iirc, it turns into an infinite loop.

Copy link
Member

Choose a reason for hiding this comment

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

That makes sense, it's just that the fact that this test was passing for C Ruby makes me think it is not validating required fields, which is a separate problem that we should probably fix at some point. This is a very weird test message because it's impossible to create a valid instance of it, given the recursive required field.

@acozzette acozzette merged commit 53be410 into protocolbuffers:master Dec 12, 2020
@acozzette
Copy link
Member

@rdubya Sorry about the delay and thanks for the pull request!

@rdubya rdubya deleted the jruby-support branch December 13, 2020 02:31
@rdubya
Copy link
Author

rdubya commented Dec 13, 2020

Awesome, thank you for including it!

@JasonLunn
Copy link
Contributor

JasonLunn commented Jan 5, 2021

Thanks much, @rdubya - I've been tracking #1594 for four years! Looking forward to seeing it finally squashed.

@acozzette / @haberman - when can we expect to see a release that includes the JRuby gem again? It's been a while...

CC: @blowmage

@JasonLunn
Copy link
Contributor

@acozzette / @haberman / @TeBoring - Bumping my previous comment - where are we on a release that includes this change (and makes sure java platform variants of the gem are part of the standard release process going forward)?

@acozzette
Copy link
Member

@JasonLunn Sorry for taking so long to get back to you, but yes I would like to set things up so that we release Java variants of the gem. We are planning to do a 3.15 release soon, so I will work on this next week and try to make sure it gets done for 3.15.

@mufti1
Copy link

mufti1 commented Feb 23, 2021

I tried installing google-protobuf 3.15 still getting an error for JRuby 9.2.11.1

@schanjr
Copy link

schanjr commented Apr 22, 2021

@haberman There seems to be some progress on this, however I'm also unable to install this gem. Any advice?

gem install google-protobuf
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: no-rdoc
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: --no-rdoc
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: no-ri
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: --no-ri
Building native extensions. This could take a while...
Exception `Gem::InstallError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:99 - make failed, exit code 2
Exception `Gem::InstallError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:99 - make failed, exit code 2
Exception `Gem::Ext::BuildError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:153 - ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-77730-1ky5kuq.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out

Exception `Gem::Ext::BuildError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:153 - ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-77730-1ky5kuq.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out

Exception `Gem::Ext::BuildError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:153 - ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-77730-1ky5kuq.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out

ERROR:  Error installing google-protobuf:
        ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-77730-1ky5kuq.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out
Exception `Gem::SystemExitException' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/user_interaction.rb:375 - Exiting RubyGems with exit_code 1
Exception `Gem::SystemExitException' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/user_interaction.rb:375 - Exiting RubyGems with exit_code 1

@rdubya
Copy link
Author

rdubya commented Apr 22, 2021

@schanjr It looks like it is trying to install the c based version of the gem. I'm not sure what might be causing that, but based on the gemspec the ext directory shouldn't be getting included. Can you try running gem install google-protobuf --platform java and see if you get different results?

@schanjr
Copy link

schanjr commented Apr 22, 2021

@rdubya had similar results, thanks for getting back to me

chanst@C02D963ZMD6T LEM % gem install google-protobuf --platform java            
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: no-rdoc
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: --no-rdoc
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: no-ri
Exception `OptionParser::InvalidOption' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/optparse.rb:1739 - invalid option: --no-ri
Building native extensions. This could take a while...
Exception `Gem::InstallError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:99 - make failed, exit code 2
Exception `Gem::InstallError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:99 - make failed, exit code 2
Exception `Gem::Ext::BuildError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:153 - ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-61916-kjy1wf.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out

Exception `Gem::Ext::BuildError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:153 - ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-61916-kjy1wf.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out

Exception `Gem::Ext::BuildError' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/ext/builder.rb:153 - ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-61916-kjy1wf.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out

ERROR:  Error installing google-protobuf:
        ERROR: Failed to build gem native extension.

    current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
/Users/chanst/.rvm/rubies/jruby-9.2.13.0/bin/jruby -I /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib -r ./siteconf20210422-61916-kjy1wf.rb extconf.rb
creating Makefile

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR=" clean

current directory: /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8/ext/google/protobuf_c
make "DESTDIR="
make: *** No rule to make target `/Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/include/ruby/ruby.h', needed by `protobuf.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/gems/google-protobuf-3.15.8 for inspection.
Results logged to /Users/chanst/.rvm/gems/jruby-9.2.13.0@lem/extensions/universal-java-11/2.5.0/google-protobuf-3.15.8/gem_make.out
Exception `Gem::SystemExitException' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/user_interaction.rb:375 - Exiting RubyGems with exit_code 1
Exception `Gem::SystemExitException' at /Users/chanst/.rvm/rubies/jruby-9.2.13.0/lib/ruby/stdlib/rubygems/user_interaction.rb:375 - Exiting RubyGems with exit_code 1

@rdubya
Copy link
Author

rdubya commented Apr 22, 2021

@haberman I just checked the rubygems repo and it doesn't look like the jruby version of the gem got built/pushed.

@acozzette
Copy link
Member

Sorry but I haven't yet had a chance to get this integrated into our release process, though it's still on my todo list.

@schanjr
Copy link

schanjr commented Apr 26, 2021

Sorry but I haven't yet had a chance to get this integrated into our release process, though it's still on my todo list.

Is there like a link I can use to track the progress? I'm not blocked by the way. I found an alternative for my needs.
Of course prefer using protobuf

**edited. The alternative approach didn't work. Waiting for the gem to be available :)

@schanjr
Copy link

schanjr commented Jun 28, 2021

@acozzette three months later... any updates?

@JasonLunn
Copy link
Contributor

@rdubya - I am looking into a PR to address the build and release issue. However, when I pull the repo, despite being able to successfully build and install the gem (using the instructions as written in https://github.com/protocolbuffers/protobuf/tree/master/ruby) under Debian + JDK11 + rvm 1.29.12 + jruby-9.2.9.0, rake test fails. I can post my results if that's helpful, but I am guessing that this is easily reproducible since I just pulled the repo.

@JasonLunn
Copy link
Contributor

Based on what I'm seeing in the test failures, maybe due to #8184
CC: @haberman

JasonLunn added a commit to JasonLunn/protobuf that referenced this pull request Sep 3, 2021
Since this is the rake target used by kokoro, this will close the gem release gap for JRuby

Should help protocolbuffers#7923 by making sure JRuby is built and released as part of the normal cadence.
JasonLunn added a commit to JasonLunn/protobuf that referenced this pull request Sep 16, 2021
Since this is the rake target used by kokoro, this will close the gem release gap for JRuby

Should help protocolbuffers#7923 by making sure JRuby is built and released as part of the normal cadence.
@NC-piercej
Copy link

Shout out to @JasonLunn for moving this along. Looks like there has been some more activity on this in recent days, and we'll have the first working JRuby version published on RubyGems since 2017 soon! 🙌

@JasonLunn
Copy link
Contributor

The wait is over!
https://rubygems.org/gems/google-protobuf/versions/3.19.1-java is out in world!

My sincerest thanks to @rdubya @haberman @acozzette @perezd for helping me to make this possible.

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.

None yet