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
The next meeting is at 10 AM Eastern on November 4th. Action Usage * https://the-asf.slack.com/archives/CBX4TSBQ8/p1792520326623569 * https://github.com/apache/datafusion/issues/25088 * https://github.com/apache/grails-core/pull/16779 * Airflow intends to share its setup for self-hosted runners. Grails will wait for that work and then adopt it. Incremental Compilation Fix for grails.factories * https://github.com/apache/grails-core/pull/16780 * 8.0 or 8.1? 8.0 means we may be able to turn on cached CI sooner once upstream Gradle changes are adopted, if they are. https://github.com/apache/grails-core/pull/16781#discussion_r4393103167 * Merge, or fix this before merging? * Data binding change; we need more reviewers on this one. grails-micronaut release process failure * https://lists.apache.org/thread.html/poqnkl67g1ko12576zvphbjs0zrt6odn * https://github.com/apache/grails-core/discussions/16672 * James Fredley pushed forward but will not have more time this week. CVEs * External - https://github.com/apache/grails-core/actions/workflows/vulnerability-scan.yml - 7.x.x and 8.0.x have been updated since the last releases. PR Breakdown for Release Discussion * 7.0.x (4) - #16726 Publish nothing from a CI run cancelled before its builds finish, and correct the CI policy docs - #16771 7.0 (fix): Hold the list of an indexed key in the nested map that owns it - #16772 7.0 (fix): Export the entries of a map written by map subscripts once, in brackets - #16784 Fix outer session connection closure and exception handling in withNewSession * 8.0.x (25) - #16516 Fix when render(template:) throws "Could not resolve view" - #16545 Documentation updated for Java 25 memory requirements - #16559 Hibernate 7: Honour the join type of nested association blocks in criteria queries - #16573 Fix when H7 createAlias joins the association twice and ignores the join type for the alias - #16624 Validate the constraints block of Bean Validation annotated domain classes and expose their constraints - #16627 Fix private trait field access in TraitPropertyAccessStrategy - #16719 Keep a parenthesized HQL scalar query from being typed as the domain class - #16720 Resolve every column of an enum unique-group member - #16721 Unwrap every Groovy proxy layer when resolving a GORM API - #16722 Read spring.messages.basename with Binder so a list is not dropped - #16723 Query multi-tenant load and proxy only in discriminator mode - #16725 Docs: Add the mongodb-developer skill and scoped agent guides for build-logic and grails-gradle - #16736 Bind flattened dataSource.properties from the Spring Environment - #16756 Hibernate 7: Write the rows of lists and maps that share a join table - #16763 Hibernate 7: Prevent outer session connection closure during nested withNewSession lazy loading - #16773 Hibernate 7: Fix subquery correlation with top-level association blocks - #16780 Incremental Compilation Support for grails.factories - #16781 Fix data binding re-evaluating domain constraints on every bind - #16786 Give a task a copy of the request once the request completes * 8.1.x (3) - #15956 Seed URL mappings index with runtime fallback - #16000 Add optional artefact index reader for startup scanning - #16510 Address #15956 review: Package-private URL mappings index reader * 9.0.x (4) - #16180 Start Grails as a native image without recorded metadata, checked by an end-to-end i18n module - #16583 Validate a unique group with a null value against the rows whose group value is null - #16732 Treat a dotted configuration key past a value that is not a map as absent - #16760 Let Spring Boot register the character encoding filter * Decision: Call for votes for 7.0.x, 7.1.x, 7.2.x, 8.0.1, 8.1.0, and 9.0.0-M1 24 hours after merging the 7.x PRs. GitHub Actions and the IntelliJ plugin need votes too. CI Policy Change discussion of changes from #16673 ( https://github.com/apache/grails-core/pull/16673) to #16726 ( https://github.com/apache/grails-core/pull/16726) * [skip tests] on pull requests - What's new: Before #16673 ( https://github.com/apache/grails-core/pull/16673), the marker only worked on pushes. The old check read github.event.head_commit.message, which a pull request run doesn't have, so a PR's tests always ran. After #16673 ( https://github.com/apache/grails-core/pull/16673), the policy reads the PR's head commit, so a contributor can skip the tests of their own PR. That includes PRs into 8.0.x and above, where tests otherwise always run. - Example: - A fork PR into 8.0.x has one commit titled: [skip tests] Fix X. - PR run: Every test job is skipped. The build jobs show green, and the test jobs show as skipped. The "Tests did not run" notice appears only on the run's summary page. The reviewer can't override it because the marker wins over the run ci label. - Merge: With a merge commit ("Merge pull request #N …"), the push runs the tests; that's James's point. A squash merge reuses the commit's title for a single-commit PR, so the commit is [skip tests] Fix X (#N), and the push skips the tests and publishes the snapshot anyway. A rebase merge keeps the commit unchanged, so the push skips them too. - Result: That change never gets its own test run. The next push to 8.0.x tests it mixed in with later commits. - The push half isn't new. Before #16673 ( https://github.com/apache/grails-core/pull/16673), [skip tests] anywhere in the message skipped a push's tests. Squash messages include every commit's message, so the old check was even easier to trigger. #16673 ( https://github.com/apache/grails-core/pull/16673) made the push side stricter: The marker must now start the first line. James's merge-commit argument is about this half. What's new is the PR half. - Options: - Leave it. Reviewers watch for the marker. - Members only (Scott's idea). On a PR, the marker counts only when pull_request.author_association is OWNER, MEMBER, or COLLABORATOR. Committers keep the shortcut, and outside contributors can't skip their own tests. One caveat: A committer whose organization membership is private may show up as CONTRIBUTOR. That fails safe because their tests just run. - Ignore the marker on PRs, as before #16673 ( https://github.com/apache/grails-core/pull/16673). * run ci on drafts - It has nothing to do with publishing: PR runs never publish. The issue is that run ci does two jobs: - The draft gate in every workflow: A draft runs nothing unless it carries run ci. - A test request in ci-policy.yml: On any PR, run ci runs the tests even where the branch rule would skip them. - PR into 8.0.x and above: - Draft: Nothing. - Draft + run ci: Full tests. - Ready: Full tests. - Ready + run ci: Full tests. - PR into 7.0.x/7.1.x/7.2.x or a side branch: - Draft: Nothing. - Draft + run ci: Full tests. - Ready: Build only. - Ready + run ci: Full tests. - For a draft below the default branch, there's no way to get the build-only run. To check that a draft backport into 7.0.x compiles, you either run the full matrix (hours of runner time) or mark it ready. Before #16673, every draft ran the full matrix, so nothing was lost; it's a gap in the new design, not a regression. - The fix, if wanted: A separate run tests label for the test request, so run ci only opens the draft gate. A draft into 7.0.x with run ci would then get the build-only run. The cost is one more label, and run ci stops meaning "run the tests" on ready PRs into 7.x, which is how AGENTS.md and RELEASE.md describe testing a backport now. A draft with only run tests would also need run ci, unless every workflow's gate is changed too.
