It sounds like all these issues have workarounds. I am not sure if it really warrants coupling Grails 7 back to using abandoned sitemesh 2 code from 2009 (that's 16 years ago!)
My schedule frees up in 2 weeks. I am pretty sure I could fix any outstanding bugs at that time. On 2025/07/02 17:34:10 James Daugherty wrote: > Thanks Scott for responding. We're not against Sitemesh 3, but we need your > help to fix these issues and we don't think we can get that done in a > timely manner. Some of those tickets have been open for 8 months. > > As for Sitemesh 2.6.0, if the intention is to never release it going > forward, we had discussed forking it into the grails project. This will be > especially important if you think there won't be maintenance on it. > > As for adopting Sitemesh 2.7.0, I noticed the buffer changes in 2.7.0 and > we would have to make it further compatible with 7 to adopt the latest > release. If you can help us with these compatibility issues, we're happy > to adopt in the shorter term. > > Our main issue is getting Grails 7 released though and the community > feedback we've received is there are too many issues to keep delaying > Grails 7. > > -James > > On Wed, Jul 2, 2025 at 1:26 PM Scott Murphy Heiberg <scottheib...@apache.org> > wrote: > > > Sitemesh 3 was a complete rewrite that dramatically reduced the complexity > > of the rendering process. It was also the introduction of the Apache 2 > > license. I would recommend just submitting a PR to Sitemesh 3 with > > whatever fixes are needed. > > > > Sitemesh 2.6.0 was never meant to be a replacement for anything and was > > just a quick patch for a codebase abandoned in 2009. It is a forked release > > with no future. > > > > If you were to revert to Sitemesh 2, the proper course would be to use > > Sitemesh 2.7.x > > > > On 2025/07/02 11:38:52 James Daugherty wrote: > > > Hi Everyone, > > > > > > I started investigating a ticket related to forwarding not working in a > > > Grails controller on 7.0.0-M4. As part of that I made this discovery: > > > > > https://github.com/apache/grails-core/issues/14193#issuecomment-3017157073 > > > It seems the DispatcherServlet from Spring is designed to handle > > multiple > > > calls methods that cause the response to render and close. The > > dispatcher > > > chooses the right one by the committed state of the response. > > > > > > From my investigation, the Sitemesh 3 implementation appears to use a > > > filter to render its output after the DispatcherServlet is processed - so > > > the response state is never committed. I think we could update the > > > GrailsDispatcherServlet to handle the various scenarios that the > > > DispatcherServlet handles, but I'm not sure this is practical for Grails > > 7 > > > given the delays we have already had. We would also be deviating from > > how > > > Spring MVC controllers are rendered and this logic doesn't appear that > > > simple. Moreover, we still have several outstanding tickets related to > > the > > > sitemesh 3 upgrade: > > > > > > * Apr 2025 - https://github.com/apache/grails-core/issues/14193 - > > > forwarding from a controller > > > * Jan 2025 - https://github.com/apache/grails-core/issues/13988 - nested > > > layouts > > > * Feb 2005 - https://github.com/apache/grails-core/issues/14197 - $raw > > in > > > titles > > > * Nov 2024 - https://github.com/apache/grails-core/issues/13849 - > > layout by > > > convention > > > > > > We have reached out to the developer of Sitemesh 3 on most of these > > tickets > > > (via ticket comments and direct slack messages over the past few months); > > > we have yet to receive any work or progress on them. The oldest of which > > is > > > 8+ months old. I'm skeptical these can be finished in a reasonable time > > > frame. > > > > > > > > > Given the lack of support, the multiple issues found by users, and the > > > current state of Grails 7 being delayed by these tickets, I would like to > > > propose we revert back to Sitemesh 2.6.0. Assuming we confirm all of > > these > > > issues are fixed, we would only have the remaining license, asset plugin > > > release, & ASF release related issues to fix before we could release > > Grails > > > 7. > > > > > > > > > I have gone ahead and reverted back to Sitemesh 2.6.0 in the issue14193 > > > branch (https://github.com/apache/grails-core/tree/issue14193). As > > part of > > > switching back to v2, I discovered the following is now fixed: > > > * async rendering > > > * async error handling > > > * layout specified by a controller property > > > * layout specified in controller property applied to a GSP that does not > > > contain a root html tag > > > > > > It seems the sitemesh3 upgrade was performed during a time when the > > project > > > wasn't running all of its tests, so we are only now learning the scope of > > > its impact. I think we can still be open to switching to Sitemesh 3 in > > > Grails 8. Especially if we get the necessary support, but otherwise, we > > > can continue with 2.x. > > > > > > Please note as part of this branch revert, I've also taken a closer look > > at > > > the Sitemesh licensing requirements and made a first pass being > > compatible > > > with the Sitemesh license. We'll still have to follow-up with ASF legal > > to > > > ensure we're compliant since the license is a derivative of the ASF > > > license. > > > > > > -James > > > > > >