Le dim. 24 juil. 2022 à 20:56, Guillaume Nodet <gno...@apache.org> a écrit :

> Le dim. 24 juil. 2022 à 08:54, Romain Manni-Bucau <rmannibu...@gmail.com>
> a
> écrit :
>
> > Le sam. 23 juil. 2022 à 21:05, Enno Thieleke <
> enno.thiel...@holisticon.de>
> > a écrit :
> >
> > > Fwiw:
> > >
> > > Romain, I think you're exaggerating. The answer is, like in most cases:
> > > "it depends".
> > >
> > > Most people, we're most likely talking 95-99% here, will happily use
> JDK
> > > 17 with Maven 4.
> > >
> >
> > I would lower the figure - keep in mind 95-99% of people also uses libs
> and
> > are affected by what I described - but agree "most" would see it...at the
> > cost of configuring toolchain and even just the test/compiler version in
> > the pom which breaks our convention over config core design IMHO.
> >
> > So until we change our design to isolate all our core code and mojo run
> > from contextual java version (most mojo are not toolchain friendly, this
> > requires a mojo executor evolution to make the ecosystem functional), and
> > likely means we can:
> >
> > 1. Have background jvm runners (reusable) to avoid the cold perf pitfall
> of
> > toolchain
> >
>
> Aren't you just describing mvnd ?  mvnd is compiled to native already.
>

But mvnd does not coordinates N jvms to make toolchain fast. Mvnd solves
mvn cold startup issue but not the same pitfall for mojo forks (needs to
fake java exec to replace java by a java client like mvnd one).


>
> > 2. Toolchain functional for all mojo without any mojo change
> > 3. A global property to limit the configuration for all mojo
> >
> > I dont think it would work well in practise.
> >
> > I also dont want to exclude 50% of users (8+11) just cause we think we
> > would maybe gain from that - there is very few valid reason in terms of
> > compilation to do that on our side.
> >
> > Side note: technically, if reached, it means we can make mvn a native
> > binary with graalvm and run mojo in java runner so java wouldnt be a real
> > constraint for us/users but this has high impacts in terms of design and
> > code update requirements.
> >
> >
> > > Some people might need to compile for lower sources and targets, but
> > > running tests for those builds in JDK 17 instead of, let's say 11,
> _will
> > > suffice in most cases_.
> > >
> > > Yes, there will be edge cases where people will be forced to use
> > different
> > > JDKs at least for tests, some even for builds. But that's possible, so
> > they
> > > won't get left behind.
> > >
> > > Regarding mvnd: It's not a silver bullet. It never was and it never
> will
> > > be. Whenever a build spawns new JVMs (for tests or other tasks), it
> > doesn't
> > > benefit from mvnd anymore (in as much as it would without spawning new
> > > JVMs).
> > >
> > > To not use the latest (LTS) JDK in order to "better" support the 1-5%
> of
> > > the Maven users, who're still using obsolete JVMs (I'm obviously
> > referring
> > > to Karl's assumption, which I agree with), would be a kick in the teeth
> > of
> > > all Maven developers, who finally want to embrace the present (not even
> > the
> > > future).
> > >
> > > Long story short, +1 for JDK 17 as minimum for Maven 4.
> > >
> > > Kind regards,
> > > Enno
> > >
> > > ________________________________
> > > From: Romain Manni-Bucau <rmannibu...@gmail.com>
> > > Sent: Saturday, July 23, 2022 6:55 PM
> > > To: Maven Developers List <dev@maven.apache.org>
> > > Subject: Re: Question - JDK Minimum of future Apache Maven 4.0.0
> > >
> > > Le sam. 23 juil. 2022 à 17:25, Benjamin Marwell <bmarw...@apache.org>
> a
> > > écrit :
> > >
> > > > No, 2 JDKs are not required by default. Only if you use
> --release={<17}
> > > and
> > > > don't trust running tests on 17 are the same as running tests on 8.
> > > > Yes, there are changes (certificates, XML libs, rhino, etc).
> > > >
> > >
> > > As explained it means you dont write a single test or dont care of the
> > test
> > > results so yes it needs 2 jdk.
> > >
> > >
> > >
> > > > So, for most projects that's probably not needed. For those who think
> > it
> > > is
> > > > needed, I don't have a lot of pity. But it will be a requirement for
> > > quite
> > > > a few commercial projects, like Containers (JavaEE, as they will need
> > to
> > > be
> > > > Java 8 as long as 2030ish due to extended support contracts).
> > > >
> > > > That said, I'm still thinking Java 17 will be a sane default.
> > > >
> > > >
> > > > On Sat, 23 Jul 2022, 10:50 Delany, <delany.middle...@gmail.com>
> wrote:
> > > >
> > > > > Using mvnd with toolchains doesn't improve the situation, in fact
> > > > > toolchains seem to invalidate any benefit of using mvnd.
> > > > > Even if this was resolved, is it fair to require mvnd?
> > > > > Delany
> > > > >
> > > > >
> > > > > On Sat, 23 Jul 2022 at 10:17, Mark Derricutt <m...@talios.com>
> > wrote:
> > > > >
> > > > > >  Is that due to cold starting the JVM each time?
> > > > > >
> > > > > > I wonder if mvnd supports toolchains effectively?  Or if that
> could
> > > be
> > > > an
> > > > > > avenue to try.
> > > > > > --
> > > > > > "Great artists are extremely selfish and arrogant things" —
> Steven
> > > > > Wilson,
> > > > > > Porcupine Tree
> > > > > >
> > > > > > On 23/07/2022 at 8:13:23 PM, Delany <delany.middle...@gmail.com>
> > > > wrote:
> > > > > >
> > > > > > > I tried toolchains but dropped it because of the exorbitant
> > > > performance
> > > > > > > costs.
> > > > > > > A multi-module build that normally built in 3:50 took 10:34,
> and
> > > > that's
> > > > > > > with toolchaining only maven-compiler-plugin.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>
>
> --
> ------------------------
> Guillaume Nodet
>

Reply via email to