Toolchains is not needed. Many plugins don't even support it.  However, the 
'release' flag only checks stuff in java itself as well as your codes direct 
usage.  It doesn't look in the libraries you use indirectly.  For that you need 
the enforcer plugin to look at the byte code.  Trust the cross compilation...it 
works!

Jeremy


-----Original Message-----
From: Henning Schmiedehausen <henn...@schmiedehausen.org> 
Sent: Monday, June 5, 2023 7:54 PM
To: Maven Developers List <dev@maven.apache.org>
Subject: Re: Question - JDK Minimum of future Apache Maven 4.0.0

To get this discussion a bit more back to actual substance:

Do you still need toolchains with JDK 11/17? I set the release version to "8" 
(or anything else) in my builds, ripped out all the toolchains and it "just 
works". We have done this for Jdbi for ages (require Java 11+ as the build JDK; 
we even enforce "latest LTS" for releases) and compile to Java 8 bytecode. So 
far, we had zero complaints from users that the resulting releases do not work 
/ cause problems on JDK 8.

It seems to me that toolchains are only relevant if you need to compile to Java 
1.6 or lower (shudder). The current LTS supports any version post-7 as release 
target.

Am I missing something?

Oh, I am totally cool with Maven 4 requiring Java 17 to run. In fact, this will 
give us an opportunity to actually use java 17 code to *write* maven, which in 
turn will collapse all of those thousand little domain objects into single line 
records. Can't wait for that. :-)

The challenge for plugin writers will be to support Maven 3.x (mostly 3.8,
3.9) and 4 evenly. The current set of available modules and libraries makes 
that hard. A page with "use this to be compatible with that" would be helpful.

-h




On Mon, Jun 5, 2023 at 2:23 PM Delany <delany.middle...@gmail.com> wrote:

> Your inclination to ignore points of the debate doesn't do your own 
> arguments any justice.
> Multiple times it's been explained that raising the required runtime 
> JDK in Maven 4 will not prevent you from
> - building with a lower JDK (via toolchains)
> - targeting a lower JDK (via the release property)
> - building with Maven 3
>
> This is the main point of the debate, not the language.
>
> On Mon, 5 Jun 2023 at 21:42, Hunter C Payne 
> <hunterpayne2...@yahoo.com.invalid> wrote:
>
> > * Attract devsAbsolutely not.  If you want to attract devs, switch 
> > to a language that is actually growing (no I'm advocating for this).  
> > That
> isn't
> > Java.  If anything, this will lose you devs.  The company I work for 
> > will be leaving Maven if you stop supporting Java8.  That's 300 
> > users you lose right there.  That's just 1 company.  You will lose 
> > users in droves if
> you
> > stop Java8 support.  Many companies don't have/put enough resources 
> > into this type of upgrade.  Its hard to justify to the business and 
> > it makes lots of work for devs (expensive).  If it is cheaper to 
> > switch build systems that to upgrade the JVM, that's exactly what 
> > folks will do.  My company certainly will (not my decision so don't 
> > try to convince me, I'm not the one you have to convince).
> >
> > * CDS for non-OpenJ9-usersI'm not sure this is something that is 
> > really taken advantage of by Maven.  Perhaps I am wrong.
> >
> > * Better clarity of code (yes, I mean that)That you say that you 
> > actually mean this says it all.  Clearly this is something that 
> > isn't agreed upon universally.  Your personal taste shouldn't decide 
> > the future of a
> project
> > used by so many others.
> > * No additional work (we don't need to migrate, just use the 
> > features
> when
> > modifying a line for a bug/feature anyway)This is simply not true.  
> > There have been comments by devs on this very list, in this very 
> > discussion
> that
> > disprove this point.  It isn't OK to just ignore their input because 
> > you really want to use lambdas.
> >
> > * We leave no one behind b/c of Maven 3.8/3.9, thus no drawbacks.You have
> > that backwards.   If you leave Java8, you leave behind everyone who can't
> > upgrade their source base.  It seems to me that the size of the 
> > group of
> > Java8 folks you will leave behind is quite large.  So your argument 
> > about no drawbacks isn't credible.  There are no drawbacks for you, 
> > that isn't the same as there being no drawbacks for the entire user base.
> > * By the time Maven 4 final is out, your views might have changed!I 
> > write most of my code in Scala so I doubt it seriously.
> >
> > Your points are not nearly as strong as you imply with your tone.  
> > Some
> of
> > them indicate a lack of understanding of some more advanced parts of 
> > FP which is understandable for Java devs but doesn't make your 
> > points correct.  And your analysis of the impact on the userbase is 
> > just plain wrong.  If you want people to bomb this list with 
> > complains, drop Java 8 support and enjoy the rage postings you get 
> > from 100s to 1000s of devs
> who
> > work for companies and projects that don't have to resources to upgrade.
> >
> > Hunter
> > PS Lambdas are only useful if there is function composition and currying.
> > Java lacks both.  So the debate over lambdas is pretty amusing to 
> > me.  It is just syntactic sugar.  It doesn't actually give you the 
> > ability to do other things like in Scala or Kotlin.  So I don't 
> > really understand why
> you
> > want to use them so much.  Are for loops really that hard to write?  
> > I
> mean
> > there is already so much ceremony in Java that saving 3 or 4 
> > keystrokes
> per
> > loop doesn't really make any difference.
> >
> >
> >    On Monday, June 5, 2023 at 11:52:16 AM PDT, Tamás Cservenák < 
> > ta...@cservenak.net> wrote:
> >
> >  Seems people missed this (somewhat related) thread:
> >
> > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flis
> > ts.apache.org%2Fthread%2Fkpsrb28nst84vtohwngy3140g1r0ydd4&data=05%7C
> > 01%7C%7C230889510b4d49b5f9e708db6620422b%7C84df9e7fe9f640afb435aaaaa
> > aaaaaaa%7C1%7C0%7C638216060954040394%7CUnknown%7CTWFpbGZsb3d8eyJWIjo
> > iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7
> > C%7C%7C&sdata=m0Xv1jDQIJ5tqgovvXOzJ0k8mS06%2BcjO6M%2F3NyiS7wY%3D&res
> > erved=0
> >
> > Thanks
> >
> >
> > On Mon, Jun 5, 2023, 20:40 Hunter C Payne <hunterpayne2...@yahoo.com 
> > .invalid>
> > wrote:
> >
> > >  Hi,  Karl, I'm not sure I agree you have "stated a benefit" so far.
> > > There have been plenty of hand-wavy arguments but nothing really solid.
> > > That's why you are getting so much push back.  Point to a specific
> > feature
> > > you need or some other thing that would help the project in some 
> > > significant way.  At the moment, the argument is basically, "its 
> > > newer
> so
> > > its better", I'm sorry but that simply is not true.  Make a better 
> > > case
> > and
> > > you will get less pushback.
> > > Hunter
> > >
> > >    On Monday, June 5, 2023 at 06:03:26 AM PDT, Karl Heinz Marbaise 
> > > < khmarba...@gmx.de> wrote:
> > >
> > >  Hi,
> > >
> > > On 03.06.23 11:46, Hervé Boutemy wrote:
> > > > +1
> > > >
> > > > I really don't what benefit we get from going to Java 17
> > >
> > > which was already part of the email:
> > >
> > >
> > >  > Based on the argument we don't need  features of JDK17+ I see a
> number
> > >  > of things which could make our handling/maintenance easier for
> example
> > >  > using sealed classes to prevent exposing internal things to 
> > > public
> > which
> > >  > could be used etc. also some other small features (`var` for
> example;
> > >  > Text-Blocks in Tests etc) or using records in some situation 
> > > (really immutability)..
> > >  >
> > >  >
> > >
> > >
> > > Kind regards
> > > Karl Heinz Marbaise
> > >
> > > >
> > > > I perfectly see the impact we'll have on our users: for what benefit?
> > > >
> > > > notice that this will also impact all plugins: and given the few 
> > > > work
> > > done on
> > > > plugins to clearly show what plugin version remains compatible 
> > > > with a
> > JDK
> > > > release, I feel we're not taking the topic the right way
> > > >
> > > > Le vendredi 2 juin 2023, 01:50:53 CEST Hunter C Payne a écrit :
> > > >>  I'm not sure I would worry too much about that David.  I think 
> > > >> most
> > > devs
> > > >> who want better syntax moved from Java sometime ago.  They 
> > > >> might
> still
> > > be
> > > >> on the JVM just not writing Java.  Also, Maven is a mature
> project.  I
> > > >> don't think devs considering contributing to it are thinking 
> > > >> about
> > using
> > > >> the latest and greatest version of Java.  Compatibility is 
> > > >> probably
> a
> > > >> bigger concern for the user base.  Just my opinion.
> > > >>
> > > >> Hunter
> > > >>      On Thursday, June 1, 2023 at 04:17:26 PM PDT, David Jencks 
> > > >> <david.a.jen...@gmail.com> wrote:
> > > >>
> > > >>  I wonder if having maven require java 8 syntax discourages any
> > > potential
> > > >> contributors who are used to coding using more recent developments.
> I
> > > have
> > > >> no idea how to tell, but maybe someone else does.
> > > >>
> > > >> David Jencks
> > > >>
> > > >>> On Jun 1, 2023, at 3:02 PM, Karl Heinz Marbaise 
> > > >>> <khmarba...@gmx.de
> >
> > > wrote:
> > > >>>
> > > >>> Hi,
> > > >>>
> > > >>> my clear opinion is to go  with most recent JDK LTS version 
> > > >>> for the release point of Maven 4.0.0 which I assume will be JDK 21...
> > > >>>
> > > >>> That means clear the build time requirement which is 
> > > >>> completely different from runtime of an application.
> > > >>>
> > > >>>
> > > >>> Older JDK's are supported by some vendors by having particular
> > special
> > > >>> support which most of the time requires special contracts 
> > > >>> (means
> also
> > > >>> paying money for it)..some of them offering builds without 
> > > >>> paying
> > money
> > > >>> yes..
> > > >>>
> > > >>> Older runtime target are supported with different approaches 
> > > >>> like Toolchain or via `--release XX` which exists since JDK9+.
> > > >>>
> > > >>>
> > > >>> Furthermore if someone is not capable of upgrading the build
> > > environment
> > > >>> to JDK9+ they can continue to use Maven 3.8.X or Maven 3.9.X...
> > > >>>
> > > >>> If it would be requirement to port things back to 3.8.X or 
> > > >>> 3.9.X it could be handled by someone who has the time etc. to 
> > > >>> do that ... if
> > > not,
> > > >>> those people might think of paying someone to do that work...
> > > >>>
> > > >>>
> > > >>> The given argument about JPMS for migration causes issues is 
> > > >>> from
> my
> > > >>> point of view false-positive because migration to newer JDK
> versions
> > > >>> does not require JPMS usage...
> > > >>>
> > > >>> Even platforms like AWS support JDK17 in the meantime which is 
> > > >>> the runtime...
> > > >>>
> > > >>>
> > > >>> Based on the maintenance part it would mean in consequence to
> > downgrade
> > > >>> to even JDK7... (or even lower) because you can get support 
> > > >>> for
> older
> > > >>> JDK version in some ways... (JDK7 from azul for example)
> > > >>>
> > > >>> Kind regards
> > > >>> Karl Heinz Marbaise
> > > >>>
> > > >>> [1]
> > > https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fw
> > > ww.oracle.com%2Fjava%2Ftechnologies%2Fjava-se-support-roadmap.html
> > > &data=05%7C01%7C%7C230889510b4d49b5f9e708db6620422b%7C84df9e7fe9f6
> > > 40afb435aaaaaaaaaaaa%7C1%7C0%7C638216060954040394%7CUnknown%7CTWFp
> > > bGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVC
> > > I6Mn0%3D%7C3000%7C%7C%7C&sdata=hclJ3PGTE471LlgzWfO%2BOyOvl6tphOeqR
> > > bzMPUd57q4%3D&reserved=0
> > >
> > >
> > > ------------------------------------------------------------------
> > > --- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For 
> > > additional commands, e-mail: dev-h...@maven.apache.org
> > >
> > >
> >
>

Reply via email to