On today’s platform call, we discussed the following proposal that we would like to share with the whole community and ask for feedback:
Major upgrades of Hibernate, Spring, and a few other libraries, require us to stretch beyond Java 8. We first thought of requiring a minimum of Java 11, but then discovered that it would simply be much better if we went all the way to Java 17, as the minimum required Java version for openmrs core and modules.
Because Java 17 support was added in openmrs core 2.7.0, this means that for modules, the minimum required openmrs core version would be 2.7.0. Therefore, we would start by creating a branch for each module, to support lower versions of Java and openmrs core, and then ensure that the master branch of each community supported module compiles on Java 17
A module like webservices rest, in its master branch, would drop all those sub module folders for supporting previous openmrs versions.
FWIW, one of our awesome volunteers @k4pran is ready to help us with the from Hibernate 5 to Hibernate 6 upgrade.
All this is planned to happen in the next platform version (3.0.0), which will be released before the end of this year 2025.
What do you think about all this?