Skip to content

Commit d046002

Browse files
committed
Add Groovy 6 Alpha 1 as a testing variant
Introduces Groovy 6.0.0-alpha-1 to the CI matrix for early compatibility testing, without including it in published releases. Adds `additionalVariantsList` to gradle.properties (analogous to `additionalJavaTestVersionsList`) as a general mechanism for declaring testing/preview variants. Variants listed there are included in the build-and-verify CI matrix but never passed to release-spock, so they cannot appear in any release without any conditional workflow logic. - gradle.properties: add `additionalVariantsList=6.0` - libs.versions.toml: add groovy6 version pin and library alias for Renovate - build.gradle: add variant==6.0 config block (org.apache.groovy, Java 17+); update ghActionsPublish Java guard to accept Java 17 for variant 6.0 - common.main.kts: expand Matrix.full to include additionalVariants; add Java 17 minimum exclusion for 6.0; rewrite exclude lambda with `when`; update Windows/macOS includes to use Java 17 for 6.0 - release.main.kts: release-spock uses only axes.variants — no changes needed since additional variants are simply absent from the publish matrix
1 parent 00aa078 commit d046002

7 files changed

Lines changed: 57 additions & 10 deletions

File tree

.github/codecov.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ codecov:
33

44
comment:
55
layout: "reach, diff, flags, files"
6-
after_n_builds: 24
6+
after_n_builds: 29

.github/workflows/branches-and-prs.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ jobs:
5757
- '3.0'
5858
- '4.0'
5959
- '5.0'
60+
- '6.0'
6061
java:
6162
- '8'
6263
- '11'
@@ -78,6 +79,12 @@ jobs:
7879
- variant: '5.0'
7980
java: '8'
8081
os: 'ubuntu-latest'
82+
- variant: '6.0'
83+
java: '8'
84+
os: 'ubuntu-latest'
85+
- variant: '6.0'
86+
java: '11'
87+
os: 'ubuntu-latest'
8188
include:
8289
- variant: '2.5'
8390
java: '8'
@@ -91,6 +98,9 @@ jobs:
9198
- variant: '5.0'
9299
java: '11'
93100
os: 'windows-latest'
101+
- variant: '6.0'
102+
java: '17'
103+
os: 'windows-latest'
94104
- variant: '2.5'
95105
java: '8'
96106
os: 'macos-latest'
@@ -103,6 +113,9 @@ jobs:
103113
- variant: '5.0'
104114
java: '11'
105115
os: 'macos-latest'
116+
- variant: '6.0'
117+
java: '17'
118+
os: 'macos-latest'
106119
steps:
107120
- id: 'step-0'
108121
name: 'Checkout Repository'

.github/workflows/common.main.kts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ data class Matrix(
8686
data class Axes(
8787
val javaVersions: List<String>,
8888
val additionalJavaTestVersions: List<String>,
89-
val variants: List<String>
89+
val variants: List<String>,
90+
val additionalVariants: List<String>
9091
)
9192

9293
data class Element(
@@ -137,19 +138,27 @@ fun WorkflowBuilder.job(
137138
val Matrix.Companion.full
138139
get() = Matrix(
139140
operatingSystems = listOf("ubuntu-latest"),
140-
variants = axes.variants,
141+
variants = axes.variants + axes.additionalVariants,
141142
javaVersions = axes.javaVersions + axes.additionalJavaTestVersions,
142143
exclude = {
143-
((variant == "2.5") && (javaVersion!!.toInt() >= 17)) ||
144-
((variant == "5.0") && (javaVersion!!.toInt() < 11))
144+
when (variant) {
145+
"2.5" -> javaVersion!!.toInt() >= 17
146+
"5.0" -> javaVersion!!.toInt() < 11
147+
"6.0" -> javaVersion!!.toInt() < 17
148+
else -> false
149+
}
145150
},
146151
includes = listOf("windows-latest", "macos-latest")
147152
.map { Matrix.Element(operatingSystem = it) }
148153
.flatMap { element ->
149-
axes.variants.map {
154+
(axes.variants + axes.additionalVariants).map {
150155
element.copy(
151156
variant = it,
152-
javaVersion = if (it == "5.0") "11" else axes.javaVersions.first()
157+
javaVersion = when (it) {
158+
"5.0" -> "11"
159+
"6.0" -> "17"
160+
else -> axes.javaVersions.first()
161+
}
153162
)
154163
}
155164
}
@@ -166,7 +175,8 @@ val Matrix.Companion.axes by lazy {
166175
Matrix.Axes(
167176
properties.getList("javaVersionsList"),
168177
properties.getList("additionalJavaTestVersionsList"),
169-
properties.getList("variantsList")
178+
properties.getList("variantsList"),
179+
properties.getList("additionalVariantsList")
170180
)
171181
}
172182
}

.github/workflows/release.yaml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ jobs:
3737
- '3.0'
3838
- '4.0'
3939
- '5.0'
40+
- '6.0'
4041
java:
4142
- '8'
4243
- '11'
@@ -58,6 +59,12 @@ jobs:
5859
- variant: '5.0'
5960
java: '8'
6061
os: 'ubuntu-latest'
62+
- variant: '6.0'
63+
java: '8'
64+
os: 'ubuntu-latest'
65+
- variant: '6.0'
66+
java: '11'
67+
os: 'ubuntu-latest'
6168
include:
6269
- variant: '2.5'
6370
java: '8'
@@ -71,6 +78,9 @@ jobs:
7178
- variant: '5.0'
7279
java: '11'
7380
os: 'windows-latest'
81+
- variant: '6.0'
82+
java: '17'
83+
os: 'windows-latest'
7484
- variant: '2.5'
7585
java: '8'
7686
os: 'macos-latest'
@@ -83,6 +93,9 @@ jobs:
8393
- variant: '5.0'
8494
java: '11'
8595
os: 'macos-latest'
96+
- variant: '6.0'
97+
java: '17'
98+
os: 'macos-latest'
8699
steps:
87100
- id: 'step-0'
88101
name: 'Checkout Repository'

build.gradle

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ ext {
5353
}
5454
javaVersion = 11
5555
}
56+
} else if (variant == 6.0) {
57+
groovyGroup = "org.apache.groovy"
58+
groovyVersion = libs.versions.groovy6.get()
59+
minGroovyVersion = "6.0.0"
60+
maxGroovyVersion = "6.9.99"
61+
if (javaVersion < 17) {
62+
throw new InvalidUserDataException("Groovy $variant is not compatible with Java $javaVersion")
63+
}
5664
} else {
5765
throw new InvalidUserDataException("Unknown variant: $variant. Choose one of: $variants")
5866
}
@@ -238,8 +246,8 @@ if (gradle.startParameter.taskNames == ["ghActionsPublish"] || gradle.startParam
238246
}
239247

240248
if (originalStartParameterTaskNames == ["ghActionsPublish"]) {
241-
if ((javaVersion != javaVersions.min()) && ((variant != 5.0) || (javaVersion != 11))) {
242-
throw new IllegalArgumentException("ghActionsPublish can only be run on Java ${javaVersions.min()} (or 11 for variant 5.0) but was run on $javaVersion")
249+
if ((javaVersion != javaVersions.min()) && ((variant != 5.0) || (javaVersion != 11)) && ((variant != 6.0) || (javaVersion != 17))) {
250+
throw new IllegalArgumentException("ghActionsPublish can only be run on Java ${javaVersions.min()} (or 11 for variant 5.0, 17 for variant 6.0) but was run on $javaVersion")
243251
}
244252
/*
245253
We want to release only snapshots directly from master, final releases will be tagged and then published from that tag.

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,5 @@ org.gradle.caching=true
2323
javaVersionsList=8, 11, 17, 21, 25
2424
additionalJavaTestVersionsList=
2525
variantsList=2.5, 3.0, 4.0, 5.0
26+
additionalVariantsList=6.0
2627
kotlin.code.style=official

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ groovy2 = '2.5.23'
44
groovy3 = '3.0.25'
55
groovy4 = '4.0.32'
66
groovy5 = '5.0.6'
7+
groovy6 = '6.0.0-alpha-1'
78
jacoco = '0.8.14'
89
junit5 = '5.14.4'
910
junit6 = '6.1.0'
@@ -50,3 +51,4 @@ groovy-v2 = { module = "org.codehaus.groovy:groovy", version.ref="groovy2" }
5051
groovy-v3 = { module = "org.codehaus.groovy:groovy", version.ref="groovy3" }
5152
groovy-v4 = { module = "org.apache.groovy:groovy", version.ref="groovy4" }
5253
groovy-v5 = { module = "org.apache.groovy:groovy", version.ref="groovy5" }
54+
groovy-v6 = { module = "org.apache.groovy:groovy", version.ref="groovy6" }

0 commit comments

Comments
 (0)