codeconsole opened a new pull request, #16724: URL: https://github.com/apache/grails-core/pull/16724
MongoDB 9.0 is GA (September 29, 2026; the `mongo:9.0` image is 9.0.4) and the Java driver the BOM pins, 5.12.0, is listed by MongoDB as fully compatible with it. This adds it to the MongoDB lane and makes the lane's replica-set specifications able to run there. ### Serve the replica-set specifications from the newest line flapdoodle has `EmbeddedReplicaSetSpec` turns the `mongodbContainerVersion` a build asks for into the flapdoodle line the embedded server runs, `V9_0` for `9.0`. flapdoodle 4.33.0 and 5.0.0 stop at `V8_3`, so with `-PmongodbContainerVersion=9.0` the four specifications that extend it (`MongoTransactionSpec`, `MongoTransactionDisabledSpec`, `MongoFlushListenerQuerySpec`, `MongoReadOnlyTransactionSpec`) failed at initialisation: ``` java.lang.IllegalStateException: embedded.mongodb.version=V9_0 is not a Version.Main constant. Use a name such as V8_0 or V7_0. ``` The mapping now lives in a public helper, `EmbeddedMongoVersions.lineFor(String)`: the line a version names when flapdoodle has it, otherwise the newest line flapdoodle has below it, with a warning that says which line is standing in. A version below every line flapdoodle has, or something that is not a version at all, is refused. `grails-testing-support-mongodb` compiles against flapdoodle the way it already compiles against the embedded module, and still ships neither. The testing guide gains a section on `EmbeddedReplicaSetSpec`, which was not documented, and on the mapping. ### Test against MongoDB 9.0 The matrix becomes 7.0, 8.0 and 9.0. To keep the lane's runner time flat, 7.0, the oldest supported line, now runs on Java 21 only (plus its indy entry); 8.0 and 9.0 cover Java 25. Six jobs instead of five. The lane stays on ubuntu-22.04. The comment now records the second reason it cannot move back yet: besides the `mongo:8.0` image, the embedded server the 8.0 and 9.0 lanes start (flapdoodle's 8.0.23 and 8.3.2) exits on the runners' 7.0.0 kernel, and the MongoDB fix tagged 8.0.35 was archived without a release, so it needs 8.0.36 or newer and a flapdoodle release built on it. ### Run the Groovy snapshot canary's MongoDB specifications on ubuntu-22.04 `groovy-snapshot-canary.yml` runs its shards on `ubuntu-latest`, which GitHub is moving to the ubuntu-26.04 image. That image has the same `7.0.0-1017-azure` kernel as the broken ubuntu-24.04 one, and the canary's latest run landed on it and failed with `mongo:8.0` dying before "waiting for connections" (run 39678872221). The shard job is pinned to ubuntu-22.04 for the same reason as the MongoDB lane. ### Testing - `:grails-testing-support-mongodb:test`: 18 new cases for the mapping. - `:grails-data-mongodb-core:test -PmongodbContainerVersion=9.0`: before the change 970 of 974 passed with the four replica-set specifications failing as above; with it, those four pass against the 9.0.4 container and flapdoodle's 8.3.2. - The same four at the default `7.0.19`, unchanged. - `validateRepositoryConventions`, CodeNarc on the module. The 7.x branches have the same 7.0/8.0 matrix without the embedded server, so a 9.0 entry there would be a matrix-only change if wanted. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
