I almost forgot: it also may conflict with upstream names too. The jar will take the name of the artifact id, and in the case of the sitemesh 3 plugin, if the package was called "sitemesh3" then the jar will match the upstream library's jar too. I believe there was a desire to prefix the artifact ids to ensure the jar names never overlapped.
On Wed, Mar 19, 2025 at 12:22 PM James Daugherty <jdaughe...@jdresources.net> wrote: > How do we distinguish between the implementation and the exposure of that > implementation? Take for example hibernate5 - there's an implementation of > grails datastore that implements hibernate (this library imports the > hibernate libraries, implements criterias, etc), and then there's a plugin > that also enables your application to use hibernate5 (and that plugin > depends on the other library). Which one would > org.apache.grails:grails-data-hibernate5 refer to? > > There will likely be numerous conflicts if we strip the `plugin` from the > package and the artifact - for example async, event, gsp, and some of the > gorm-async stuff will overlap. > > The plugin is typically what we expect end users to include in their > application to enable functionality. The plugin is further subdivided into > libraries to assist in fast compilation / development. Sometimes people > even swap the libraries based on the implementation they prefer (async > rxjava2 vs rxjava3, etc). > > -James > > On Wed, Mar 19, 2025 at 12:10 PM Mattias Reichel < > mattias.reic...@gmail.com> wrote: > >> Maybe a silly question, and sorry if I have missed a previous discussion >> about this: >> Why is it important to differentiate between plugins and non-plugin >> libraries in the maven coordinates? >> >> Now that I see them aggregated in this nice table, thank you James, I >> think >> it would be a lot cleaner if we could strip the plugin part in both group >> and artifactId for many or all of these: >> >> 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. >> > > > >> > > >> > >> >