Hi Everyone,

I have opened https://github.com/apache/grails-core/pull/14324 to merge these 
repositories.  

Here are some observations after combining these builds:
* Here are some previous builds in GitHub actions:
- 18m 57s - https://github.com/apache/grails-core/actions/runs/12301840242
- 19m 58s - https://github.com/apache/grails-core/actions/runs/12284580736
- 20m 4s  - https://github.com/apache/grails-core/actions/runs/12244609684


* Here's the GitHub build for the PR: 
https://github.com/apache/grails-core/actions/runs/14578304227
- 27m 23s is the total build time, but the majority of the builds finish 
between 15-20 minutes.  
- we now matrix 24 builds across Windows, Mac, & Linux and across JVM 17, 21, & 
23 for the functional tests, mongo, hibernate, core.  
- We used to matrix 12 builds only in Core.  We have never previously tested 
Mac & Windows on projects like data mapping. 
- the longest running builds are the grails-core builds; the timing varies on 
these builds but the minimum time is 15m 35s, and the longest is 27m 7s.  


* Running a build locally on the latest mac hardware: 
- Run a clean & stop all running gradle daemons, then run `./gradlew build 
--rerun-tasks` takes 5m 31s
- This build time includes being connected to https://ge.grails.org 


* By default, the gradle build locally should run the project that changes.  If 
you want to run the full test suite, run with `--rerun-tasks`.  If you want to 
opt in or out of various tests, see DEVELOPMENT.md for various properties that 
will control which tests run.


* The build is highly parallelized and switched to lazy evaluation.  I've made 
numerous changes that will likely have some growing pains as we adopt the 
combined build.  There is still work to do, including: 
- fixing the documentation generation so it doesn't have to regenerate every 
time.  
- fixing the groovydoc generation so it doesn't have to regenerate every time.
- making assetCompile cacheable
- see the PR for full notes on what's changed


* I was able to fix the mongo projects so they can a) run in parallel b) 
startup containers per thread.  The build is rather aggressive at spinning up 
containers based on the number of threads.  You can control the parallel 
behavior by setting the property 'maxTestParallel'.  It will default to 75% of 
the available processes on your system (or 1, whichever is larger).  If we ever 
get agents with more CPU / memory, we could likely significantly reduce build 
times.


Regards,
James

On 2025/04/21 15:36:15 James Daugherty wrote:
> Hi Everyone,
> 
> The vote for merging the grails-geb & grails-data-mapping repositories into
> the grails-core repo[1] has passed.
> 
> The vote has passed with SIX +1 binding votes.  There were TWO +1
> non-binding votes.
> 
> We'll proceed with getting this merged in the coming week.
> 
> [1] https://lists.apache.org/thread/sjdokzl374nzc5hgywsjm440hg68dczo
> 

Reply via email to