I have made another iteration based on James' latest updates and some great
observations and suggestions from this thread.

- Make sections for "NORMAL", GRADLE, PROFILES and FORGE
- Sort by artifactId (I found some collisions, added '-core' to those)
- Rename some artifactIds
  - Remove '-views' from gsp
  - Use 'json' instead of 'gson' as json is the common name while 'gson' is
the technology in Grails (implementation detail).
  - Remove 'grails-profile-' from grails profiles (good point Michael).
  - Rename org.apache.grails.profiles:core back to
org.apache.grails.profiles:profile (as it is "a profile for creating
profiles": https://github.com/apache/grails-profiles/tree/10.0.x/profile).
  - Rename org.apache.grails:grails-gradle-plugin to
org.apache.grails:grails-gradle-plugins (plural) as this library contains
many Gradle plugins (good point James F)
  - Add '-views' to the view compiling Gradle plugins as I think the names
became a bit too general. (Want to keep the names connected to the
grails-views-json and grails-views-markup libraries).

https://github.com/apache/grails-core/pull/14075


Den tors 20 mars 2025 kl 04:37 skrev Michael Yan <rainbo...@apache.org>:

> Currently, I am a little worried about such a drastic change. Renaming the
> package name seems easy, but it will also bring a lot of trouble, which is
> not wise to change in 7.x.
> Before that, we still have a lot of work to do, such as defining the
> responsibilities and scope of each module, sorting out the dependencies of
> each module, cleaning up some legacy codes, merging codes with the same
> functions, and splitting some common base classes and packages.
>
>
> From my current perspective, the grails-async and grails-events modules
> can merge their underlying implementation modules into one, but the premise
> is to use Spring Boot's AutoConfiguration for transformation instead of the
> existing ServiceLoader mechanism.
>
> | old group id                      | old artifact id
>            | new group id                                    | new artifact
> id                                               | old gradle plugin name |
> new gradle plugin name | repository             |
>
> |-----------------------------------|-------------------------------------------------|-------------------------------------------------|---------------------------------------------------------------|------------------------|------------------------|------------------------|
> | org.grails                        | grails-async
>             | org.apache.grails                               |
> grails-async-core                                             |
>             |                        | grails-core            |
> | org.grails                        | grails-async-gpars
>             | org.apache.grails                               |
> grails-async-gpars                                            |
>             |                        | grails-core            |
> | org.grails                        | grails-async-rxjava
>            | org.apache.grails                               |
> grails-async-rxjava                                           |
>             |                        | grails-core            |
> | org.grails                        | grails-async-rxjava2
>             | org.apache.grails                               |
> grails-async-rxjava2                                          |
>             |                        | grails-core            |
> | org.grails                        | grails-async-rxjava3
>             | org.apache.grails                               |
> grails-async-rxjava3                                          |
>             |                        | grails-core            |
> | org.grails.plugins                | async
>            | org.apache.grails                               |
> grails-async                                                  |
>             |                        | grails-core            |
>
> | org.grails                        | grails-events
>            | org.apache.grails                               |
> grails-events-core                                            |
>             |                        | grails-core            |
> | org.grails                        | grails-events-compat
>             | org.apache.grails                               |
> grails-events-compat                                          |
>             |                        | grails-core            |
> | org.grails                        | grails-events-gpars
>            | org.apache.grails                               |
> grails-events-gpars                                           |
>             |                        | grails-core            |
> | org.grails                        | grails-events-rxjava
>             | org.apache.grails                               |
> grails-events-rxjava                                          |
>             |                        | grails-core            |
> | org.grails                        | grails-events-rxjava2
>            | org.apache.grails                               |
> grails-events-rxjava2                                         |
>             |                        | grails-core            |
> | org.grails                        | grails-events-rxjava3
>            | org.apache.grails                               |
> grails-events-rxjava3                                         |
>             |                        | grails-core            |
> | org.grails                        | grails-events-spring
>             | org.apache.grails                               |
> grails-events-spring                                          |
>             |                        | grails-core            |
> | org.grails                        | grails-events-transform
>            | org.apache.grails                               |
> grails-events-transform                                       |
>             |                        | grails-core            |
> | org.grails.plugins                | events
>             | org.apache.grails                               |
> grails-events                                                 |
>             |                        | grails-core            |
>
> If we use these modules from the user's perspective, we may have different
> thoughts. Although I am in favor of removing the *plugin* prefix, it is
> only for plugins such as cache and events, but in the current situation,
> the role of the plugin is actually similar to that of Spring Boot's
> starters.
>
>
> In addition, some of the following modules can be merged and
> refactored.But this is a complex and arduous task.
>
> grails-web-mvc
> grails-web-url-mappings
> grails-converters
> grails-controllers
> grails-interceptors
> grails-mimetypes
> grails-rest-responder
> grails-url-mappings
>
>
> // Codec
> | org.grails                        | grails-encoder
>             | org.apache.grails                               |
> grails-encoder                                                |
>             |                        | grails-core            |
> | org.grails                        | grails-codecs
>            | org.apache.grails                               |
> grails-codecs                                                 |
>             |                        | grails-core            |
> | org.grails                        | grails-plugin-codecs
>             | org.apache.grails                               |
> grails-codecs                                                 |
>             |                        | grails-core            |
>
> // Databinding
> | org.grails                        | grails-databinding
>             | org.apache.grails                               |
> grails-databinding                                            |
>             |                        | grails-core            |
> | org.grails                        | grails-plugin-databinding
>            | org.apache.grails                               |
> grails-databinding                                            |
>             |                        | grails-core            |
> | org.grails                        | grails-web-databinding
>             | org.apache.grails                               |
> grails-web-databinding                                        |
>             |                        | grails-core            |
>
> // DataSource and Data Mappings
> | org.grails                        | grails-plugin-datasource
>             | org.apache.grails                               |
> grails-datasource                                             |
>             |                        | grails-core            |
> | org.grails                        | grails-plugin-domain-class
>             | org.apache.grails                               |
> grails-domain-class                                           |
>             |                        | grails-core            |
> | org.grails                        | grails-plugin-validation
>             | org.apache.grails                               |
> grails-validation                                             |
>             |                        | grails-core            |
> | org.grails                        | grails-datastore-core
>            | org.apache.grails                               |
> grails-datastore-core                                         |
>             |                        | grails-data-mapping    |
> | org.grails                        | grails-datastore-gorm
>            | org.apache.grails                               |
> grails-data-mapping-core                                      |
>             |                        | grails-data-mapping    |
> | org.grails                        | grails-datastore-gorm-hibernate5
>             | org.apache.grails                               |
> grails-data-mapping-hibernate5                                |
>             |                        | grails-data-mapping    |
> | org.grails                        | grails-datastore-gorm-support
>            | org.apache.grails                               |
> grails-data-mapping-support                                   |
>             |                        | grails-data-mapping    |
> | org.grails                        | grails-datastore-gorm-validation
>             | org.apache.grails                               |
> grails-data-mapping-validation                                |
>             |                        | grails-data-mapping    |
> | org.grails                        | grails-datastore-web
>             | org.apache.grails                               |
> grails-datastore-web                                          |
>             |                        | grails-data-mapping    |
> | org.grails                        | grails-gorm-testing-support
>            | org.apache.grails.testing                       |
> grails-data-mapping-testing-support                           |
>             |                        | grails-data-mapping    |
> | org.grails.plugins                | database-migration
>             | org.apache.grails                               |
> grails-data-hibernate5-migration                              |
>             |                        | grails-data-mapping    |
> | org.grails.plugins                | hibernate5
>             | org.apache.grails                               |
> grails-data-hibernate5                                        |
>             |                        | grails-data-mapping    |
>
> // Services
> | org.grails                        | grails-plugin-services
>             | org.apache.grails                               |
> grails-services                                               |
>             |                        | grails-core            |
>
> // Controllers
> | org.grails                        | grails-plugin-controllers
>            | org.apache.grails                               |
> grails-controllers                                            |
>             |                        | grails-core            |
> | org.grails.plugins                | converters
>             | org.apache.grails                               | org.grails
>                       | grails-plugin-url-mappings                      |
> org.apache.grails                               | grails-url-mappings
>                                      |                        |
>             | grails-core            |
> | org.grails                        | grails-plugin-interceptors
>             | org.apache.grails                               |
> grails-interceptors                                           |
>             |                        | grails-core            |
> | org.grails                        | grails-plugin-mimetypes
>            | org.apache.grails                               |
> grails-mimetypes                                              |
>             |                        | grails-core            |
>
> // I18n
> | org.grails                        | grails-plugin-i18n
>             | org.apache.grails                               |
> grails-i18n                                                   |
>             |                        | grails-core            |
>
>
> // REST
> | grails-converters                                             |
>               |                        | grails-core            |
> | org.grails                        | grails-plugin-rest
>             | org.apache.grails                               |
> grails-rest-responder                                         |
>             |                        | grails-core            |
>
> GSP and Views can coexist in the same project, grails-web-gsp,
> grails-views-gsp, grails-views-gson.
> The gsp plugin is renamed grails-views-gsp, but in fact it is different
> from gson in implementation. Views wins in performance, but is far less
> powerful than GSP in terms of functionality. Maybe in the future, the
> underlying API design and implementation can be unified.
>
> // GSP and Views
>
> | org.grails                        | grails-gsp
>             | org.apache.grails                               |
> grails-gsp-core                                               |
>             |                        | grails-views           |
> | org.grails                        | grails-taglib
>            | org.apache.grails                               |
> grails-taglib                                                 |
>             |                        | grails-views           |
> | org.grails                        | grails-web-gsp
>             | org.apache.grails                               |
> grails-web-gsp                                                |
>             |                        | grails-views           |
> | org.grails                        | grails-web-gsp-taglib
>            | org.apache.grails                               |
> grails-web-gsp-taglib                                         |
>             |                        | grails-views           |
> | org.grails                        | grails-web-jsp
>             | org.apache.grails                               |
> grails-web-jsp                                                |
>             |                        | grails-views           |
> | org.grails                        | grails-web-taglib
>            | org.apache.grails                               |
> grails-web-taglib                                             |
>             |                        | grails-views           |
> | org.grails.plugins                | gsp
>            | org.apache.grails                               |
> grails-views-gsp                                              |
>             |                        | grails-views           |
> | org.grails.plugins                | scaffolding
>            | org.apache.grails                               |
> grails-scaffolding                                            |
>             |                        | grails-views           |
> | org.grails.plugins                | fields
>             | org.apache.grails                               |
> grails-fields                                                 |
>             |                        | grails-views           |
>
> | org.grails.plugins                | views-json
>             | org.apache.grails                               |
> grails-views-gson                                             |
>             |                        | grails-views           |
> | org.grails                        | views-core
>             | org.apache.grails                               |
> grails-views-core                                             |
>             |                        | grails-views           |
> | org.grails                        | views-json-testing-support
>             | org.apache.grails.testing                       |
> grails-views-json-testing-support                             |
>             |                        | grails-views           |
> | org.grails                        | views-markup
>             | org.apache.grails                               |
> grails-views-markup                                           |
>             |                        | grails-views           |
>
>
> On 2025/03/20 01:22:10 James Daugherty wrote:
> > James Fredley: I am good with your proposal.
> >
> > Søren, Mattias, Michael, and Gianluca - does James’s updated version work
> > for you all?
> >
> > I am ok removing grails profile from the artifact id too.
> >
> > If Michael is willing to help us consolidate, it would be wonderful.
> > Otherwise, I would suggest we leave consolidation of the profiles as a
> > future todo.
> >
> > -James
> >
> > On Wed, Mar 19, 2025 at 9:01 PM James Fredley <jamesfred...@apache.org>
> > wrote:
> >
> > > That is a great point about the profile not being included in the final
> > > distribution.
> > >
> > > consolidation of the profiles would be great.  Do you have any time to
> > > work on this task?
> > >
> > > On 2025/03/20 00:48:09 Michael Yan wrote:
> > > > If using  'org.apache.grails.profiles'  as groupId, why do we need
> to add
> > > > the prefix grails-profile-? The profile artifact will not be
> packaged in
> > > > the final distributions.
> > > > Also I think we don't need so many profiles, some of theme can be
> merged,
> > > > included base. Maybe we also can make angular, react, vue just be
> > > optional
> > > > features.
> > > >
> > > > web = base + (web / web-plugin / rest-api)
> > > >
> > > >
> > > > | org.grails.profiles                | angular
> > > >             | org.apache.grails.profiles | grails-profile-angular
> > > >            |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | base
> > > >            | org.apache.grails.profiles | grails-profile-base
> > > >           |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | plugin
> > > >            | org.apache.grails.profiles | grails-profile-plugin
> > > >           |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | profile
> > > >             | org.apache.grails.profiles | grails-profile-core
> > > >             |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | react
> > > >             | org.apache.grails.profiles | grails-profile-react
> > > >            |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | rest-api
> > > >            | org.apache.grails.profiles | grails-profile-rest-api
> > > >           |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | rest-api-plugin
> > > >             | org.apache.grails.profiles |
> grails-profile-rest-api-plugin
> > > >            |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | vue
> > > >             | org.apache.grails.profiles | grails-profile-vue
> > > >            |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | web
> > > >             | org.apache.grails.profiles | grails-profile-web
> > > >            |                        |                          |
> > > > grails-profiles        |
> > > > | org.grails.profiles                | web-plugin
> > > >            | org.apache.grails.profiles | grails-profile-web-plugin
> > > >           |                        |                          |
> > > > grails-profiles        |
> > > >
> > > > James Fredley <jamesfred...@apache.org> 于2025年3月20日周四 08:43写道:
> > > >
> > > > > Here is a further updated table with the views Gradle plugins
> > > consolidated
> > > > > into grails-gradle-plugin, which is renamed back to its original
> name.
> > > > > This update also moves grails-test to the correct groupid.
> > > > >
> > > > >
> > > > >
> > >
> https://github.com/apache/grails-core/blob/jamesfredley/renameProposal/RENAME.md
> > > > >
> > > > > PR:  https://github.com/apache/grails-core/pull/14077
> > > > >
> > > > > On 2025/03/20 00:16:33 James Daugherty wrote:
> > > > > > Makes sense on the gson-templates update.
> > > > > >
> > > > > > Concerning the gradle plugins, I think there's some confusion
> here.
> > > The
> > > > > > "grouping" artifact isn't a gradle plugin.  It only adds the
> gradle
> > > > > plugins
> > > > > > to the classpath so it would not be used in a plugin { } block.
> I am
> > > > > > speaking about these lines:
> > > > > >
> > > > > >
> > > > >
> > >
> https://github.com/apache/grails-core/blob/c4f40b77e7693f37d2b4c885db3b27159292c813/RENAME.md?plain=1#L125
> > > > > >
> > > > >
> > >
> https://github.com/apache/grails-core/blob/c4f40b77e7693f37d2b4c885db3b27159292c813/RENAME.md?plain=1#L71
> > > > > >
> > > > > > For 'grails-gradle-plugin', here are some example usages of this
> > > library:
> > > > > > buildscript usage:
> > > > > >
> > > > >
> > >
> https://github.com/apache/grails-core/blob/e899196d24c75d1cfb80ca51db2e7aae574b67b4/grails-test-examples/app1/build.gradle#L7
> > > > > > buildSrc usage:
> > > > > >
> > > > >
> > >
> https://github.com/apache/grails-views/blob/f9e28f2cfefdc6545f439b72fad15156d5c00781/buildSrc/build.gradle#L29
> > > > > >
> > > > > > I'm not proposing we rename the gradle plugin names from your
> list,
> > > but
> > > > > > rather just that artifact that includes them all so gradle can
> > > resolve
> > > > > > them.
> > > > > >
> > > > > > On Wed, Mar 19, 2025 at 7:51 PM James Fredley <
> > > jamesfred...@apache.org>
> > > > > > wrote:
> > > > > >
> > > > > > > https://github.com/apache/grails-core/pull/14077/files
> > > > > > > replaced 'mongo-gson-templates' with
> > > > > 'grails-data-mongodb-gson-templates'
> > > > > > > to match it up with the project.  It also looks like it was
> changed
> > > > > from
> > > > > > > json to gson before I added the prefix.
> > > > > > >
> > > > > > > Are you proposing always applying the Grails Gradle plugins
> with
> > > > > > > `classpath` and `apply plugin` and not using `plugins {id
> > > version}`?
> > > > > The
> > > > > > > long groupid and artifactid is only used for `plugins {id
> > > version}`.
> > > > > > >
> > > > > > > James
> > > > > > >
> > > > > > > On 2025/03/19 23:23:57 James Daugherty wrote:
> > > > > > > > Mattias made a good point in his open PR: there are other
> > > security
> > > > > > > > frameworks such as https://shiro.apache.org/.  This
> convinced
> > > me to
> > > > > keep
> > > > > > > > the 'spring' in the name to be clear.
> > > > > > > >
> > > > > > > > Looking at Mattias' revision and comparing it to James
> > > Fredley's, I
> > > > > > > think I
> > > > > > > > agree with everything James Fredley has except two points:
> > > > > > > >
> > > > > > > > 1. mongo-gson-templates, I think we should keep a prefix of
> > > 'grails'
> > > > > at a
> > > > > > > > minimum in the artifact name.  These templates are specific
> to
> > > > > grails.
> > > > > > > >
> > > > > > > > 2. I don't like the "grouping" artifacts that contain all of
> the
> > > > > gradle
> > > > > > > > plugins.  With this proposal, buildScript would look
> something
> > > like
> > > > > this:
> > > > > > > >
> > > > > > > > buildscript {
> > > > > > > >     repositories {
> > > > > > > >         ...
> > > > > > > >     }
> > > > > > > >     dependencies {
> > > > > > > >         classpath
> > > > > platform("org.apache.grails:grails-bom:$grailsVersion")
> > > > > > > >         classpath
> 'org.apache.grails:grails-gradle-plugin-core'
> > > > > > > >     }
> > > > > > > > }
> > > > > > > >
> > > > > > > > These grouping artifacts should be clearly named to indicate
> what
> > > > > they
> > > > > > > > contain.  We currently have 2 of these - one in grails-views
> and
> > > one
> > > > > in
> > > > > > > > grails-gradle plugin.
> > > > > > > >
> > > > > > > > I'd rather see these named something like this:
> > > > > > > >
> > > > > > > > org.apache.grails:grails-gradle-plugins
> > > > > > > > org.apache.grails:grails-view-gradle-plugins
> > > > > > > >
> > > > > > > > Or even better, the view gradle plugins are already in a
> separate
> > > > > gradle
> > > > > > > > build imported into the grails-views build.  They can easily
> be
> > > moved
> > > > > > > into
> > > > > > > > the grails-gradle-plugin repository.  I'd rather see us
> collapse
> > > > > these
> > > > > > > > plugins into a single repo and then just have the below as
> the
> > > > > grouping
> > > > > > > > artifact:
> > > > > > > >
> > > > > > > > org.apache.grails:grails-gradle-plugins
> > > > > > > >
> > > > > > > > -James
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Wed, Mar 19, 2025 at 4:57 PM Gianluca Sartori <
> > > > > g.sart...@gmail.com>
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > Mattias' suggestion is the most convincing naming scheme
> to me.
> > > > > > > > >
> > > > > > > > > Keeping the right-to-left grouping strategy I would
> probably
> > > give
> > > > > > > > > precedence to the hibernate implementation.
> > > > > > > > > Even though there are reasons to keep the "spring" name in
> the
> > > > > > > > > "spring-security" plugins (search the web) I would rather
> have
> > > the
> > > > > > > > > following instead to stay simple.
> > > > > > > > >
> > > > > > > > > org.apache.grails:grails-codecs
> > > > > > > > > org.apache.grails:grails-controllers
> > > > > > > > > org.apache.grails:grails-databinding
> > > > > > > > > org.apache.grails:grails-datasource
> > > > > > > > > org.apache.grails:grails-domain-class
> > > > > > > > > org.apache.grails:grails-i18n
> > > > > > > > > org.apache.grails:grails-interceptors
> > > > > > > > > org.apache.grails:grails-mimetypes
> > > > > > > > > org.apache.grails:grails-rest-responder
> > > > > > > > > org.apache.grails:grails-services
> > > > > > > > > org.apache.grails:grails-url-mappings
> > > > > > > > >
> > > > > > > > > org.apache.grails:grails-async
> > > > > > > > > org.apache.grails:grails-converters
> > > > > > > > > org.apache.grails:grails-events
> > > > > > > > > org.apache.grails:grails-sitemesh3
> > > > > > > > > org.apache.grails:grails-fields
> > > > > > > > > org.apache.grails:grails-views-gsp
> > > > > > > > > org.apache.grails:grails-views-gson
> > > > > > > > > org.apache.grails:grails-views-markup
> > > > > > > > > org.apache.grails:grails-scaffolding
> > > > > > > > >
> > > > > > > > > org.apache.grails:grails-data-hibernate5
> > > > > > > > > org.apache.grails:grails-data-hibernate5-migration
> > > > > > > > > org.apache.grails:grails-data-hibernate6
> > > > > > > > > org.apache.grails:grails-data-hibernate6-migration
> > > > > > > > > org.apache.grails:grails-data-mongodb
> > > > > > > > >
> > > > > > > > > org.apache.grails:grails-cache
> > > > > > > > > org.apache.grails:grails-geb
> > > > > > > > > org.apache.grails:grails-security-acl
> > > > > > > > > org.apache.grails:grails-security-cas
> > > > > > > > > org.apache.grails:grails-security-core
> > > > > > > > > org.apache.grails:grails-security-ldap
> > > > > > > > > org.apache.grails:grails-security-oauth2
> > > > > > > > > org.apache.grails:grails-security-rest
> > > > > > > > > org.apache.grails:grails-security-rest-data
> > > > > > > > > org.apache.grails:grails-security-rest-grails-cache
> > > > > > > > > org.apache.grails:grails-security-rest-memcached
> > > > > > > > > org.apache.grails:grails-security-rest-redis
> > > > > > > > > org.apache.grails:grails-security-ui
> > > > > > > > >
> > > > > > > > > org.apache.grails:grails-redis
> > > > > > > > > org.apache.grails:grails-quartz
> > > > > > > > >
> > > > > > > > > Gianluca
> > > > > > > > >
> > > > > > > > > On Wed, 19 Mar 2025 at 17:10, Mattias Reichel <
> > > > > > > mattias.reic...@gmail.com>
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > org.apache.grails:grails-codecs
> > > > > > > > > > org.apache.grails:grails-controllers
> > > > > > > > > > org.apache.grails:grails-databinding
> > > > > > > > > > org.apache.grails:grails-datasource
> > > > > > > > > > org.apache.grails:grails-domain-class
> > > > > > > > > > org.apache.grails:grails-i18n
> > > > > > > > > > org.apache.grails:grails-interceptors
> > > > > > > > > > org.apache.grails:grails-mimetypes
> > > > > > > > > > org.apache.grails:grails-rest-responder
> > > > > > > > > > org.apache.grails:grails-services
> > > > > > > > > > org.apache.grails:grails-url-mappings
> > > > > > > > > >
> > > > > > > > > > org.apache.grails:grails-async
> > > > > > > > > > org.apache.grails:grails-converters
> > > > > > > > > > org.apache.grails:grails-events
> > > > > > > > > > org.apache.grails:grails-sitemesh3
> > > > > > > > > > org.apache.grails:grails-fields
> > > > > > > > > > org.apache.grails:grails-views-gsp
> > > > > > > > > > org.apache.grails:grails-views-gson
> > > > > > > > > > org.apache.grails:grails-views-markup
> > > > > > > > > > org.apache.grails:grails-scaffolding
> > > > > > > > > >
> > > > > > > > > > org.apache.grails:grails-data-hibernate5
> > > > > > > > > > org.apache.grails:grails-data-hibernate6
> > > > > > > > > > org.apache.grails:grails-data-migration-hibernate5
> > > > > > > > > > org.apache.grails:grails-data-migration-hibernate6
> > > > > > > > > > org.apache.grails:grails-data-mongodb
> > > > > > > > > >
> > > > > > > > > > org.apache.grails:grails-cache
> > > > > > > > > > org.apache.grails:grails-geb
> > > > > > > > > > org.apache.grails:grails-spring-security-acl
> > > > > > > > > > org.apache.grails:grails-spring-security-cas
> > > > > > > > > > org.apache.grails:grails-spring-security-core
> > > > > > > > > > org.apache.grails:grails-spring-security-ldap
> > > > > > > > > > org.apache.grails:grails-spring-security-oauth2
> > > > > > > > > > org.apache.grails:grails-spring-security-rest
> > > > > > > > > > org.apache.grails:grails-spring-security-rest-data
> > > > > > > > > >
> org.apache.grails:grails-spring-security-rest-grails-cache
> > > > > > > > > > org.apache.grails:grails-spring-security-rest-memcached
> > > > > > > > > > org.apache.grails:grails-spring-security-rest-redis
> > > > > > > > > > org.apache.grails:grails-spring-security-ui
> > > > > > > > > >
> > > > > > > > > > org.apache.grails:grails-redis
> > > > > > > > > > org.apache.grails:grails-quartz
> > > > > > > > > >
> > > > > > > > > > Regards
> > > > > > > > > > Mattias
> > > > > > > > > >
> > > > > > > > > > Den ons 19 mars 2025 kl 16:25 skrev James Daugherty
> > > > > > > > > > <jdaughe...@jdresources.net.invalid>:
> > > > > > > > > >
> > > > > > > > > > > Some follow-up notes:
> > > > > > > > > > >
> > > > > > > > > > > > The artifactid containing grails-, grails-plugin-,
> > > > > > > grails-profile- or
> > > > > > > > > > > grails-gradle-plugin- is important so that the jar
> > > filename is
> > > > > > > clear
> > > > > > > > > and
> > > > > > > > > > > descriptive when pulled from maven central and you are
> > > viewing
> > > > > > > them in
> > > > > > > > > a
> > > > > > > > > > > fat jar/war or directory.   There are a few that do not
> > > have
> > > > > one of
> > > > > > > > > these
> > > > > > > > > > > prefixes and I think a prefix should be added to the
> > > > > artifactid.
> > > > > > > > > > > 1. Did my table miss adding prefixes?  I think I added
> all
> > > of
> > > > > the
> > > > > > > ones
> > > > > > > > > I
> > > > > > > > > > > was aware of ...
> > > > > > > > > > > 2. I agree with you on the location - starting allows
> them
> > > to
> > > > > be
> > > > > > > used
> > > > > > > > > as
> > > > > > > > > > a
> > > > > > > > > > > prefix and allows discoverability via maven.
> > > > > > > > > > >
> > > > > > > > > > > >grails-gradle-plugins is slightly confusing when
> > > > > > > > > > grails-gradle-plugin-*'s
> > > > > > > > > > > exist.  Maybe something like
> > > > > > > > > grails-gradle-plugin-core/base/main/common,
> > > > > > > > > > > same for grails-gradle-view-plugins
> > > > > > > > > > > grails-gradle-plugins isn't a gradle plugin.  It's the
> > > grouping
> > > > > > > for all
> > > > > > > > > > > gradle plugins under that given repo. This is what we
> often
> > > > > add to
> > > > > > > the
> > > > > > > > > > > classpath in buildScript to import all of the known
> plugins
> > > > > > > > > > >
> > > > > > > > > > > > grails-view-plugin- and grails-security-plugin-,
> should
> > > > > plugin
> > > > > > > come
> > > > > > > > > > > before view and security?  I agree with
> > > grails-gradle-plugin,
> > > > > but
> > > > > > > am
> > > > > > > > > > unsure
> > > > > > > > > > > on these two.
> > > > > > > > > > > I'm fine changing that, but shouldn't gorm & view be
> > > included
> > > > > in
> > > > > > > this?
> > > > > > > > > > > grails-plugin-gorm, grails-plugin-security,
> > > grails-plugin-view,
> > > > > > > > > > > grails-plugin-gorm - how do these sound?
> > > > > > > > > > >
> > > > > > > > > > > > The 2 artifactids that start with views- should start
> > > with
> > > > > > > > > > grails-views-
> > > > > > > > > > > Can you identify these artifacts?  Are you talking
> about
> > > the
> > > > > gradle
> > > > > > > > > > plugins
> > > > > > > > > > > (we renamed these already) or something else?
> > > > > > > > > > >
> > > > > > > > > > > > I think org.apache.grails.forge:grails-cli should be
> > > > > > > > > > > org.apache.grails.forge:grails-forge-cli.  This may be
> a
> > > good
> > > > > time
> > > > > > > to
> > > > > > > > > > > rename grails-shell to grails-shell-cli also.
> > > > > > > > > > > I agree with these.
> > > > > > > > > > >
> > > > > > > > > > > > The long artifactids, like,
> > > > > org.grails.grails-gsp.gradle.plugin
> > > > > > > ...
> > > > > > > > > are
> > > > > > > > > > > the way Gradle Plugins can be published to a non-Gradle
> > > Plugin
> > > > > > > Portal
> > > > > > > > > > > Are you sure about this statement?  I noticed the views
> > > plugins
> > > > > > > > > (markup /
> > > > > > > > > > > json) do not have this and they are used in projects
> > > without
> > > > > issue
> > > > > > > -
> > > > > > > > > > that's
> > > > > > > > > > > why I proposed the change.
> > > > > > > > > > >
> > > > > > > > > > > > Can we standardize gorm-, grails-datastore-gorm-,
> > > > > > > grails-gorm-plugin-
> > > > > > > > > > and
> > > > > > > > > > > grails-datastore- around grails-data- and
> > > grails-plugin-data-
> > > > > > > > > > > So grails-plugin-gorm becomes grails-plugin-data?
> That's
> > > > > > > reasonable.
> > > > > > > > > > For
> > > > > > > > > > > the datastore & gorm, I think we need to work through
> each
> > > of
> > > > > these
> > > > > > > > > since
> > > > > > > > > > > for each gorm implementation there is often a base
> > > > > implementation
> > > > > > > and
> > > > > > > > > > then
> > > > > > > > > > > a plugin that exposes that implementation and then
> there
> > > are
> > > > > the
> > > > > > > base
> > > > > > > > > > gorm
> > > > > > > > > > > libraries that are considered part of the original
> > > > > data-mapping.
> > > > > > > Can
> > > > > > > > > you
> > > > > > > > > > > enumerate what should be renamed to what?
> > > > > > > > > > >
> > > > > > > > > > > Regards,
> > > > > > > > > > > James
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > On Wed, Mar 19, 2025 at 11:11 AM James Fredley <
> > > > > > > > > jamesfred...@apache.org>
> > > > > > > > > > > wrote:
> > > > > > > > > > >
> > > > > > > > > > > > I put a number of related details in my longer
> post.  In
> > > > > terms of
> > > > > > > > > > > location
> > > > > > > > > > > > of the word `plugin` in the artifactid, I prefer
> towards
> > > the
> > > > > > > > > beginning
> > > > > > > > > > vs
> > > > > > > > > > > > at the end.  This makes grouping and search a bit
> > > simpler.
> > > > > I we
> > > > > > > go
> > > > > > > > > > this
> > > > > > > > > > > > direction, we need to make decisions on
> > > grails-view-plugin-,
> > > > > > > > > > > > grails-gradle-plugin- and grails-security-plugin-.
> > > > > > > > > > > >
> > > > > > > > > > > > On 2025/03/19 13:02:18 Søren Berg Glasius wrote:
> > > > > > > > > > > > > Hi,
> > > > > > > > > > > > >
> > > > > > > > > > > > > I agree on most, but wonder why there is
> inconsistency
> > > on
> > > > > some
> > > > > > > of
> > > > > > > > > the
> > > > > > > > > > > > > plugin naming:
> > > > > > > > > > > > >
> > > > > > > > > > > > > org.grails.plugins fields org.apache.grails.plugins
> > > > > > > > > > > grails-plugin-fields
> > > > > > > > > > > > > grails-views
> > > > > > > > > > > > > org.grails.plugins gsp org.apache.grails.plugins
> > > > > > > > > > grails-view-plugin-gsp
> > > > > > > > > > > > > grails-views
> > > > > > > > > > > > > org.grails.plugins scaffolding
> > > org.apache.grails.plugins
> > > > > > > > > > > > > grails-plugin-scaffolding grails-views
> > > > > > > > > > > > > org.grails.plugins views-json
> org.apache.grails.plugins
> > > > > > > > > > > > > grails-view-plugin-gson grails-views
> > > > > > > > > > > > > org.grails views-core org.apache.grails views-core
> > > > > grails-views
> > > > > > > > > > > > > org.grails views-json-testing-support
> > > > > org.apache.grails.testing
> > > > > > > > > > > > > views-json-testing-support grails-views
> > > > > > > > > > > > > org.grails views-markup org.apache.grails.plugins
> > > > > > > > > > > > grails-view-plugin-markup
> > > > > > > > > > > > > grails-views
> > > > > > > > > > > > > IMO we should decide where the word *plugin* is
> placed
> > > in
> > > > > the
> > > > > > > name.
> > > > > > > > > > > > > Personally I'd prefer *grails-x-plugin*, and
> > > > > > > *grails-view-x-plugin*
> > > > > > > > > > (so
> > > > > > > > > > > > > *grails-fields-plugin* and
> *grails-view-gsp-plugin* for
> > > > > > > examples
> > > > > > > > > and
> > > > > > > > > > > > > perhaps *grails-view-core*) for consistency.
> > > > > > > > > > > > >
> > > > > > > > > > > > >  Just my 0.02€ worth.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > Den ons. 19. mar. 2025 kl. 13.46 skrev James
> Daugherty
> > > > > > > > > > > > > <jdaughe...@jdresources.net.invalid>:
> > > > > > > > > > > > >
> > > > > > > > > > > > > > Hi Everyone,
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Per previous meetings, we agreed to rename the
> maven
> > > > > > > coordinates
> > > > > > > > > as
> > > > > > > > > > > > part of
> > > > > > > > > > > > > > transitioning to the ASF.  During this renaming,
> we
> > > also
> > > > > set
> > > > > > > out
> > > > > > > > > > > > several
> > > > > > > > > > > > > > requirements for being consistent with our group
> ids
> > > and
> > > > > > > artifact
> > > > > > > > > > > ids.
> > > > > > > > > > > > > > Since these renames are going to be referenced
> > > heavily by
> > > > > > > anyone
> > > > > > > > > > > > upgrading
> > > > > > > > > > > > > > to the ASF packages, I am proposing we create a
> > > > > 'RENAME.md'
> > > > > > > > > > markdown
> > > > > > > > > > > > file
> > > > > > > > > > > > > > in the grails-core repository.  We can then later
> > > include
> > > > > > > this
> > > > > > > > > file
> > > > > > > > > > > on
> > > > > > > > > > > > the
> > > > > > > > > > > > > > website, grails docs, etc.
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > My attempt at mapping the new group ids and
> artifacts
> > > > > ids are
> > > > > > > > > here:
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > >
> https://github.com/apache/grails-core/blob/9ac56cac136f5228d783bda5671a49d433901ba5/RENAME.md
> > > > > > > > > > > > > >
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > The PR to add this file to grails-core is here:
> > > > > > > > > > > > > >
> > > https://github.com/apache/grails-core/pull/14074/files
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Can people either comment on the PR or discuss
> here
> > > for
> > > > > the
> > > > > > > > > > proposed
> > > > > > > > > > > > > > renames?
> > > > > > > > > > > > > >
> > > > > > > > > > > > > > Regards,
> > > > > > > > > > > > > > James
> > > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > --
> > > > > > > > > > > > >
> > > > > > > > > > > > > Med venlig hilsen,
> > > > > > > > > > > > > Søren Berg Glasius
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hedevej 1, Gl. Rye, 8680 Ry
> > > > > > > > > > > > > Mobile: +45 40 44 91 88
> > > > > > > > > > > > > --- Press ESC once to quit - twice to save the
> changes.
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to