I intend to respond to the actual question of this thread in a separate reply, but to respond to Henrique on performance ...
Work has already started on improving the start up time, Grails 8 is delivering numerous improvements here: 1. parallel bean initialization - we have to ditch bean overriding to do this. Grails 8 is the first release working toward this and I think the majority have been addressed. Once we split our dependencies out better, we can start making use of `@Bean(bootstrap = BACKGROUND)` https://medium.com/@semitaho/boost-spring-startup-speed-background-bean-initialization-in-spring-6-2-47c56d813521 seems to give a reasonable summary of this. This will be huge when we can switch to this. Your work will scale with your processor at this point. 2. compile time optimizations - we started generating "indexes" of compile time data already in Grails 8. Taglibs are a good example here. We have current plans to bring this across the application - url mappings, etc. All of the runtime based calculations can then be compile time based and will be a significant application boost (not just startup) 3. gradle improvements - I started in Grails 7 rewriting a large portion of the Grails Build & Gradle code. We have continued that work gradually, but eventually the Grails Gradle Plugin will be fully lazy with no afterEvaluate calls & support the configuration cache. As we begin to adopt more caching features of Gradle, steps will run less, which means the time goes to zero for values not changed. This affects multi-project builds the most. If you used Grails 6 and went to Grails 7, you should have already noticed this benefit when running tests as most of my work prevented unneeded reruns of tasks. 4. multi project builds - I've argued for a while now that we should have better tooling to support multi-project builds. I'd go further to say that most Grails projects, or at least ones of any significant size, should be multi project builds. Gradle's support for incremental groovy compilation is not great and hasn't improved, but its support for multi-project builds is. On large code bases, splitting your code into separate projects significantly impacts the performance of application start up. If your actual app has 10 base projects instead of one monolith, think of it this way: no changes to those 10 base projects means no recompilation, processing of assets, etc. 5. better support for AOT / CRaC (https://openjdk.org/projects/crac/) / Native - Scott has already been contributing numerous changes to support these technologies. As they are adopted in Grails, you should see significant performance benefits on startup. Project Leyden ( https://openjdk.org/projects/leyden/) is the upstream Java project focused on this problem. 6. I'm sure I've forgotten others, but these were the ones I could think of off the top of my head. Concerning the distribution, the first download of dependencies will likely always be slow since they are downloaded & pulled into the Gradle cache on the first pull. Every pull after that shouldn't be slow though since it's cached locally. I've never had anyone raise this as a concern, and I'm interested to know if this is a "first time" issue or an ongoing issue. -James On Mon, Oct 5, 2026 at 9:49 AM Henrique Lobo Weissmann <[email protected]> wrote: > I think this is a good idea James, specially if Groovy 6 could bring > improved startup times (specially on development mode). One of the main > issues while showing Grails to new users is the startup time on development > mode on the CLI. > > Going further James, I have a suggestion: is there anything we could do to > improve this startup time on development mode, maybe provide more libs on > the Grails distribution to avoid the fetch of these dependencies from the > Internet? > > Em dom., 4 de out. de 2026 às 22:04, James Fredley < > [email protected]> > escreveu: > > > Hi everyone, > > > > The 8.0.0 vote is out, which is is an AWESOME accomplishment. > > > > While that finishes, I want to discuss what we do next, before we spend > > time on the wrong branch. > > > > Proposal: do not release an 8.1.x on Spring Boot 4.2 in Q1 2027. Ship > > 8.0.x, move straight to 9.0.x on Groovy 6 (snapshots already exist), and > > pick up Spring Boot 4.2 in a 9.1.x release after that GA is out. > > > > The schedule would look like this: > > > > - 8.0.0 on Spring Boot 4.1 and Groovy 5 - now > > - 9.0.0 on Spring Boot 4.1 and Groovy 6 targets late November or early > > December. Those snapshots are already running. > > - I expect Spring Boot 4.2 GA around Christmas or early January rather > > than the usual late November window. 4.1 landed in June, about a month > > late. Spring Boot 4.2.0-M2 shipped on 24 September. The 4.2.0-RC1 > > milestone is 29 of 30 issues closed > > (https://github.com/spring-projects/spring-boot/milestone/433). The > > 4.2.0 GA milestone is open, but Spring has not set a due date > > (https://github.com/spring-projects/spring-boot/milestone/434). > > - After Spring Boot 4.2 GA, we release 9.1 on top of 9.0 in Q1 2027 > > - 8.1 stays on the shelf unless we find a real reason to release it. > > > > Two release trains are driving this. We still cut a Grails major when > > Spring Boot cuts a major. Groovy now looks like it will cut a major > > about once a year, and that will also be a Grails major. I do not think > > we should also keep chasing each Spring Boot minor on the old Groovy > > line. Cleaner cutoff: a Grails line stays on the Spring Boot minor it > > shipped with, and the next Spring Boot minor lands on the new Groovy > major. > > > > The merge cost is the main reason to skip an 8.1 release. Spring Boot > > 4.2 changes will not apply cleanly to the Groovy 6 work already on > > 9.0.x. They will apply to 9.1, which is where we want them. Doing that > > upgrade for an 8.1 release and again for 9.1 is the same work twice. > > Those changes might get merged to the wrong line, replayed, or dropped. > > We could try to keep lines working on both Spring Boot 4.1 (Grails 8.0.x > > and 9.0.x) and 4.2(Grails 8.1.x and 9.1.x), but that is not worth it for > > a line most people will leave quickly or skip entirely. > > > > 9.0 should be a short release. If it lands in late November or early > > December, 9.1 can follow soon after the Spring Boot 4.2 GA in Q1 2027. > > Users will likely move to latest Groovy, especially with the performance > > boost. > > > > This does not end 8.0.x. Patch releases on 8.0.x continue as usual. The > > only question is whether we spend a minor release moving Groovy 5 onto > > Spring Boot 4.2. > > > > Does this match what others expect for the next few months? > > > > Reasons that would change my mind: users who cannot move to Groovy 6, a > > compatibility promise we have already made, or a merge approach that is > > cheaper than it looks. > > > > Thanks, > > James Fredley > > VP, Apache Grails > > PMC Chair > > > > > -- > *Henrique Lobo Weissmann* > Diretor Técnico - itexto > Telefone / WhatsApp - +55 31 9 9226 0459 > > https://itexto.com.br >
