So, my proposal would be:

* Maven build time requirement: "${current} LTS"
* Maven run time requirement: "${current - 1} LTS" (maybe ${current-2} but
i really see no point in that 3 LTS versions past 8).

Basically use Java LTS versions as stepping stones.

We could enforce this with parent POM: whenever we release a new parent
POM, we "align" with the "current LTS" in the moment of release, and as
parent POM is adopted, projects are moved as well. It just trickles down.

Hence, if we'd release parent POM right now, then it would be:
* it would enforce Java 21 build time (enforcer requireJavaVersion=21)
* it would produce Java 17 bytecode (release=17)

So, users would need to use Java 17 to run Maven. Those producing Java 8
bytecode could still happily use release=8 to create Java 8 bytecode.
Have to note that Java 21 also allows this, but already produces a warning
that "release=8 is deprecated".

Thanks
T

On Thu, Feb 22, 2024 at 10:39 AM Tamás Cservenák <ta...@cservenak.net>
wrote:

> >> lot of java 21 tody is still PoC or toy projects
>
> Quarkus, TrinoDB or Eclipse are not toy projects. So they fact there ARE
> "toy projects", you should not derive that "all Java 21 projects are toy
> projects".
>
> T
>
> On Thu, Feb 22, 2024 at 10:32 AM Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
>
>> [joke]this last diagram looks like you are looking for piece[/]
>>
>> I'm not sure the weight can be linear like that, it is not because you are
>> old that you will die - lot of java 21 tody is still PoC or toy projects
>> so
>> should be in the weight somehow if we go this way.
>>
>> Ultimately your user agent idea was really better than java stat alone
>> since it is really a cross matrix/time unit we should check.
>>
>> Sadly all these stats miss, for my understanding, the dynamic behind (like
>> seeing a random point in a exponential vs linear graph, alone you don't
>> know where you are going to).
>>
>> From memory, trying to use the last years figures it seems the dynamic is
>> to follow the LTS with some lateness, ie current is 21 but people are
>> around 11-17. Like a sliding window.
>> Indeed the public polls I use - the ones you get on twitter from intellij
>> or friends - for that conclusion are biased cause they hit more "geeks"
>> than standard work people but I don't have anything better right now in
>> terms of time serie.
>> Anyone has more comparative data about that?
>>
>> My proposal/thought was really to align on that dynamic - from the latest
>> to a limit to cover ~>=65% of people - more than fixing some version in
>> stone.
>>
>> 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 jeu. 22 févr. 2024 à 10:17, Tamás Cservenák <ta...@cservenak.net> a
>> écrit :
>>
>> > For start I "normalized" the Java strings to a form like "Java 8" or
>> "Java
>> > 17". This resulted in pretty much similar results as Romain PDF (Azul
>> > report).
>> >
>> > But then realized, we should consider this: Not every LTS existed at the
>> > same time span (and we discuss the future here, not the past). Here is
>> some
>> > history I collected:
>> >
>> > - Java 8: Covers strings like "Java 1.8.0-25" (2014) to "Java 1.8.0-401"
>> > (2024), that is 10 year span.
>> > - Java 11: Covers strings like "Java 11-ea" (2018) to "Java 11.0.22"
>> > (2024), that is a 6 year span.
>> > - Java 17: Covers strings like "Java 17-ea" (2021) to "Java 17.0.10"
>> > (2024), that is a 3 year span.
>> > - Java 21: Covers strings like "Java 21-ea" (2023) to "Java 21.0.2"
>> (2024),
>> > that is 1 year span.
>> >
>> > So, "normalized" and "weighted" (by lifespan) results are these:
>> > https://gist.github.com/cstamas/d2e5560f24ebe6a667834aa1f44d6fc1
>> >
>> > Weighted pie immediately shows which Java versions are "dead" (are
>> present,
>> > but are "sliding out") and which ones are "alive and kicking" (and
>> adoption
>> > is quite high).
>> >
>> > ---
>> >
>> > Refs:
>> > - https://www.java.com/releases/
>> > - https://openjdk.org/projects/jdk/11/
>> > - https://openjdk.org/projects/jdk/17/
>> > - https://openjdk.org/projects/jdk/21/
>> >
>> > On Thu, Feb 22, 2024 at 8:50 AM Tamás Cservenák <ta...@cservenak.net>
>> > wrote:
>> >
>> > > Howdy,
>> > >
>> > > Maven UA is created like this:
>> > >
>> > >
>> >
>> https://github.com/apache/maven/blob/master/maven-core/src/main/java/org/apache/maven/internal/aether/DefaultRepositorySystemSessionFactory.java#L555
>> > >
>> > > I was hoping also for a list of "Apache Maven ..." lines with
>> occurrence
>> > > count.
>> > >
>> > > Now am unsure, for example if any other tool would use "Java X"
>> string in
>> > > its own UA, is that collected here?
>> > >
>> > > But let's cook with what we have :)
>> > >
>> > > T
>> > >
>> > >
>> > > On Thu, Feb 22, 2024, 08:03 Mateusz Gajewski <
>> > > mateusz.gajew...@starburstdata.com> wrote:
>> > >
>> > >> Do you have maven version and java version at the same time report? I
>> > >> wonder if old maven is used with old JDK :)
>> > >>
>> > >> On Wed, Feb 21, 2024 at 23:23 Brian Fox <bri...@infinity.nu> wrote:
>> > >>
>> > >> > Hi everyone. I haven't caught up on this thread but Tamas pinged
>> me to
>> > >> get
>> > >> > some usage data from Central. Attached are the Maven versions and
>> JDK
>> > >> > Version counts as reported by User Agent by distinct IP for the
>> last
>> > 30
>> > >> > days:
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> >
>> > >> > On Wed, Feb 21, 2024 at 4:15 PM Hunter C Payne
>> > >> > <hunterpayne2...@yahoo.com.invalid> wrote:
>> > >> >
>> > >> >>  I also want to stress that we care about what maven supports far
>> > more
>> > >> >> than what it requires to build.  If it needs JDK 17 to build but
>> the
>> > >> jars
>> > >> >> are compliant with Java 8, that's fine with me.
>> > >> >>
>> > >> >> Hunter
>> > >> >>
>> > >> >>     On Wednesday, February 21, 2024 at 12:47:33 PM PST, Romain
>> > >> >> Manni-Bucau <rmannibu...@gmail.com> wrote:
>> > >> >>
>> > >> >>  Hmm, not sure im ready for a 200M vanilla build tool even if it
>> > would
>> > >> >> have
>> > >> >> been ok legally...
>> > >> >>
>> > >> >> Le mer. 21 févr. 2024 à 21:41, Hunter C Payne
>> > >> >> <hunterpayne2...@yahoo.com.invalid> a écrit :
>> > >> >>
>> > >> >> >  I might be wrong but I understood that shipping the JRE/JVM
>> > >> required a
>> > >> >> > license and this is why most people don't ship with a JVM
>> bundled.
>> > >> But
>> > >> >> > perhaps that has changed since the Oracle v Google/Alphabet
>> trial.
>> > >> >> > Hunter
>> > >> >> >
>> > >> >> >    On Wednesday, February 21, 2024 at 12:00:54 PM PST, Benjamin
>> > >> Marwell
>> > >> >> <
>> > >> >> > bmarw...@apache.org> wrote:
>> > >> >> >
>> > >> >> >  FWIW, bazel changed its runtime requirement to Java 21.
>> > >> >> > But they are shipping their own Java Runtime, so their users
>> won't
>> > >> >> notice.
>> > >> >> > [1]
>> > >> >> >
>> > >> >> > I think they are the first build tool to do that.
>> > >> >> >
>> > >> >> > I say this as a FYI fact only, not implying anything.
>> > >> >> > Make of it what you want.
>> > >> >> >
>> > >> >> > - Ben
>> > >> >> >
>> > >> >> > Am Di., 20. Feb. 2024 um 21:50 Uhr schrieb Tamás Cservenák
>> > >> >> > <ta...@cservenak.net>:
>> > >> >> > >
>> > >> >> > > Howdy,
>> > >> >> > >
>> > >> >> > > I intentionally used "Maven" here, and not "Maven 4" as I am
>> sure
>> > >> the
>> > >> >> > > majority of Maven users do not run Maven on the same Java
>> version
>> > >> they
>> > >> >> > > target with their build. We do not do that either.
>> > >> >> > >
>> > >> >> > > Some snippets from Herve (who is the ONLY one doing
>> reproducible
>> > >> >> checks,
>> > >> >> > > kudos for that) votes:
>> > >> >> > >
>> > >> >> > > Sun, Feb 18, 2024, 9:38 AM
>> > >> >> > > [VOTE] Release Apache Maven Shade Plugin version 3.5.2
>> > >> >> > > Reproducible Build ok: reference build done with JDK 11 on
>> *nix
>> > >> >> > >
>> > >> >> > > Wed, Jan 31, 2024, 5:06 AM
>> > >> >> > > [VOTE] Release Apache Maven JLink Plugin version 3.2.0
>> > >> >> > > Reproducible Builds ok: reference build done on *nix with JDK
>> 21
>> > >> and
>> > >> >> > umask
>> > >> >> > > 022
>> > >> >> > >
>> > >> >> > > Mon, Jan 8, 2024, 8:29 AM
>> > >> >> > > [VOTE] Release Maven Plugin Tools version 3.11.0
>> > >> >> > > Reproducible Builds ok: reference build done with JDK 8 on
>> > Windows
>> > >> >> with
>> > >> >> > > umask
>> > >> >> > >
>> > >> >> > > Mon, Dec 18, 2023, 8:59 AM
>> > >> >> > > [VOTE] Release Apache Maven Compiler Plugin version 3.12.0
>> > >> >> > > Reproducible Builds ok: reference build done on *nix with JDK
>> 21
>> > >> and
>> > >> >> > umask
>> > >> >> > > 022
>> > >> >> > >
>> > >> >> > > Mon, Dec 18, 2023, 8:59 AM
>> > >> >> > > [VOTE] Release Apache Maven Compiler Plugin version 3.12.0
>> > >> >> > > Reproducible Builds ok: reference build done on *nix with JDK
>> 21
>> > >> and
>> > >> >> > umask
>> > >> >> > > 022
>> > >> >> > >
>> > >> >> > > Wed, Nov 29, 2023, 8:16 AM
>> > >> >> > > [VOTE] Apache Maven Build Cache Extension 1.1.0
>> > >> >> > > Reproducible Build ok: reference build done on *nix with JDK
>> 11
>> > >> >> > >
>> > >> >> > > Sun, Nov 19, 2023, 5:17 PM
>> > >> >> > > [VOTE] Release Maven Resolver 1.9.17
>> > >> >> > > Reproducible Build ok: reference build done with JDK 21 on
>> *nix
>> > >> with
>> > >> >> > umask
>> > >> >> > > 022
>> > >> >> > >
>> > >> >> > > Sat, Oct 21, 2023, 4:34 PM
>> > >> >> > > VOTE] Apache Maven 4.0.0-alpha-8 release
>> > >> >> > > Reproducible Build ok: reference build done with JDK 21 on
>> *nix
>> > >> with
>> > >> >> > umask
>> > >> >> > > 022
>> > >> >> > >
>> > >> >> > > Mon, Oct 2, 2023, 9:11 AM
>> > >> >> > > [VOTE] Release Apache Maven 3.9.5
>> > >> >> > > Reproducible not fully ok: reference build done with JDK 17 on
>> > *nix
>> > >> >> and
>> > >> >> > > umask 022
>> > >> >> > >
>> > >> >> > > ====
>> > >> >> > >
>> > >> >> > > This CLEARLY shows the tendency:
>> > >> >> > > - Michael does releases on Java 8 (on windows!), he is a known
>> > >> >> "aligner"
>> > >> >> > > and windows person :)
>> > >> >> > > - Olivier used the "minimum" required Java version (for build
>> > >> cache).
>> > >> >> > > - Unsure why Herve used Java 11 for the Shade plugin... I
>> mean,
>> > he
>> > >> >> could
>> > >> >> > > use 21 but also 8, but he shot for 11 that was EOL at the
>> moment
>> > of
>> > >> >> > release.
>> > >> >> > > - The rest is 21.
>> > >> >> > >
>> > >> >> > > ====
>> > >> >> > >
>> > >> >> > > So, the question for those refusing anything other than Java
>> 8 to
>> > >> >> _run_
>> > >> >> > > Maven (or to revert: for those refusing to run Maven on
>> "latest
>> > >> LTS",
>> > >> >> > that
>> > >> >> > > is currently 21):
>> > >> >> > > WHY?
>> > >> >> > >
>> > >> >> > >
>> > >> >> > > Thanks
>> > >> >> > > T
>> > >> >> >
>> > >> >> >
>> > ---------------------------------------------------------------------
>> > >> >> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> > >> >> > For additional commands, e-mail: dev-h...@maven.apache.org
>> > >> >> >
>> > >> >> >
>> > >> >>
>> > >> >
>> > >> >
>> > >> >
>> ---------------------------------------------------------------------
>> > >> > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
>> > >> > For additional commands, e-mail: dev-h...@maven.apache.org
>> > >>
>> > >
>> >
>>
>

Reply via email to