This is an automated email from the ASF dual-hosted git repository.

asf-ci-deploy pushed a commit to branch asf-site-production
in repository https://gitbox.apache.org/repos/asf/grails-website.git


The following commit(s) were added to refs/heads/asf-site-production by this 
push:
     new c0c668935b8 Updating apache/grails-website asf-site-production branch 
for Github Actions run:20195869751
c0c668935b8 is described below

commit c0c668935b8e2774cc05ae08d368498f71024027
Author: jamesfredley <[email protected]>
AuthorDate: Sat Dec 13 18:15:33 2025 +0000

    Updating apache/grails-website asf-site-production branch for Github 
Actions run:20195869751
---
 blog/2016-04-01-1.html  |  8 ++++----
 blog/2016-04-01-2.html  |  8 ++++----
 blog/2017-01-20-1.html  |  8 ++++----
 blog/2017-01-20-2.html  |  8 ++++----
 blog/2017-01-20-3.html  |  8 ++++----
 blog/2017-01-20-4.html  |  8 ++++----
 blog/2017-07-12.html    |  8 ++++----
 blog/2017-10-30.html    |  8 ++++----
 blog/2018-02-08.html    |  8 ++++----
 blog/2019-01-30.html    |  8 ++++----
 blog/index.html         | 34 +++++++++++++++++-----------------
 blog/tag/quickcast.html | 22 +++++++++++-----------
 foundation/minutes.xml  |  2 +-
 rss.xml                 | 46 +++++++++++++++++++++++-----------------------
 14 files changed, 92 insertions(+), 92 deletions(-)

diff --git a/blog/2016-04-01-1.html b/blog/2016-04-01-1.html
index 343425391fb..b99fd2f6a98 100644
--- a/blog/2016-04-01-1.html
+++ b/blog/2016-04-01-1.html
@@ -134,15 +134,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2016-04-01-2.html b/blog/2016-04-01-2.html
index 292de811498..0ead3676be8 100644
--- a/blog/2016-04-01-2.html
+++ b/blog/2016-04-01-2.html
@@ -137,15 +137,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2017-01-20-1.html b/blog/2017-01-20-1.html
index f995b6c8b89..4428d4a8a34 100644
--- a/blog/2017-01-20-1.html
+++ b/blog/2017-01-20-1.html
@@ -133,15 +133,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2017-01-20-2.html b/blog/2017-01-20-2.html
index 14b7970d7c4..2215bd43208 100644
--- a/blog/2017-01-20-2.html
+++ b/blog/2017-01-20-2.html
@@ -133,15 +133,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2017-01-20-3.html b/blog/2017-01-20-3.html
index 26d3648d757..7abf3144ab0 100644
--- a/blog/2017-01-20-3.html
+++ b/blog/2017-01-20-3.html
@@ -134,15 +134,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2017-01-20-4.html b/blog/2017-01-20-4.html
index ce69236e447..9a872a43c89 100644
--- a/blog/2017-01-20-4.html
+++ b/blog/2017-01-20-4.html
@@ -134,15 +134,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2017-07-12.html b/blog/2017-07-12.html
index 34c350889f2..789b7d31628 100644
--- a/blog/2017-07-12.html
+++ b/blog/2017-07-12.html
@@ -134,15 +134,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2017-10-30.html b/blog/2017-10-30.html
index 0970ae192f0..6174acc441e 100644
--- a/blog/2017-10-30.html
+++ b/blog/2017-10-30.html
@@ -134,15 +134,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2018-02-08.html b/blog/2018-02-08.html
index 6eccd021734..966f905f120 100644
--- a/blog/2018-02-08.html
+++ b/blog/2018-02-08.html
@@ -133,15 +133,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
     </div>
diff --git a/blog/2019-01-30.html b/blog/2019-01-30.html
index f8dfc16e7b2..3bb6c2bb62a 100644
--- a/blog/2019-01-30.html
+++ b/blog/2019-01-30.html
@@ -133,15 +133,15 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
diff --git a/blog/index.html b/blog/index.html
index b9c87678231..6a09bd81e78 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -293,17 +293,17 @@
     <h2>Grails and the Recent Spring Framework RCE</h2>
   </a>
 </article></div></div><div class="threecolumns">
-      <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/grails-blog-index-4.png)'>
-  <a href='https://grails.apache.org/blog/2022-01-07-2gm-town-hall-q1.html'>
-    <h3>January 7, 2022</h3>
-    <h2>2GM Town Hall Meeting: 2022 Q1</h2>
-  </a>
-</article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a 
href='https://grails.apache.org/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html'>
     <h3>January 7, 2022</h3>
     <h2>Grails Foundation Announces First Tools and I...</h2>
   </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/grails-blog-index-4.png)'>
+  <a href='https://grails.apache.org/blog/2022-01-07-2gm-town-hall-q1.html'>
+    <h3>January 7, 2022</h3>
+    <h2>2GM Town Hall Meeting: 2022 Q1</h2>
+  </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/grails-blog-index-2.png)'>
   <a href='https://grails.apache.org/blog/2021-12-15-grails-five-one.html'>
@@ -534,15 +534,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/2018-06-22.jpg)'>
@@ -690,6 +690,12 @@
   </a>
 </article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
+  <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
+    <h3>January 20, 2017</h3>
+    <h2>Quickcast #4: Angular Scaffolding</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
     <h3>January 20, 2017</h3>
     <h2>Quickcast #3: Multi-Project Builds</h2>
@@ -700,18 +706,12 @@
     <h3>January 20, 2017</h3>
     <h2>Quickcast #6: Developing Grails® 3 Applicatio...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
     <h3>January 20, 2017</h3>
     <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
   </a>
-</article></div></div><div class="threecolumns">
-      <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
-    <h3>January 20, 2017</h3>
-    <h2>Quickcast #4: Angular Scaffolding</h2>
-  </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/2016-12-14.jpg)'>
   <a href='https://grails.apache.org/blog/2016-12-14.html'>
diff --git a/blog/tag/quickcast.html b/blog/tag/quickcast.html
index 2c098a0fce6..0173b045313 100644
--- a/blog/tag/quickcast.html
+++ b/blog/tag/quickcast.html
@@ -119,15 +119,15 @@
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
+    <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
+  <a href='https://grails.apache.org/blog/2018-08-22-2.html'>
     <h3>August 22, 2018</h3>
-    <h2>Quickcast #10: Debugging Grails® Apps</h2>
+    <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
 </article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
@@ -149,6 +149,12 @@
   </a>
 </article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
+  <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
+    <h3>January 20, 2017</h3>
+    <h2>Quickcast #4: Angular Scaffolding</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
     <h3>January 20, 2017</h3>
     <h2>Quickcast #3: Multi-Project Builds</h2>
@@ -159,18 +165,12 @@
     <h3>January 20, 2017</h3>
     <h2>Quickcast #6: Developing Grails® 3 Applicatio...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
     <h3>January 20, 2017</h3>
     <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
   </a>
-</article></div></div><div class="threecolumns">
-      <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
-  <a href='https://grails.apache.org/blog/2017-01-20-2.html'>
-    <h3>January 20, 2017</h3>
-    <h2>Quickcast #4: Angular Scaffolding</h2>
-  </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: 
url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2016-04-01-2.html'>
diff --git a/foundation/minutes.xml b/foundation/minutes.xml
index 16af4844260..a2029dc9172 100644
--- a/foundation/minutes.xml
+++ b/foundation/minutes.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Foundation | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Sat, 13 Dec 2025 16:09:37 
GMT</pubDate><item><title>Technology Advisory Board 
Meeting</title><link>https://grails.apache.org/foundation/minutes/20221128-tab.html<
 [...]
+<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Foundation | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Sat, 13 Dec 2025 18:10:49 
GMT</pubDate><item><title>Technology Advisory Board 
Meeting</title><link>https://grails.apache.org/foundation/minutes/20221128-tab.html<
 [...]
 <h3>Meeting Attendance:</h3>
 <ul>
 <li><strong>Puneet Behl</strong> - Grails Product Development Lead at Object 
Computing</li>
diff --git a/rss.xml b/rss.xml
index 43fa334bf63..f8a64c04f8b 100644
--- a/rss.xml
+++ b/rss.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Blog | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Sat, 13 Dec 2025 16:09:40 
GMT</pubDate><item><title>Apache Grails [%version] - Release 
Announcement</title><link>https://grails.apache.org/blog/2025-10-18-introducing-g
 [...]
+<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Blog | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Sat, 13 Dec 2025 18:10:52 
GMT</pubDate><item><title>Apache Grails [%version] - Release 
Announcement</title><link>https://grails.apache.org/blog/2025-10-18-introducing-g
 [...]
 <p>The Apache Grails community is excited to announce the 7.0.0 release of the 
Apache Grails Framework!</p>
 <p>This achievement reflects the dedication of our community and underscores 
the strength of the ASF's open source ecosystems.</p>
 <p>Thousands, upon thousands, of hours have gone into this release, and we are 
incredibly grateful to everyone who contributed their time and expertise to 
make it happen.</p>
@@ -2799,21 +2799,21 @@ Moving the Grails Foundation under Unity provides a 
meaningful alliance between
 <p>Because Grails applications are built on top of Spring and Spring Boot, the 
Grails team has taken this vulnerability very seriously. Our investigations 
have yielded no evidence that Grails 4.x or 5.x applications are vulnerable to 
this attack. The Grails framework has its own data-binding logic, which 
includes checks to validate that a given property a) is in a list of properties 
that may be bound to, and b) exists within the target metaClass. All other 
property candidates are ignored.</p>
 <p>The known exploit is one mechanism that can be used for this vulnerability. 
We will continue to monitor this situation and alert the Grails community of 
any vulnerabilities discovered, along with mitigation steps.</p>
 <h2>Next Steps</h2>
-<p>Although at this time, we have no reason to believe that Grails 
applications are vulnerable, as a precaution, we have released <a 
href="https://github.com/apache/grails-core/releases/tag/v5.1.6";>Grails 
5.1.6</a>.  This Grails Framework release updates our Spring dependency to 
5.3.18, which includes the upstream patch from the Spring Framework 
Team.</p>]]></description><author>Jason 
Schindler</author><guid>2022-03-31-grails-spring-rce</guid><pubDate>Thu, 31 Mar 
2022 00:00:00 GMT</pubDa [...]
-<p>A big thanks to everyone who joined us for our Q1 2GM Town Hall Meeting! 
For those of you who missed the live event, the recording is embedded below.</p>
-<p>At this quarter’s meeting, we provided an update on the latest advancements 
with the Grails and Micronaut frameworks, including a look at what is coming 
soon. We also shared the latest news and sponsors of the Grails and Micronaut 
Foundations, as well as some great live discussions and Q&amp;A with our 
panel.</p>
-<p>A special thanks to our fantastic panel of experts: James Kleeh, Puneet 
Behl, Sergio del Amo Caballero, and our awesome guest <a 
href="http://melix.github.io/blog/";>Cédric Champeau</a>.</p>
-<p>Till next time!</p>
-<p>— Jen Wiese</p>
-<p><a href="https://objectcomputing.com/download_file/5451";>Slides</a></p>
-<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/EE5flg8Hj_E"; 
frameborder="0"></iframe>]]></description><author>Jen 
Wiese</author><guid>2022-01-07-2gm-town-hall-q1</guid><pubDate>Fri, 07 Jan 2022 
00:00:00 GMT</pubDate></item><item><title>Grails Foundation Announces First 
Tools and Infrastructure 
Partner</title><link>https://grails.apache.org/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html</link><description><![CDATA[</p>
+<p>Although at this time, we have no reason to believe that Grails 
applications are vulnerable, as a precaution, we have released <a 
href="https://github.com/apache/grails-core/releases/tag/v5.1.6";>Grails 
5.1.6</a>.  This Grails Framework release updates our Spring dependency to 
5.3.18, which includes the upstream patch from the Spring Framework 
Team.</p>]]></description><author>Jason 
Schindler</author><guid>2022-03-31-grails-spring-rce</guid><pubDate>Thu, 31 Mar 
2022 00:00:00 GMT</pubDa [...]
 <p><strong>Gradle has joined the Grails Foundation as our first Tools and 
Infrastructure Partner</strong></p>
 <p>The Grails Foundation™ is truly appreciative of the tremendous support we 
receive from our sponsors. In addition to financial support, generous 
contributions of development tools, infrastructure, and other resources are 
essential to the continued evolution of the Grails® framework. Thus, we have 
established a new partnership program to recognize the companies whose 
contributions enable us to maintain and expand both the open source 
technologies and the assets we rely on to keep our co [...]
 <p>Today, we are pleased to announce that Gradle Inc, the providers of <a 
href="https://gradle.org";>Gradle Build Tool</a> and <a 
href="https://gradle.com";>Gradle Enterprise</a>, has joined the Grails 
Foundation as our first Tools and Infrastructure Partner! In support of our 
organizations' shared values and goals within the open source ecosystem, Gradle 
provides the Foundation free instances of <a href="https://gradle.com";>Gradle 
Enterprise</a>.</p>
 <p>Gradle Enterprise has helped our team to improve build times and 
test-feedback cycle times, and improve troubleshooting efficiency by combining 
root-cause analysis data with failure analytics.</p>
 <p>We’re delighted to have Gradle on board as a Tools and Infrastructure 
Partner. The Gradle team's support and excitement for the Grails technology 
over the years has been tremendous. Their engagement in our community has been 
awesome, and we look forward to continued collaboration in the years to come. 
We truly appreciate the dedication and passion Gradle has for open source 
projects. On behalf of the Grails Foundation, thank you! Initiatives like these 
that support and grow our Framew [...]
 <p>The Grails Foundation is a not-for-profit organization that supports the 
Grails framework. The Foundation not only builds and supports an ecosystem of 
documentation, functionality, and services, it promotes and evangelizes the 
Framework as a leading technology in the JVM space. The generous support of our 
Corporate Sponsors allows the Foundation to continue to ensure technical 
innovation and advancement of the Framework as a free and open public-use 
software development toolkit for ou [...]
-<p>To learn more about how you or your organization can support this 
Foundation, please <a href="/">check us 
out</a>!</p>]]></description><author>Jen 
Wiese</author><guid>2022-01-07-gradle-enterprise-tools-and-infrastructure-partner</guid><pubDate>Fri,
 07 Jan 2022 00:00:00 GMT</pubDate></item><item><title>Grails Framework 5.1 
Released</title><link>https://grails.apache.org/blog/2021-12-15-grails-five-one.html</link><description><![CDATA[</p>
+<p>To learn more about how you or your organization can support this 
Foundation, please <a href="/">check us 
out</a>!</p>]]></description><author>Jen 
Wiese</author><guid>2022-01-07-gradle-enterprise-tools-and-infrastructure-partner</guid><pubDate>Fri,
 07 Jan 2022 00:00:00 GMT</pubDate></item><item><title>2GM Town Hall Meeting: 
2022 
Q1</title><link>https://grails.apache.org/blog/2022-01-07-2gm-town-hall-q1.html</link><description><![CDATA[</p>
+<p>A big thanks to everyone who joined us for our Q1 2GM Town Hall Meeting! 
For those of you who missed the live event, the recording is embedded below.</p>
+<p>At this quarter’s meeting, we provided an update on the latest advancements 
with the Grails and Micronaut frameworks, including a look at what is coming 
soon. We also shared the latest news and sponsors of the Grails and Micronaut 
Foundations, as well as some great live discussions and Q&amp;A with our 
panel.</p>
+<p>A special thanks to our fantastic panel of experts: James Kleeh, Puneet 
Behl, Sergio del Amo Caballero, and our awesome guest <a 
href="http://melix.github.io/blog/";>Cédric Champeau</a>.</p>
+<p>Till next time!</p>
+<p>— Jen Wiese</p>
+<p><a href="https://objectcomputing.com/download_file/5451";>Slides</a></p>
+<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/EE5flg8Hj_E"; 
frameborder="0"></iframe>]]></description><author>Jen 
Wiese</author><guid>2022-01-07-2gm-town-hall-q1</guid><pubDate>Fri, 07 Jan 2022 
00:00:00 GMT</pubDate></item><item><title>Grails Framework 5.1 
Released</title><link>https://grails.apache.org/blog/2021-12-15-grails-five-one.html</link><description><![CDATA[</p>
 <p>The Grails Foundation™ is pleased to announce a new minor release: <a 
href="https://github.com/apache/grails-core/releases/tag/v5.1.0";><strong>Grails 
framework 5.1</strong></a>!</p>
 <p>This release of the Grails framework includes a number of bug fixes and 
Gradle 7.2 compatibility changes (the Gradle task definitions with <a 
href="https://docs.gradle.org/7.0/userguide/upgrading_version_6.html#task_validation_problems_are_now_errors";>incorrectly
 defined input output will now fail the build</a>), plus a bunch of 
dependencies updates. For more information, please check the <a 
href="https://github.com/apache/grails-core/releases/tag/v5.1.0";><strong>Grails 
5.1 release no [...]
 <h2>Updated Dependencies</h2>
@@ -3825,15 +3825,15 @@ class Team {
 <li>2.14.1.1 for Grails 2.x</li>
 <li>2.15.1 for Grails 3 and Java 7</li>
 <li>3.0.6 for Grails 3 and Java 8</li>
-</ul>]]></description><author>Iván 
López</author><guid>2018-09-23</guid><pubDate>Sun, 23 Sep 2018 00:00:00 
GMT</pubDate></item><item><title>Quickcast #11: Grails® Profiling with 
YourKit</title><link>https://grails.apache.org/blog/2018-08-22-2.html</link><description><![CDATA[</p>
-<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html";><span 
class="hashtag">#quickcast</span></a> <a 
href="https://grails.apache.org/blog/tag/yourkit.html";><span 
class="hashtag">#yourkit</span></a></p>
-<p>In this Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and 
Micronaut) team member, <a 
href="https://objectcomputing.com/products/2gm-team#assar";>Nirav Assar</a>, 
demonstrates how to use YourKit to profile a Grails application and spot CPU 
problems and heap and garbage collection issues.</p>
-<p>Grails Quickcasts, brought to you through a partnership between <a 
href="https://objectcomputing.com/";>Object Computing, Inc.</a> (OCI) and <a 
href="https://dzone.com/";>DZone</a>, provide bite-sized tutorials to help you 
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/NJ_T5g4bBeY"; 
frameborder="0"></iframe>]]></description><author>Nirav 
Assar</author><guid>2018-08-22-2</guid><pubDate>Wed, 22 Aug 2018 00:00:00 
GMT</pubDate></item><item><title>Quickcast #10: Debugging Grails® 
Apps</title><link>https://grails.apache.org/blog/2018-08-22-1.html</link><description><![CDATA[</p>
+</ul>]]></description><author>Iván 
López</author><guid>2018-09-23</guid><pubDate>Sun, 23 Sep 2018 00:00:00 
GMT</pubDate></item><item><title>Quickcast #10: Debugging Grails® 
Apps</title><link>https://grails.apache.org/blog/2018-08-22-1.html</link><description><![CDATA[</p>
 <p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html";><span 
class="hashtag">#quickcast</span></a></p>
 <p>In this 13-minute Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and 
Micronaut) team member, <a 
href="https://objectcomputing.com/products/2gm-team#lopez";>Iván López</a>, 
demonstrates a variety of ways to debug Grails core code and the Grails CLI 
(command line interface). Developers may use these tips to fix issues or 
contribute enhancements to the core Grails framework.</p>
 <p>Grails Quickcasts, brought to you through a partnership between <a 
href="https://objectcomputing.com/";>Object Computing, Inc.</a> (OCI) and <a 
href="https://dzone.com/";>DZone</a>, provide bite-sized tutorials to help you 
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/y69Cr_hYUCA"; 
frameborder="0"></iframe>]]></description><author>Iván 
López</author><guid>2018-08-22-1</guid><pubDate>Wed, 22 Aug 2018 00:00:00 
GMT</pubDate></item><item><title>Mock vs Stub vs 
Spy</title><link>https://grails.apache.org/blog/2018-06-22.html</link><description><![CDATA[</p>
+<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/y69Cr_hYUCA"; 
frameborder="0"></iframe>]]></description><author>Iván 
López</author><guid>2018-08-22-1</guid><pubDate>Wed, 22 Aug 2018 00:00:00 
GMT</pubDate></item><item><title>Quickcast #11: Grails® Profiling with 
YourKit</title><link>https://grails.apache.org/blog/2018-08-22-2.html</link><description><![CDATA[</p>
+<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html";><span 
class="hashtag">#quickcast</span></a> <a 
href="https://grails.apache.org/blog/tag/yourkit.html";><span 
class="hashtag">#yourkit</span></a></p>
+<p>In this Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and 
Micronaut) team member, <a 
href="https://objectcomputing.com/products/2gm-team#assar";>Nirav Assar</a>, 
demonstrates how to use YourKit to profile a Grails application and spot CPU 
problems and heap and garbage collection issues.</p>
+<p>Grails Quickcasts, brought to you through a partnership between <a 
href="https://objectcomputing.com/";>Object Computing, Inc.</a> (OCI) and <a 
href="https://dzone.com/";>DZone</a>, provide bite-sized tutorials to help you 
maximize your productivity with the Framework.</p>
+<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/NJ_T5g4bBeY"; 
frameborder="0"></iframe>]]></description><author>Nirav 
Assar</author><guid>2018-08-22-2</guid><pubDate>Wed, 22 Aug 2018 00:00:00 
GMT</pubDate></item><item><title>Mock vs Stub vs 
Spy</title><link>https://grails.apache.org/blog/2018-06-22.html</link><description><![CDATA[</p>
 <p>Tags: <a href="https://grails.apache.org/blog/tag/spock.html";><span 
class="hashtag">#spock</span></a></p>
 <h2>Introduction</h2>
 <p><a href="https://spockframework.org/";>Spock</a> provides three powerful yet 
distinct, tools that make working with collaborators easier:</p>
@@ -5184,7 +5184,12 @@ info.app.grailsVersion=3.2.5
 <p>GORM 6.1 will become the default version of GORM to be used in the upcoming 
Grails 3.3, in the meantime you can use GORM 6.1 in Grails 3.2 simply by 
changing the <code>gormVersion</code> setting in 
<code>gradle.properties</code>:</p>
 <pre><code class="language-groovy">gormVersion=6.1.0.RELEASE
 </code></pre>
-<p>To celebrate the release we have prepared the first of a series of new 
guides to cover GORM 6.1. Among the many new features are huge improvements to 
support Neo4j. Using the official Neo4j sample application, the new guide 
describes how you can <a 
href="https://guides.grails.org/neo4j-movies/guide/index.html";>build a graph 
application with the Grails framework, GORM 6.1 and Neo4j</a>! 
Enjoy!</p>]]></description><author>Graeme 
Rocher</author><guid>2017-03-27</guid><pubDate>Mon, 27 Mar [...]
+<p>To celebrate the release we have prepared the first of a series of new 
guides to cover GORM 6.1. Among the many new features are huge improvements to 
support Neo4j. Using the official Neo4j sample application, the new guide 
describes how you can <a 
href="https://guides.grails.org/neo4j-movies/guide/index.html";>build a graph 
application with the Grails framework, GORM 6.1 and Neo4j</a>! 
Enjoy!</p>]]></description><author>Graeme 
Rocher</author><guid>2017-03-27</guid><pubDate>Mon, 27 Mar [...]
+<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html";><span 
class="hashtag">#quickcast</span></a> <a 
href="https://grails.apache.org/blog/tag/rest.html";><span 
class="hashtag">#rest</span></a></p>
+<p>In this Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and 
Micronaut) team member, <a 
href="https://objectcomputing.com/products/2gm-team#kleeh";>James Kleeh</a>, 
walks you through the process of using the Angular scaffolding for Grails apps 
to build a fully functional web app, using a simple blog format for 
demonstration.</p>
+<p>The tutorial explains how to have the Grails framework set up a REST 
endpoint and all the Angular modules needed to get the web app running.</p>
+<p>Grails Quickcasts, brought to you through a partnership between <a 
href="https://objectcomputing.com/";>Object Computing, Inc.</a> (OCI) and <a 
href="https://dzone.com/";>DZone</a>, provide bite-sized tutorials to help you 
maximize your productivity with the Framework.</p>
+<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/tT4BdlRFAis"; 
frameborder="0"></iframe>]]></description><author>James 
Kleeh</author><guid>2017-01-20-2</guid><pubDate>Fri, 20 Jan 2017 00:00:00 
GMT</pubDate></item><item><title>Quickcast #3: Multi-Project 
Builds</title><link>https://grails.apache.org/blog/2017-01-20-1.html</link><description><![CDATA[</p>
 <p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html";><span 
class="hashtag">#quickcast</span></a></p>
 <p>In this video, Grails<sup>®</sup> framework co-founder Graeme Rocher walks 
you through multi-project builds in Grails apps.</p>
 <p>The Grails framework does a few handy things with multi-project builds and 
plugins, not the least of which being that Grails compiles your plugins first 
and puts the class and resources of those plugins directly in the classpath. 
This lets you make changes to your plugins and instantly see those changes in 
your build.</p>
@@ -5201,12 +5206,7 @@ info.app.grailsVersion=3.2.5
 <p>In fewer than 18 minutes, Jeff describes several techniques for retrieving 
configuration values at runtime and discusses the pros and cons of each. Visit 
<a 
href="https://objectcomputing.com/news/2016/08/31/retrieving-config-values-grails-3";>this
 Grails blog post</a> for an accompanying article.</p>
 <p>For this Quickcast, you’ll need no more than a basic understanding of the 
Grails framework.</p>
 <p>Grails Quickcasts, brought to you through a partnership between <a 
href="https://objectcomputing.com/";>Object Computing, Inc.</a> (OCI) and <a 
href="https://dzone.com/";>DZone</a>, provide bite-sized tutorials to help you 
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/Qw5hjwT9EOc"; 
frameborder="0"></iframe>]]></description><author>Jeff Scott 
Brown</author><guid>2017-01-20-3</guid><pubDate>Fri, 20 Jan 2017 00:00:00 
GMT</pubDate></item><item><title>Quickcast #4: Angular 
Scaffolding</title><link>https://grails.apache.org/blog/2017-01-20-2.html</link><description><![CDATA[</p>
-<p>Tags: <a href="https://grails.apache.org/blog/tag/quickcast.html";><span 
class="hashtag">#quickcast</span></a> <a 
href="https://grails.apache.org/blog/tag/rest.html";><span 
class="hashtag">#rest</span></a></p>
-<p>In this Quickcast, 2GM (Groovy, Grails<sup>®</sup> framework, and 
Micronaut) team member, <a 
href="https://objectcomputing.com/products/2gm-team#kleeh";>James Kleeh</a>, 
walks you through the process of using the Angular scaffolding for Grails apps 
to build a fully functional web app, using a simple blog format for 
demonstration.</p>
-<p>The tutorial explains how to have the Grails framework set up a REST 
endpoint and all the Angular modules needed to get the web app running.</p>
-<p>Grails Quickcasts, brought to you through a partnership between <a 
href="https://objectcomputing.com/";>Object Computing, Inc.</a> (OCI) and <a 
href="https://dzone.com/";>DZone</a>, provide bite-sized tutorials to help you 
maximize your productivity with the Framework.</p>
-<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/tT4BdlRFAis"; 
frameborder="0"></iframe>]]></description><author>James 
Kleeh</author><guid>2017-01-20-2</guid><pubDate>Fri, 20 Jan 2017 00:00:00 
GMT</pubDate></item><item><title>G3 Summit 2016 
Wrap-up!</title><link>https://grails.apache.org/blog/2016-12-14.html</link><description><![CDATA[</p>
+<iframe width="100%" height="560" 
src="https://www.youtube-nocookie.com/embed/Qw5hjwT9EOc"; 
frameborder="0"></iframe>]]></description><author>Jeff Scott 
Brown</author><guid>2017-01-20-3</guid><pubDate>Fri, 20 Jan 2017 00:00:00 
GMT</pubDate></item><item><title>G3 Summit 2016 
Wrap-up!</title><link>https://grails.apache.org/blog/2016-12-14.html</link><description><![CDATA[</p>
 <p><img src="2016-12-14-img01.jpg" alt="The OCI Grails team at G3 Summit 2016" 
/></p>
 <p>Last month, nearly the entire <a 
href="https://objectcomputing.com/products/2gm-team";>2GM (Groovy, 
Grails<sup>®</sup> framework, and Micronaut) team</a> from [Object Computing, 
Inc.] (https://objectcomputing.com/) (OCI) converged on Fort Lauderdale for the 
inaugural edition of the G3 Summit, the conference for the Apache Groovy, 
Grails framework, and Gradle Community. The event is organized by <a 
href="https://www.nofluffjuststuff.com/home/main";>No Fluff Just Stuff</a> and 
is a fantas [...]
 <p>OCI team members presented over 30 workshops and breakout sessions during 
the event, in addition to socializing with attendees between sessions and after 
hours. We’ve asked a few team members to share their experiences at the 
conference. We hope you will join us next year!</p>


Reply via email to