JRuby 9.4.12.1 upgrade
- [x] upgrade to jruby 9.4.12.1
- [x] cleanup broken requires
- [x] add license entry and notices for multiple core gems like pp, drb, etc.
- [ ] address changes to bundler and rubygems
I'm going to go ahead and replace 9.4.12.0 with 9.4.12.1 if thats allright with you @robbavey and @jsvd
I took over https://github.com/elastic/logstash/pull/16986 and opened a WIP to start seeing things in CI etc at https://github.com/elastic/logstash/pull/17696
We got another Jruby release! 9.4.13.0. I want to provide an overview of where we are at currently and go over results of looking at taking up the latest version.
Here are the biggest updates we need to deal with to take up 9.4.12.1 (and 9.4.13.0):
- We had been explicitly overriding some default gems for security compliance, with the latest jruby release we can remove some of those pins ✅
- The default gem set changed and there are some license checker updates required ✅
- File loading behavior changes require some explicity
requireswhere previously those were already loaded (for example where previously we could call ato_seton anArrayassumingrequire 'set'was already executed, changes in loading invalidated that and nowrequire 'set'is required. ✅ - Some error handling needs to be updated based on a refactor in jruby https://github.com/rubygems/rubygems/commit/23b828c9f10311238701497c00284a7c9920443b Specifically https://github.com/elastic/logstash/pull/17696/files#r2136596098 ✅
- There has been some changes to bundler we need to adapt to. We are monkey patching some code that was changed and predictably that is breaking the pluginmanager functionality. The PR that breaks us is https://github.com/rubygems/rubygems/pull/8027/files. In addition to this change there have been a couple other changes to that code base that we need to consider: https://github.com/rubygems/rubygems/pull/8027/files has landed and https://github.com/rubygems/rubygems/commit/152331a9dc4097a4393c2c86423944d7d8cf5688 is coming (not yet released). From my initial look it appears that the path forward will be to remove the patch entirely. Doing this produces errors where bundler is complaining about modifying a lock file. I think the path forward will be to dig in to exactly what that conflict is and solve it in our pluginmanager code instead of patching. ❌
- A quick spike on 9.4.13.0 shows that updating to latest will be trivial and will actually carry some important updates. ✅
Jruby 9.4.13.0 is in the logstash 9.1 branch and has been producing green CI runs. Manual testing led to a few minor issues being raised and subsequently fixed but that has concluded. Closing as done!