Think there is something miscommunicated there.

here is my vision:

1. "user" maven spi ->
https://github.com/apache/maven/tree/master/api/maven-api-spi
2. plugin spi -> belongs by design to plugin (= the plugin chooses its SPI)
so belongs to plugin project to keep thing simples - having one repo by
plugin is good but already challenging so x2 the number of repo for spi is
likely the promise of a mess and a ton of pointless compatibility matrixes.
Side note here being we solved it and it works well for dev and consumers.
3. shared plugin spi -> put it in shared module (but even if the lifecycle
can look shared the details of the plugin will not IMHO so think we'll
always be in 2 or we'll move all plugins SPI in a shared module which is
worse IMHO)
4. anything else stays in extension and it would be bad for us - makes it
complex for us but also mojo writers and end users - to redo an extension
concurrent for other needs than the previous one

So ultimately I think this is not an issue we need to address even if any
use case can get multiple solutions, a single one is often the best
compromise for everyone.

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le lun. 6 mai 2024 à 15:20, Guillaume Nodet <gno...@apache.org> a écrit :

> I wonder if we should use proper package versioning (using
> Specification-Title and Specification-Version manifest attributes, or any
> other better mechanism)  and consider the artifact version as a marketing
> version which should not carry any real semantics.
>
> Guillaume
>
> Le lun. 6 mai 2024 à 15:04, Tamás Cservenák <ta...@cservenak.net> a écrit
> :
>
> > Sure,
> >
> > Again, I am fine with having SPI artifact next to plugin consumer
> artifact.
> > All I wanted to prevent is having tens or more versions of SPI artifact
> > released, while in fact they are "same thing".
> >
> > T
> >
> > On Mon, May 6, 2024 at 3:03 PM Guillaume Nodet <gno...@apache.org>
> wrote:
> >
> > > Le lun. 6 mai 2024 à 14:38, Tamás Cservenák <ta...@cservenak.net> a
> > écrit
> > > :
> > >
> > > > lapsus: as in maven-core and maven-model SHOULD NOT share the same
> > > release
> > > > lifecycle. They DO currently.
> > > > Which implies that we have as many maven-model artifacts released so
> > far
> > > as
> > > > many maven, but many of them are binary equivalent to each other.
> > > >
> > >
> > > What's the drawback with that ? It's much easier to handle for both the
> > > developper side
> > > and for the consumer side (they only have to upgrade a single version
> > > instead of two).
> > >
> > > I'm quite on the opposite side, and I'd much rather simplify our
> release
> > > cycles rather
> > > than going with one repo per jar...
> > >
> > >
> > > > That's all I wanted to prevent. Am fine with having SPI next to the
> > > plugin
> > > > as well...
> > > >
> > > > T
> > > >
> > > > On Mon, May 6, 2024 at 2:36 PM Tamás Cservenák <ta...@cservenak.net>
> > > > wrote:
> > > >
> > > > > Pretty much the same story as Maven models vs Maven "core"
> > (maven-core
> > > in
> > > > > 3.x or api-imple in 4).... they don't share the same release
> > lifecycle.
> > > > >
> > > > > SPI is not to be changed often, while we do patch releases of the
> > > > plugins.
> > > > > Am not saying we cannot keep SPI along with Plugins, I am just
> saying
> > > > that
> > > > > it's pointless: we will have many releases of the same thing.
> > > > >
> > > > > On Mon, May 6, 2024 at 2:31 PM Guillaume Nodet <gno...@apache.org>
> > > > wrote:
> > > > >
> > > > >> Le lun. 6 mai 2024 à 14:29, Tamás Cservenák <ta...@cservenak.net>
> a
> > > > >> écrit :
> > > > >>
> > > > >> > Howdy,
> > > > >> >
> > > > >> > IIUC you have a problem with designated G?
> > > > >> > As if so, that is really irrelevant. Point is that SPI cannot
> > reside
> > > > >> with
> > > > >> > Plugin, as they share totally different release cycles.
> > > > >> >
> > > > >>
> > > > >> Why ?
> > > > >>
> > > > >>
> > > > >> >
> > > > >> > Second, you mention a plugin dep, that is hence available in the
> > > same
> > > > >> scope
> > > > >> > as the plugin itself...  which is obviously not enough in some
> > > cases.
> > > > >> >
> > > > >> > T
> > > > >> >
> > > > >> > On Mon, May 6, 2024 at 2:25 PM Romain Manni-Bucau <
> > > > >> rmannibu...@gmail.com>
> > > > >> > wrote:
> > > > >> >
> > > > >> > > Hi Tamas,
> > > > >> > >
> > > > >> > > I kind of fail to see why org.apache.maven.maven-plugin-spi
> > makes
> > > > >> sense
> > > > >> > > instead of org.apache.maven.plugins.$pluginArtifact-spi ?
> > > > >> > > My understanding is that we already have that since any plugin
> > can
> > > > >> > define a
> > > > >> > > specific SPI in its code and get it injected from a plugin dep
> > > using
> > > > >> its
> > > > >> > > <configuration> block - exactly like shade plugin references
> its
> > > > >> > > transformers to be concrete.
> > > > >> > > So for me nothing to create nor modify to get an old feature.
> > > > >> > >
> > > > >> > > Romain Manni-Bucau
> > > > >> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > >> > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > > >> > > <http://rmannibucau.wordpress.com> | Github <
> > > > >> > > https://github.com/rmannibucau> |
> > > > >> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > >> > > <
> > > > >> > >
> > > > >> >
> > > > >>
> > > >
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > > >> > > >
> > > > >> > >
> > > > >> > >
> > > > >> > > Le lun. 6 mai 2024 à 14:08, Tamás Cservenák <
> > ta...@cservenak.net>
> > > a
> > > > >> > écrit
> > > > >> > > :
> > > > >> > >
> > > > >> > > > Howdy,
> > > > >> > > >
> > > > >> > > > I'd like to create a new ASF Maven git repo
> > "maven-plugin-spi".
> > > > >> > > >
> > > > >> > > > This repository would hold SPIs as explained here
> > > > >> > > >
> > > > https://cwiki.apache.org/confluence/display/MAVEN/Maven+Plugin+SPI
> > > > >> > > >
> > > > >> > > > Designated G: "org.apache.maven.maven-plugin-spi"
> > > > >> > > >
> > > > >> > > > For now, we have two candidates to apply SPI pattern:
> > > > >> > > > * maven-deploy-plugin (yet to be added)
> > > > >> > > > * maven-gpg-plugin (already have it, but in unusable form,
> as
> > it
> > > > >> does
> > > > >> > not
> > > > >> > > > follow pattern from wiki)
> > > > >> > > >
> > > > >> > > > Example GAs:
> > > > >> > > > org.apache.maven.maven-plugin-spi:maven-deploy-spi
> > > > >> > > > org.apache.maven.maven-plugin-spi:maven-gpg-spi
> > > > >> > > >
> > > > >> > > > Thanks
> > > > >> > > > T
> > > > >> > > >
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >>
> > > > >> --
> > > > >> ------------------------
> > > > >> Guillaume Nodet
> > > > >>
> > > > >
> > > >
> > >
> > >
> > > --
> > > ------------------------
> > > Guillaume Nodet
> > >
> >
>
>
> --
> ------------------------
> Guillaume Nodet
>

Reply via email to