We meet every week via a google meeting. The times alternate each
week to encourage attendance from multiple time zones. Each week we
will provide a summary here to facilitate historical preservation &
further discussion. If you would like to join this meeting, you can
do so here: https://meet.google.com/her-tjpt-xmf

* Reminder: no meeting on 12/24 or 12/31

* Authorship PR has been merged
(https://github.com/apache/grails-core/pull/15274)
- for code that is public domain with author tags, we decided to leave them
- for co-authors not in git, we can leave them
- opened ticket https://github.com/apache/grails-core/issues/15299 to
remove authors except above circumstances

* Hibernate 6 discussion
- Hibernate 6 removed the Criteria API.  Majority of tests are
passing, but there are significant tests that may need to be fixed
- Hibernate 7 has id generation issues, but otherwise passes the same
tests as 6.  We need to fix the id generation issues as the next step.
Id is likely an issue in hibernate 6 too.
- Hibernate 6 & 7 are working on individual branches.
- Walter proposal: since most of the code is working on Grails 7.1, we
should attempt to use Grails 7.1 to shake out the current progress.
- 5 tests are broken (including a proxy related test)
- Recap of Migration Strategy for Hibernate 6: DetachedCriteria
remains in Gorm and acts as a “collector” for all of the query
components.  We then call the new API & build the query.
- Hibernate 7 Changes
-- persist / merge instead of save/update (follows JPA naming)
-- persit => save, merge means you have to fetch, merge, and then
persit to update
- a lot of build work to "choose" between 2 hibernate versions
-- maven 3.x doesn't support exclusions
-- we'll want to use classifiers to select between versions similar to
ehcache strategy
- Branches:
-- 8.0 Grails => Hibernate 7; 7.1 Grails => Hibernate 6
- Spring Boot 3.x is on Hibernate 6.6 which is JPA 3.1
- Spring Boot 4.0.0 is on Hibernate 7.1.8.Final which is JPA 3.2

- Possible next steps for Hibernate:
-- build changes in 8.0
-- release hibernate 6.6 on 8-M1 & Spring Boot 3.x
-- possible milestones for hibernate 6 & 8 issues
-- Release Hibernate 7.x on 8-M2 and Spring Boot 4
-- Later branches for 8.0 dev

* Decision:
- build changes in Grails 8.0 to support classifier to select hibernate version
- Hibernate 7.x in Grails 8
- will skip general availability of Hibernate 6.x due to documentation
and other updates that will need to change on Hibernate 7

* Still need to test https://github.com/apache/grails-core/pull/15266
for breaking change
- James will try to do before our next meeting

* Discussed dependabot branches and if CI should be running
- Mattias pointed out that we want to continue to restrict our
branches and then rely on PRs to run CI

* Eliminated old tomcat logging library:
https://github.com/apache/grails-core/pull/15275

* Groovy issues have been found:
- for loop issue: https://issues.apache.org/jira/browse/GROOVY-11818
- invoke dynamic + compile static -
https://issues.apache.org/jira/browse/GROOVY-11817
-- opened https://github.com/apache/grails-core/pull/15296 to document
performance workaround, and started discussion on Groovy mailing list
for performance issues with Groovy 5

- Micronaut Update
-- side branch is out there, need volunteers. Only remaining issue is
that beans created exclusively in the micronaut context aren't being
reflected back into the spring context.  If we reflect all beans, it
results in bean duplicates.
-- need to follow-up with how the spring starter is expected to work
for micronaut & spring apps since without selectively reflection, it's
unclear how this works with spring

- Apache Grails Dec board report
-- was pre-approved

- Discussion for i18n translations as jar file
-- proposal: continue to generate property files by default
-- optional: like the webjar added functionality, have a jar option so
customizations can be loaded from jar / property files don't have to
exist by default
-- ticket opened: https://github.com/apache/grails-core/issues/15300

- Liquibase is relicensing & ending OSS support
-- fork @ https://github.com/petergeneric/liquibase-oss but not maintained
-- liquibase extensions for hibernate 5 versions are still Apache 2.0:
https://mvnrepository.com/artifact/org.liquibase.ext/liquibase-hibernate5
and the last release was Apr 03, 2024
-- Liquibase extensions for hibernate 6 versions prior to 5.0.x are
Apache 2.0: 
https://mvnrepository.com/artifact/org.liquibase.ext/liquibase-hibernate6,
Liquibase does not plan to release any further 4.x.x updates after
4.33.0 from Jul 09, 2025, and is only focused on 5.0.x.
-- There is not, as of 12/17/2025, a version of the Liquibase
extensions for hibernate 7, which provides integration including
generating changesets based on changed hibernate mapping files, which
is odd given Hibernate 7 was released May 19, 2025.  The dbmigration
plugin is built on top of the Liquibase extensions.  The lack of this
extension for hibernate 7 might be a bigger issue for us.
-- James Fredley still believes there is a good chance hibernate 5.6
jakarta will work in Grails 8 given the minor changes between JPA 3.0
and 3.2, Spring Boot 3.5.x is already JPA 3.1 and we are cheating the
version of JPA for grails-data in Grails 7.  If it plays out that way,
Grails 8 could have two grails-data options hibernate 5.6 jakarta
(legacy) and hibernate 7.1 (new)
-- For Grails, the dbmigration plugin is a non-default, optional
dependency and the liquibase code and binaries are not shipped
directly.  We need to decide how to handle this going forward.
-- Possibility: Additionally we could add a Flyway Plugin to make
Liquibase even more optional.  Possibly starting with
https://github.com/saw303/grails-flyway.  But, Flyway is "open core"
and the following features are only included in the commercial,
subscription-based license, which is not open source.  The community
edition is Apache 2.0 licensed.
-- advanced tools like undo migrations, dry-run previews, error
overrides, automated drift detection, schema model generation,
integration with Redgate's comparison tools (e.g., SQL Compare),
enhanced reporting, and priority support. Enterprise further includes
enterprise-grade automation, compliance controls, and scalability for
large teams or multi-database environments

- mimetype discussion
-- Scott noted that the mime detection is turned off by default still
and it's confusing that if you set it to empty, it still leaves it
turned off.
-- proposal for 8.0 to enable detection by default.
-- TODO: Open ticket.

- we briefly discussed the bom property expansion and Scott's desire
to reduce the number of properties.  We will revisit that topic in the
next meeting.

Reply via email to