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.

Reply via email to