I forgot to mention that this library is already a multi release jar
(because of Caffeine caching library).

For those interested I have created a reference project to show how you can
setup the testing for such a case and have it also work in CI systems like
Github Actions and Gitlab CI:
https://github.com/nielsbasjes/ToolChainsInCiBuilds

Niels

On Sat, Sep 14, 2024 at 12:11 PM Niels Basjes <ni...@basjes.nl> wrote:

> Hi,
>
> The problem I have is really a balancing act between several things I want
> to have at the same time that are kinda incompatible.
>
> This is the actual usecase
> https://github.com/nielsbasjes/yauaa/blob/5501a47189e93f4917afddafbf766d024b907f0a/udfs/pom.xml#L90-L100
>
> I have a library that does something useful and I want to be able to run
> everywhere including systems that still need Java 8.
> During integration testing of the core library I run the tests under JDK
> 8, 11, 17 and 21 (using toolchains) to ensure it actually works in all of
> those LTS JVMs.
> I do not like to rely on the non-LTS Java versions for building my code
> with: too many updates.
> Because of some maven plugins I need to run the build under a recent Java
> version, I have pinned that to the latest LTS: 21.
>
> I have several ready-to-run UDFs wrapping this functionality for various
> engines to run in. Trino (https://trino.io/) is the only one that
> requires Java 22 and this causes problems in my build.
>
> I also want my project to be reproducible so it is also here
> https://github.com/jvm-repo-rebuild/reproducible-central/blob/master/content%2Fnl%2Fbasjes%2Fparse%2Fuseragent%2Fyauaa%2FREADME.md
> The reproducible site (of which I have written part of the code together
> with Hervé Boutemy <https://github.com/hboutemy>) uses docker to do the
> build.
> A toolchains build that also includes JDK 22 is not in there yet (there is
> no apt install for JDK 22 available because it is considered unstable).
> As a consequence the reproducibility of my project has been off since the
> Trino switch to JDK 22.
>
> So I have the module activated on the JDK 22+ version that maven runs
> under, but I have to run it under 21 to be reproducible. Hence I need a
> different way of activating the profile.
>
> I have been looking if I can activate a profile if a toolchain version is
> available but that is not yet a feature.
> Side question: Being able to activate an optional profile IF a specific
> toolchain is available; Would that be a desirable feature in maven?
>
> Back to my original question: Is the observed behaviour of the
> maven-release-plugin as intended?
>
> Niels Basjes
>
>
>
>
>
>
>
> On Fri, Sep 13, 2024, 19:26 Tamás Cservenák <ta...@cservenak.net> wrote:
>
>> Howdy,
>>
>> I am just shooting in the dark, but why not:
>> * activate profile on Java 22+
>> * release on Java 22?
>>
>> (assuming the other module have maven.compiler.release=21 or some
>> reasonable value)
>>
>> HTH
>> T
>>
>> On Fri, Sep 13, 2024 at 11:41 AM Niels Basjes <ni...@basjes.nl> wrote:
>> >
>> > Hi,
>> >
>> > I have in my project a maven module that is only activated if a specific
>> > profile is active (by default it is not active).
>> > Side note: It is an part that requires Java 22, optional during
>> development
>> > and I do want to release it with the maven-release-plugin
>> >
>> > I have put this profile into both the list of profiles that need to be
>> > active during preparation and release  (see sketch below).
>> >
>> > When I do "mvn release:prepare" it does not update the module2/pom.xml
>> with
>> > the new version.
>> > I found that I need to explicitly activate it on the commandline as
>> well to
>> > activate it there too "mvn release:prepare -PActivateModule2"
>> >
>> > I expected this profile to be active during the entire prepare phase
>> (i.e.
>> > including the "update the version" part).
>> >
>> > Is this an omission/bug or is this as intended?
>> >
>> > Niels Basjes
>> >
>> > <build>
>> >   <plugins>
>> >     <plugin>
>> >       <groupId>org.apache.maven.plugins</groupId>
>> >       <artifactId>maven-release-plugin</artifactId>
>> >       <version>3.1.1</version>
>> >       <configuration>
>> >         <preparationProfiles>ActivateModule2</preparationProfiles>
>> >         <releaseProfiles>ActivateModule2</releaseProfiles>
>> >       </configuration>
>> >     </plugin>
>> >   </plugins>
>> > </build>
>> >
>> > <modules>
>> >   <module>module1</module>
>> > </modules>
>> >
>> > <profiles>
>> >   <profile>
>> >     <id>ActivateModule2</id>
>> >     <modules>
>> >       <module>module2</module>
>> >     </modules>
>> >   </profile>
>> > </profiles>
>> >
>> >
>> >
>> > --
>> > Best regards / Met vriendelijke groeten,
>> >
>> > Niels Basjes
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
>> For additional commands, e-mail: users-h...@maven.apache.org
>>
>>

-- 
Best regards / Met vriendelijke groeten,

Niels Basjes

Reply via email to