@@ -162,32 +162,34 @@ lazy val expressionCompiler = projectMatrix
162
162
.customRow(true , Seq (scala34PlusAxis, VirtualAxis .jvm), p => p.dependsOn(tests3 % Test ))
163
163
.settings(
164
164
name := " scala-expression-compiler" ,
165
- crossScalaVersions ++= CrossVersion
166
- .partialVersion(scalaVersion.value)
167
- .collect {
165
+ crossScalaVersions ++= {
166
+ SemVer (scalaVersion.value) match {
168
167
// NOTE: Adding new handle for Scala version requires updating ./.github/workflows/release-expression-compiler.yml
169
168
// format: off
170
- case (2 , 12 ) => Seq (" 2.12.19" , " 2.12.18" , " 2.12.17" , " 2.12.16" , " 2.12.15" , " 2.12.14" , " 2.12.13" )
171
- case (2 , 13 ) => Seq (" 2.13.14" , " 2.13.13" , " 2.13.12" , " 2.13.11" , " 2.13.10" , " 2.13.9" , " 2.13.8" , " 2.13.7" , " 2.13.6" , " 2.13.5" , " 2.13.4" )
172
- case (3 , 0 ) => Seq (" 3.0.2" , " 3.0.1" , " 3.0.0" )
173
- case (3 , 1 | 2 | 3 ) => Seq (" 3.3.3" , " 3.3.2" , " 3.3.1" , " 3.3.0" , " 3.2.2" , " 3.2.1" , " 3.2.0" , " 3.1.3" , " 3.1.2" , " 3.1.1" , " 3.1.0" )
174
- case (3 , _) => Seq (" 3.5.1-RC1" , " 3.5.0-RC5" , " 3.4.2" , " 3.4.1" , " 3.4.0" )
169
+ case (2 , 12 , _) => Seq (" 2.12.20" , " 2.12.19" , " 2.12.18" , " 2.12.17" , " 2.12.16" , " 2.12.15" , " 2.12.14" , " 2.12.13" )
170
+ case (2 , 13 , _) => Seq (" 2.13.14" , " 2.13.13" , " 2.13.12" , " 2.13.11" , " 2.13.10" , " 2.13.9" , " 2.13.8" , " 2.13.7" , " 2.13.6" , " 2.13.5" , " 2.13.4" )
171
+ case (3 , 0 , _) => Seq (" 3.0.2" , " 3.0.1" , " 3.0.0" )
172
+ case (3 , 1 | 2 | 3 , _) => Seq (" 3.3.4-RC1" , " 3.3.3" , " 3.3.2" , " 3.3.1" , " 3.3.0" , " 3.2.2" , " 3.2.1" , " 3.2.0" , " 3.1.3" , " 3.1.2" , " 3.1.1" , " 3.1.0" )
173
+ case (3 , _, _) => Seq (" 3.5.1-RC2" , " 3.5.0" , " 3.4.3" , " 3.4.2" , " 3.4.1" , " 3.4.0" )
174
+ case _ => Seq .empty
175
175
// format: on
176
176
}
177
- .toSeq
178
- .flatten,
177
+ },
179
178
crossScalaVersions := crossScalaVersions.value.distinct,
180
179
libraryDependencies ++= Seq (Dependencies .munit % Test ) ++
181
180
onScalaVersion(scala212 = Some (Dependencies .scalaCollectionCompat), scala213 = None , scala3 = None ).value,
182
181
crossTarget := target.value / s " scala- ${scalaVersion.value}" ,
183
182
crossVersion := CrossVersion .full,
184
183
Compile / unmanagedSourceDirectories ++= {
185
184
val sourceDir = (Compile / sourceDirectory).value
186
- CrossVersion .partialVersion(scalaVersion.value).collect {
187
- case (3 , 0 ) => sourceDir / s " scala-3.0 "
188
- case (3 , 1 | 2 | 3 ) => sourceDir / s " scala-3.1+ "
189
- case (3 , _) => sourceDir / s " scala-3.4+ "
185
+ val fileNames = SemVer (scalaVersion.value) match {
186
+ case (3 , 0 , _) => Seq (" scala-3.0" )
187
+ case (3 , 1 | 2 | 3 , patch) if patch <= 3 => Seq (" scala-3.1+" , " scala-3.1.0-3.3.3" )
188
+ case (3 , 1 | 2 | 3 , _) => Seq (" scala-3.1+" , " scala-3.3.4+" )
189
+ case (3 , _, _) => Seq (" scala-3.4+" , " scala-3.3.4+" )
190
+ case _ => Seq .empty
190
191
}
192
+ fileNames.map(sourceDir / _)
191
193
},
192
194
Test / unmanagedSourceDirectories ++= {
193
195
val sourceDir = (Test / sourceDirectory).value
@@ -250,10 +252,10 @@ lazy val scala31PlusAxis = VirtualAxis.ScalaVersionAxis(Dependencies.scala31Plus
250
252
lazy val scala34PlusAxis = VirtualAxis .ScalaVersionAxis (Dependencies .scala34Plus, " 34Plus" )
251
253
252
254
def onScalaVersion [T ](scala212 : T , scala213 : T , scala3 : T ) = Def .setting {
253
- CrossVersion .partialVersion (scalaVersion.value) match {
254
- case Some (( 2 , 12 ) ) => scala212
255
- case Some (( 2 , 13 ) ) => scala213
256
- case Some (( 3 , _) ) => scala3
255
+ SemVer (scalaVersion.value) match {
256
+ case ( 2 , 12 , _ ) => scala212
257
+ case ( 2 , 13 , _ ) => scala213
258
+ case ( 3 , _, _ ) => scala3
257
259
case _ => ???
258
260
}
259
261
}
0 commit comments