<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mingfu Qin</title>
    <description>The latest articles on DEV Community by Mingfu Qin (@mingfuqin).</description>
    <link>https://dev.to/mingfuqin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2618757%2Fb23563fb-1b87-4651-89e3-de48c79e8ee1.png</url>
      <title>DEV Community: Mingfu Qin</title>
      <link>https://dev.to/mingfuqin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mingfuqin"/>
    <language>en</language>
    <item>
      <title>Upgrading Grails from Version 3.1.9 to 5.3.6</title>
      <dc:creator>Mingfu Qin</dc:creator>
      <pubDate>Thu, 26 Dec 2024 20:48:54 +0000</pubDate>
      <link>https://dev.to/mingfuqin/upgrading-grails-from-version-319-to-536-33lj</link>
      <guid>https://dev.to/mingfuqin/upgrading-grails-from-version-319-to-536-33lj</guid>
      <description>&lt;p&gt;Over the past few months, I’ve enjoyed about 300 hours of coding, even though they were scattered between meetings, team changes, production issues, and grocery runs. I still like working on old stuff, so these hours were spent on upgrading a legacy microservice through multiple Grails versions: 3.1.9 → 3.3.6 → 4.1.4 → 5.3.6. It’s been an interesting ride since I haven’t had much hands-on experience with Groovy and Grails before. It feels like stepping back in time to trace Grails' footprint, especially now that its founder has shifted focus to the Micronaut framework.&lt;/p&gt;

&lt;p&gt;Along the way, I compiled upgrade instructions from scattered online sources, enriched them with my own notes, resolved issues, and added tips.&lt;/p&gt;

&lt;p&gt;The upgrade was quite a bit of work, so I naturally turned to Copilot. It was interesting to see that Copilot struggled with the upgrades from versions 3 to 4, only to suddenly perform much better during the 4 to 5 upgrade. In the end, I spent about 200 hours cleaning up and upgrading 3.1.x to 3.3.6, 150 hours upgrading 3.3.6 to 4.1.4, and just a week (with one bug) to complete the upgrade to 5. The experience with Copilot is part of why I decided to publish this document—maybe it’ll help others (and AI) tackle older frameworks more easily!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.google.com/document/d/e/2PACX-1vQ_EtJs8PWZ8VOMOO_7SDvUfNi-FtdRBSD2RTZcBwP3i85vWY8DuvxzbA8Vvb0kGL2JaFDm0OEejLkL/pub" rel="noopener noreferrer"&gt;Upgrading Grails from Version 3.1.9 to 5.3.6&lt;/a&gt;&lt;/p&gt;

</description>
      <category>grails</category>
      <category>upgrade</category>
    </item>
  </channel>
</rss>
