Gentoo Archives: gentoo-dev

From: Florian Schmaus <flow@g.o>
To: Sam James <sam@g.o>, gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] [PATCH] gradle.eclass: add new eclass
Date: Sat, 07 Jan 2023 10:58:34
Message-Id: 3b1aa701-c0b8-cde2-3590-6ea629b7214f@gentoo.org
In Reply to: Re: [gentoo-dev] [PATCH] gradle.eclass: add new eclass by Sam James
1 On 07/01/2023 05.29, Sam James wrote:
2 >
3 >
4 >> On 6 Jan 2023, at 17:20, Florian Schmaus <flow@g.o> wrote:
5 >>
6 >> Signed-off-by: Florian Schmaus <flow@g.o>
7 >> ---
8 >> eclass/gradle.eclass | 149 +++++++++++++++++++++++++++++++++++++++++
9 >> eclass/tests/gradle.sh | 62 +++++++++++++++++
10 >> 2 files changed, 211 insertions(+)
11 >> create mode 100644 eclass/gradle.eclass
12 >> create mode 100755 eclass/tests/gradle.sh
13 >>
14 >> diff --git a/eclass/gradle.eclass b/eclass/gradle.eclass
15 >> [...]
16 >
17 >> +
18 >> +# @ECLASS_VARIABLE: EGRADLE_MIN
19 >> +# @DEFAULT_UNSET
20 >> +# @DESCRIPTION:
21 >> +# Minimum required gradle version.
22 >> +
23 >> +# @ECLASS_VARIABLE: EGRADLE_MAX_EXCLUSIVE
24 >> +# @DEFAULT_UNSET
25 >> +# @DESCRIPTION:
26 >> +# First gradle version that is not supported.
27 >> +
28 >> +# @ECLASS_VARIABLE: EGRADLE_EXACT_VER
29 >> +# @DEFAULT_UNSET
30 >> +# @DESCRIPTION:
31 >> +# The exact required gradle version.
32 >> +
33 >
34 > It feels a pity to not use the now-somewhat standard
35 > PYTHON_COMPAT/LUA_COMPAT-style API.
36 >
37 > Is there a reason not to?
38 >
39 > If it doesn't fit how Gradle versioning works / the
40 > number of targets is likely to be far too high,
41 > It's fine as-is.
42
43 The _COMPAT-style API would work for Java LTS versions, but not for fast
44 moving targets like Gradle versions.
45
46 Gradle has overall a good compatibility story, breaking changes are
47 typically just introduced in new major versions. But sometimes you need
48 a particular Gradle version range, like [6.2,6.8) due the mixins of
49 Gradle plugins.
50
51 I expect that the number of Java projects that use Gradle will continue
52 to grow. Because of that we probably need to provide a diverse range of
53 Gradle versions.
54
55 - Flow