I've been doing some thinking about Geb and what things I'd like to get done in the next year.
This isn't so much announcing a formal roadmap as asking folks for a wishlist for Geb. Here are some of the bigger bits that are on my radar. Does anyone else have things on theirs? *Bugfixes* *Better thread safety in GebTestManager* https://github.com/apache/groovy-geb/issues/201 and other issues make me think that GebTestManager makes some assumptions, particularly around how JUnit lifecycle methods handle tests, that just don't hold in all cases. My hunch is that there are a lot of bugs embedded in this for parallel execution. Some part of me thinks that the deep answer here is, at least in part, to use newer Java concurrency constructs, such as structured concurrency <https://openjdk.org/jeps/453>, but that raises some backward compatibility concerns. *Projects* *Testcontainers integration* Carl Marcum's work back in October to provide some easy-to-use integration between Geb and Testcontainers seems like a great thing to bring into the Geb project as a first class module. I'd outlined some thoughts on that <https://lists.apache.org/thread/k2z0nzdgxrzx2kx429pk6sddtd0r4g5n> in another thread, but how do others feel? *Release automation* I let this lapse a bit, but that may be a bit of a saving grace. Apache's Trusted Release Platform <http://github.com/apache/tooling-trusted-releases> seems to be coming along, based on the talk in their Slack channel <https://the-asf.slack.com/archives/C049WADAAQG>. *Bring example projects home* We still have a bunch of example projects out in the old Github org. I think those are probably best brought in as included builds in the main Geb repo. This is basically what JMH does with their samples project <https://github.com/openjdk/jmh/tree/master/jmh-samples>, and I think it would be a bit easier to maintain than scattered repositories. *Geb 9* I'd also like to think ahead to breaking/backwards-incompatible changes that we'd like to make. 1. Require Java 25 to build, compile to Java 11 as target. Groovy 5 requires Java 17 to build, Java 11 as target, so I figured we should be conservative in what we allow, but aggressive in the tooling we use. 2. Groovy 5 (and supporting version of Spock, 2.4-groovy-5.0) 3. Move from javax -> jakarta What about BiDi? BiDirectional functionality in WebDriver <https://www.w3.org/TR/webdriver-bidi/> is something we need to think about how to best expose in Geb. I haven't thought deeply about this, and it frankly seems like the biggest blind spot that needs some light shined on it. What about AI? AI-based testing obviously has huge implications for browser testing. https://www.browserstack.com/guide/selenium-with-ai is a good read for some near-to-hand reaches that Geb could follow or build on. What other things should we be considering in this vein? Thanks for any thoughts. Happy New Year! Best, Jonny
