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.
>> > > >
>> > >
>> >
>>
>

Reply via email to