> Spring calls these starters, grails calls them plugins. I'm not sure this analogy is 100% correct. Aren't Spring Starters just dependency aggregators, not bringing any code of their own. Maybe Spring AutoConfigurations are more analogous to Grails Plugins? Anyways, I think the concept of Plugins is much easier for users to grasp than AutoConfigurations or Starters and we should also create our own dependency aggregators to clean up the app build files.
> Mattias' workaround was to add a `-core` suffix, but I don't think this will make it easier on us. I'm not against the rename, I just worry it's going to be a problem when we try to simplify. Yes, this is to have the best possible names for the public facing dependencies (plugins). Even if we change the group id, we will still need to separate the artifactIds because of the distribution packaging where every jar ends up in the same directory. > Concerning gsp, markdown, and json: they are all view technologies. Yes, that is absolutely correct and why I had grails-views-gsp in my first iteration. But there is also a difference between gsp vs markdown and json. I am fine either way. > It sounds like people may be supportive of combining the gradle plugins into a single repository. Mattias are you? Yes, right now I cannot think of a reason this would be a bad idea. > Gianluca proposed reversing the order of spring-security to security-spring. I'm fine with either. Mattias: What are your thoughts on this topic? I think grails-security-spring-* is a good idea! > Why don't we make anything that is a plugin have a root group id of "org.apache.grails", and anything that's supportive have a nested group name based on the type? I think this is worth exploring! Den tors 20 mars 2025 kl 13:46 skrev James Daugherty <jdaughe...@jdresources.net.invalid>: > Actually, how about this proposal: > > Why don't we make anything that is a plugin have a root group id of > "org.apache.grails", and anything that's supportive have a nested group > name based on the type? > > > On Thu, Mar 20, 2025 at 8:42 AM James Daugherty <jdaughe...@apache.org> > wrote: > > > Here are the differences between James Fredley's proposal and Mattias's > (I > > couldn't attach an image unfortunately): > > > > > > grails-codecs-core > > grails-databinding-core > > grails-gradle-plugins > > grails-gsp > > spring-security-rest-testapp > > grails-views-json > > grails-data-mongodb-json-templates > > org.apache.grails.gradle.grails-views-json.gradle.plugin > > views-json grails-views-json > > org.apache.grails.gradle.grails-views-markup.gradle.plugin > > views-markup grails-views-markup > > > > > > > > Michael brought up a good point earlier - long term we will likely want > to > > simplify the artifact names that are presented to users. Spring calls > > these starters, grails calls them plugins. I think we're making this > > problem worse by not distinguishing between a library vs a configuration > > that imports that library (plugin/starter). Mattias' workaround was to > add > > a `-core` suffix, but I don't think this will make it easier on us. I'm > > not against the rename, I just worry it's going to be a problem when we > try > > to simplify. > > > > Concerning gsp, markdown, and json: they are all view technologies. I > > don't think we should simplify the gsp name by removing views & clarify > > json by adding it. It's inconsistent. If you're using a rest app, you > > don't even use gsps. We should either prefix them with views or drop > views > > from all of them. > > > > On gson vs json: if we introduce other json options in the future (i.e. > > jackson) this could cause confusion. I'd rather we call them gson since > > that's the underlying technology. > > > > I am ok with grails-gradle-plugin or grails-gradle-plugins. It sounds > > like people may be supportive of combining the gradle plugins into a > single > > repository. Mattias are you? > > > > Gianluca proposed reversing the order of spring-security to > > security-spring. I'm fine with either. Mattias: What are your thoughts > on > > this topic? > > > > Michael, this proposal only concerns the artifact names. We had planned > > to repackage, but at this point I'm wondering if that should wait until > 8. > > It seems people have several thoughts on how that packaging should look. > > For example, while I'm ok with collapsing the libraries that the end user > > needs to include, I do not want to combine a bunch of gradle projects > into > > a single one. If we do that, given our repo sizes, it will mean gradle > > can't parallel process or cache those projects. This could be a huge > > development burden. I would suggest we get through the discussion of the > > artifact names and then address repackaging. Longer term, we can address > > collapsing what the user uses. > > > > On Michael's point on the group ids: I am ok with making more specific > > group ids. What are other people's thoughts on this? This proposal > > already contains testing & gradle specific groups. Should we do as > Michael > > suggests and add more for async, data, events, etc? > > > > On 2025/03/20 09:24:58 Mattias Reichel wrote: > > > 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. > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >