Resolution: Won't Do
Drop support for running the Ruby driver on JRuby, as the usage numbers don’t justify the support effort.
The usage statistics on Atlas provide insight into JRuby usage by Atlas customers:
- ~1% of clusters in July 2021 had connections that were attributed to JRuby
- ~2.65% of clusters in from January-July 2021 had connections that were attributed to JRuby
- ~0.6% of all connections in the same timespan were attributed to JRuby
As far back as 2015, there were Ruby community threads about how JRuby had never won any true market share; on StackOverflow JRuby has a scant 500 questions total, some dating back to 2012.
Measures of Success
- Reduced support effort due to no longer needing to maintain JRuby build infrastructure
- No complaints from paying customers about us dropping JRuby
- Announce that we’ll no longer support JRuby with the next minor release of the driver (presently 2.17.0)
- Remove code for building JRuby release packages (in bson-ruby) to reduce maintenance load
- Stop maintaining JRuby code - we will no longer investigate issues or review pull requests that only affect JRuby. Exceptions may be made on a case-by-case basis
- Remove JRuby from test matrix (in bson-ruby, driver and Mongoid)
- Remove compatibility code necessary for JRuby. This will be removed in smaller batches after support has been dropped and we’re sure there are no big customers that were relying on this.
User-Facing Syntax/API Changes
- Users that currently run JRuby may not be able to upgrade to a newer driver version
- We will close all pull requests and issue reports relating to JRuby support without working on them, unless the issue also affects non-JRuby environments
Assumptions and Risks
- The usage numbers for Atlas show a ~1% usage of JRuby (see above). However, we do occasionally receive pull requests and feedback from JRuby community members in JIRA and github. As we are not able to collect usage data outside of Atlas, we don’t know how many non-Atlas customers may be relying on it, however we expect that the amount is low.