The main driver is POM Model Version 5.0.0[1]
We are confronted more and more with issues in the current model, but we cannot 
fix it.
Even when there was an optional attribute added to an element, we had a lot of 
issues.
I picked this topic up several years ago and now we're at a point where we need 
people to start verifying it.
The original idea was Maven 3.7.0 and the build/consumer turned off by default, 
but that wouldn't give us enough feedback.
Hence the Maven 4 where it is turned on by default (but you can disable it).
The rest of the issues can be separated into 2 groups:
- issues that were already marked for Maven 4 due to their impact
- issues there could have been added to Maven 3, but since the next release 
will be Maven 4 they'll be part if that release.

Regarding the transformation, the first documentation[2] is already available

With uploaded I actually mean distributed, as done by the maven-install-plugin 
and maven-deploy-plugin.
Currently the maven-gpg-plugin is using the local pom.xml to calculate the 
signature, but because the local pom will be different compared to the 
distributed pom, the signature won't match.
This needs to be fixed of course, but shouldn't block the users that never sign 
their artifacts.
The checksums should be fine: these were generated by the maven-install-plugin, 
but is has been superseded by maven-artifact-resolver (formally known as 
Aether).
I don't know if there are other plugins in the world that should be using the 
distributed pom.xml like the maven-gpg-plugin does, but those need to be 
rewritten too.

thanks,
Robert

[1] https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0
[2] http://maven.apache.org/ref/4-LATEST/maven-model-transform/
On 23-5-2021 13:34:47, Fred Cooke <fred.co...@gmail.com> wrote:
Thanks for that, Robert!

Aside from the 5 page issue list of what actually got done, is there
somewhere where the intention and motivation for the change was documented
before the key work (a subset of that list) was done? Or just other threads
in this mailing list (which I don't read as often as I should, but I do
recall some of the two-poms discussions a while back).

I was unable to find the ticket about what "ci-friendly versions" means but
if that's only for mostly-anti-pattern MM projects, no bother, my curiosity
will quickly fade :-D

Duplicate dependencies will be an error is most welcome! :-) I don't think
that's ever happened to me, but the number of times I've fixed it for
sloppy careless others is horrendous.

The wrapper plugin main page could do with an intro and some use cases that
it satisfies, there's almost nothing there but the usage page goes through
it in a bit more detail than belongs on the main page and makes it clear
(except why that would be useful, maybe some CI where you don't control the
container content?).

I don't understand the concept of a local execution of a plugin using an
uploaded pom rather than the local one. To make it clear why, what about -o
builds? What does "uploaded" really mean?

But yes, the two-poms stepping stone makes it clear why the bump, that's a
big departure from the past.

Cheers,

Fred.

On Sun, 23 May 2021 at 22:58, Robert Scholte wrote:

> TLDR; Most things will still work, but some things will break.
>
> Maven 4 is the preparation for Maven 5, where we will be able to introduce
> a new pom model. To keep the Maven eco system stable, it must be possible
> to upload model 4.0.0 compatible poms to remote repositories, especially to
> Central.
> Every plugin that uses the local pom where it should be using the uploaded
> pom will fail, think about the plugins that sign. These need to be
> rewritten.
> To support this, huge changes had to be made in the architecture of Maven.
> This to proof that we can transform pom files without any impact.
> Maven 4 must proof this transforming mechanism, Maven for will be able to
> expand and clean up the pom.This is reflected by the following new features
> for multimodule projects:
> - automatic parent version based on relativePath
>
> - automatic dependency version for reactor dependencies.
> - proper ci-friendly versioning
>
> Some other things that might break your build:
> - require Java 8
> - upgrade of the default versions of the plugins per packaging type
> - strict checksum validation
>
> - removal of some deprecated Maven2 commandline flags
> - some warnings will now be errors (e.g. duplicate dependencies in your
> pom.xml)
> - removal of release-profile from super-pom
>
> New features:
> - maven-wrapper is now part of Maven core. There's a new lifecycle for it
> ('mvn wrapper') and a new plugin('maven-wrapper-plugin)
> - improved commandline options when working with multimodule projects.
> - jansi based console output improvements
>
> This is just a short summary of the release[1], but it should give you an
> idea why this version should be called Maven 4.
>
> thanks,
> Robert
>
> [1]
> https://issues.apache.org/jira/issues/?jql=project%20%3D%20MNG%20AND%20fixVersion%20%3D%204.0.0-alpha-1
>
> On 23-5-2021 11:55:59, Fred Cooke wrote:
> Is there somewhere where I can read about the rationale behind the first
> major version bump since I learned M2 15 years ago and what's changed in a
> positive but breaking fashion that warranted that bump?
>
> Just the 4 sounds exciting without any context. I hope the context lives up
> to it, but 3 has been serving me SO well for such a long time, I'm
> skeptical :-D
>
> Introduction of repaint.io tiles as the default parent mechanism, perhaps?
>
> Cheers,
>
> Fred.
>
> PS: Disclaimer: I've not even tried 3.8.2 yet! And only just upgraded my
> personal stuff from 3.3.9 to 3.6.3 without any breakage at all.
>
> On Sun, 23 May 2021 at 21:43, Martin Kanters
> wrote:
>
> > Hi all,
> >
> > With MNG-6915 [1] being merged yesterday, all Jansi-related PRs are
> merged.
> > AFAIK there is nothing pressing left for the Maven 4.0.0-alpha-1 release,
> > or am I missing something?
> >
> > Martin
> >
> > [1] https://issues.apache.org/jira/browse/MNG-6915
> >
> > Op di 4 mei 2021 om 19:56 schreef Martin Kanters
> > >:
> >
> > > @Guillaume Great, thanks for updating them! I'm processing them as we
> > > speak.
> > >
> > > Martin
> > >
> > > Op di 4 mei 2021 om 15:13 schreef Michael Osipov :
> > >
> > >> Am 2021-05-03 um 20:35 schrieb Guillaume Nodet:
> > >> > Now that maven-shared-utils has been released, I've rebased my PRs:
> > >> > https://github.com/apache/maven/pulls/gnodet
> > >>
> > >> Darn, I would I could review your quality PRs, still busy with
> > Resolver...
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> > >> For additional commands, e-mail: dev-h...@maven.apache.org
> > >>
> > >>
> >
>

Reply via email to