On Sun 14 May 2017 at 08:51, Hervé BOUTEMY <herve.bout...@free.fr> wrote:

> thank you Robert: this is exactly the logic I was looking for, and
> explanation
> of changes over time to improve user experience through reproducibility.
>
> Now the question is: should we change default plugin versions in Maven
> core?
> Does it improve Maven or not?


I think we should.

If we don't update, we have a more complex ux for new users.

We already say to pin versions (iirc we even log warnings)

If people choose to ignore the warnings of a build being at risk of
differential behaviour... they get what they configured: differential builds


>
> To me, changing default plugin versions lowers reproducibility.


Which is why we warn users... and the warning is there *to allow us to
upgrade*


> And it does not help users learn that they should define their own plugin
> versions instead of depending on the magic defaults that have to be
> included
> in Maven core to permit basic poms.


This sounds like an argument that we should add a CLI flag turn downgrade
the current warnings back to warnings and escalate them up to errors by
default.


>
> Then in general, if we have found a bug in a plugin with default version
> that
> hits users using this default basic poms, we should update the version:
> good
> default behaviour requirement surpasses reproducibility over Maven version
> expectation.
>
> But if a plugin default version upgrade is just to have newer defaults,
> IMHO,
> we sacrifice reproducibility and teaching to users that basic poms are
> just a
> quick start but should soon be extended to manage explicitely plugins
> versions: is there a good reason to sacrifice this? I don't find any good
> reason: the sooner user discovers that he's using old plugins, the better.
>
> What we should give him are easy to discover and learn recipes to manage
> his
> plugin versions: for example through a basic neutral parent pom with newest
> plugins, or a BOM pom. Maybe there are other ideas.
> Yes, neutral parent pom or BOM pom are to me good ways to improve Maven for
> users: not changing default plugin versions in Maven core.
>
> Do I miss an aspect that should be taken into account?


I've been through this path with Jenkins. My considered opinion is it is
better to just upgrade. We provide a path to lock down versions. We have
warned users for ages.

An alternative could be to leverage the prerequisites value as a selector
of the version defaults... though that would be re-enabling it for
non-plugin packaging ;-)


>
> Regards,
>
> Hervé
>
> Le samedi 13 mai 2017, 23:11:05 CEST Robert Scholte a écrit :
> > >> If you are saying that depending on default version is a bad practice
> it
> > >> actually means to me that this should change in the new major.
> > >> Shouldn't it?
> > >
> > > this is a bad practice from a very long time, even in the Maven 2.x
> > > time: what
> > > should change more in next Maven version that would show it more,
> without
> > > breaking the magic that these defaults are used to? A warning message
> > > proposing to add pluginManagement corresponding to current Maven
> version
> > > used?
> > > Or propose a parent pom to add?
> >
> > IIRC up until Maven 2.0.8 there were no default plugin version, it was
> > always selecting the latest when not specified. This was bad, because a
> > new release of a plugin could suddenly make projects fail.
> > Since Maven 2.0.9 there we started specifying default values to make
> > everything more predictable.
> > Right now we're also moving these information to the matching
> > packaging-plugin, so the maven-jar-plugins specifies the
> lifecycle-plugins
> > and their versions.
> > So in the end we should only specify the packaging-plugins in Maven core.
> > Ideally these should not be part of maven-core, but that will it harder
> to
> > start using Maven. For that reason it will be likely that some plugins
> > will still need to be specified with the Maven distribution.
> >
> > Robert
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
> --
Sent from my phone

Reply via email to