After discussing this further this afternoon, I have changed my opinion from splitting grails-forge in half and am now onboard with bringing the whole grails-forge project over as a sub gradle project in grails-core.
Splitting it in half was convenient for grails development volunteers, but would have made it more difficult for companies forking grails-forge, as their internal custom application generator. It appears the whole project can be merged in a way that makes it streamlined for all. Having a single release workflow, instead of two, is important for release vote approval and review. James Fredley On 2025/06/16 19:28:18 James Daugherty wrote: > I discussed this more with James F to see if we can find other solutions. > I still think we should bring the full thing over. > > Some other thoughts: > 1. I am proposing we merge grails-forge as a sub gradle project to > grails-core only to facilitate easier publishing / building. This means > locally there won't be any overhead if you run ./gradlew build in grails > core. You'll still have to run gradle commands under the `grails-forge` > directory to test forge. > 2. By merging the full repo into grails-core as a nested gradle project, we > will get test coverage end-to-end as part of any PR. (we'll add steps to > build grails-forge & test it). > 3. Any upgrade to grails-forge-core will still have to be made against the > grails-forge repositories. If we split these, we will have the old problem > of having separate repos - publishing in core, only to find out forge is > broken. This was one of the strongest lessons of the grails mono repo. > 4. Anyone wanting to fork forge for custom app generation, will have to > fork core + fork forge to do so if we split it. If we combine into one, it > helps both us and anyone wanting to fork forge since they can just change > the sub gradle project 'grails-forge' inside of grails-core. > 5. Having them both in grails-core means we have almost all steps in a > single release workflow with gated steps to release. The exception will be > the deployment of forge-api itself. > > -James > > > > On Mon, Jun 16, 2025 at 12:37 PM James Fredley <jamesfred...@apache.org> > wrote: > > > I lean towards merging the following 3 project into grails-core to > > simplify the release process and review during the release vote. > > > > grails-forge-core > > grails-forge-cli > > grails-cli > > > > And leaving the following, which are only used for the next.grails.org, > > snapshot.grails.org, etc. instances by start.grails.org in the > > grails-forge repository. > > > > grails-forge-analytics-postgres > > grails-forge-api > > grails-forge-web-netty > > > > James Fredley > > > > > > On 2025/06/15 13:59:15 James Daugherty wrote: > > > Hi Everyone, > > > > > > One of the issues we found as part of our release process is that the > > > projects: > > > > > > grails-forge-core > > > grails-forge-cli > > > grails-cli > > > > > > exist in the grails-forge repo. While they exist in a separate repo > > > (grails-forge), we still have to produce a combined source & binary > > > distribution with these artifacts for any grails-core release. This is > > ASF > > > policy. Having a separate repo complicates the release workflow for > > grails: > > > > > > 1. We have to provide instructions on how to compile both core & forge > > from > > > a source zip. > > > 2. Those instructions ideally use the same build process we use in CI. > > > Since we publish to a shared maven repo, this is currently not possible > > > without a custom build script or change to the local code to publish to > > > maven local. > > > 3. We have to manage a grails release across multiple tags, repos, and > > > workflows. > > > > > > #1 was raised by the groovy PMC as a concern and #2 makes this > > > non-trivial. The concern raised by the groovy PMC is likely to act as a > > > blocker to future releases if we do not address this (it's an ASF > > > requirement). For this reason, I'd like to discuss merging some or all > > of > > > grails-forge into core. If we merge some, it would only be the projects > > > that are used in a grails-core release (listed above). If we merge all > > ,it > > > would include the netty, api, etc projects. Even though these projects > > are > > > only used by start.grails.org. > > > > > > What are people's thoughts on merging? Should we merge all or only the > > > ones we need as part of a grails-core release? > > > > > > For my thoughts: I think merging all of the projects is better because we > > > know some end users fork grails-forge and it would be more convenient for > > > them to fork one repository instead of 2. Basically, by merging > > partially, > > > it makes our life easier, and their life harder. By merging both, we > > keep > > > it simple for everyone. > > > > > >