Skip to content

Commit a6d5f2f

Browse files
authored
for Scala 3 users, require Scala 3.1+ (#547)
1 parent 75c999f commit a6d5f2f

File tree

4 files changed

+33
-42
lines changed

4 files changed

+33
-42
lines changed

Diff for: .github/workflows/ci.yml

+12-14
Original file line numberDiff line numberDiff line change
@@ -11,45 +11,43 @@ jobs:
1111
fail-fast: false
1212
matrix:
1313
java: [8, 11, 17]
14-
scala: [2.11.x, 2.12.x, 2.13.x, 3.0.x]
15-
platform: [jvm, js, native]
14+
scala: [2.11.x, 2.12.x, 2.13.x, 3.x]
15+
platform: [JVM, JS, Native]
1616
mode: [normal]
1717
exclude:
18-
- scala: 3.0.x
19-
platform: native
2018
- java: 11
21-
platform: js
19+
platform: JS
2220
- java: 11
23-
platform: native
21+
platform: Native
2422
- java: 17
25-
platform: js
23+
platform: JS
2624
- java: 17
27-
platform: native
25+
platform: Native
2826
include:
2927
- java: 8
3028
scala: 2.12.x
3129
mode: testScalafix
32-
platform: jvm
30+
platform: JVM
3331
- java: 8
3432
scala: 2.12.x
3533
mode: testBinaryCompat
36-
platform: jvm
34+
platform: JVM
3735
- java: 8
3836
scala: 2.12.x
3937
mode: testScalafmt
40-
platform: jvm
38+
platform: JVM
4139
- java: 8
4240
scala: 2.12.x
4341
mode: headerCheck
44-
platform: jvm
42+
platform: JVM
4543
- java: 11
4644
scala: 2.12.x
4745
mode: normal
48-
platform: jvm
46+
platform: JVM
4947
- java: 17
5048
scala: 2.12.x
5149
mode: normal
52-
platform: jvm
50+
platform: JVM
5351
runs-on: ubuntu-latest
5452
env:
5553
CI_JDK: ${{matrix.java}}

Diff for: build.sbt

+10-15
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ lazy val root = project
3030
compat213JVM,
3131
compat213JS,
3232
compat213Native,
33-
compat30JVM,
34-
compat30JS,
35-
compat31Native,
33+
compat3JVM,
34+
compat3JS,
35+
compat3Native,
3636
scalafixData211,
3737
scalafixData212,
3838
scalafixData213,
@@ -53,8 +53,7 @@ lazy val junit = libraryDependencies += "com.github.sbt" % "junit-interface" % "
5353
lazy val scala211 = "2.11.12"
5454
lazy val scala212 = "2.12.16"
5555
lazy val scala213 = "2.13.8"
56-
lazy val scala30 = "3.0.2"
57-
lazy val scala31 = "3.1.3"
56+
lazy val scala3 = "3.1.3"
5857

5958
lazy val compat = new MultiScalaCrossProject(
6059
"compat",
@@ -158,8 +157,7 @@ lazy val compat = new MultiScalaCrossProject(
158157
val compat211 = compat(Seq(JSPlatform, JVMPlatform, NativePlatform), scala211)
159158
val compat212 = compat(Seq(JSPlatform, JVMPlatform, NativePlatform), scala212)
160159
val compat213 = compat(Seq(JSPlatform, JVMPlatform, NativePlatform), scala213)
161-
val compat30 = compat(Seq(JSPlatform, JVMPlatform), scala30)
162-
val compat31 = compat(Seq(JVMPlatform, NativePlatform), scala31)
160+
val compat3 = compat(Seq(JSPlatform, JVMPlatform, NativePlatform), scala3)
163161

164162
lazy val compat211JVM = compat211.jvm
165163
lazy val compat211JS = compat211.js
@@ -170,9 +168,9 @@ lazy val compat212Native = compat212.native
170168
lazy val compat213JVM = compat213.jvm
171169
lazy val compat213JS = compat213.js
172170
lazy val compat213Native = compat213.native
173-
lazy val compat30JVM = compat30.jvm
174-
lazy val compat30JS = compat30.js
175-
lazy val compat31Native = compat31.native
171+
lazy val compat3JVM = compat3.jvm
172+
lazy val compat3JS = compat3.js
173+
lazy val compat3Native = compat3.native
176174

177175
lazy val binaryCompatOld = project
178176
.in(file("binary-compat/old"))
@@ -335,8 +333,7 @@ lazy val scalafixTests = project
335333
.enablePlugins(BuildInfoPlugin, ScalafixTestkitPlugin)
336334

337335
val ciScalaVersion = sys.env.get("CI_SCALA_VERSION").flatMap(Version.parse)
338-
val isScalaJs = sys.env.get("CI_PLATFORM") == Some("js")
339-
val isScalaNative = sys.env.get("CI_PLATFORM") == Some("native")
336+
val ciPlatform = sys.env.get("CI_PLATFORM").map(p => if (p == "JVM") "" else p)
340337
val isScalafix = sys.env.get("CI_MODE") == Some("testScalafix")
341338
val isScalafmt = sys.env.get("CI_MODE") == Some("testScalafmt")
342339
val isBinaryCompat = sys.env.get("CI_MODE") == Some("testBinaryCompat")
@@ -370,9 +367,7 @@ inThisBuild {
370367
).foreach(k =>
371368
println(k.padTo(20, " ").mkString("") + " -> " + sys.env.getOrElse(k, "None")))
372369

373-
val platformSuffix = if (isScalaJs) "JS" else if (isScalaNative) "Native" else ""
374-
375-
val compatProject = s"compat${ciScalaVersion.get}$platformSuffix"
370+
val compatProject = s"compat${ciScalaVersion.get}${ciPlatform.get}"
376371
val binaryCompatProject = "binaryCompat"
377372

378373
val testProjectPrefix =

Diff for: project/MultiScalaProject.scala

+4-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ import java.io.File
3030
trait MultiScala {
3131
def majorMinor(in: String): String = {
3232
val Array(major, minor, _) = in.split("\\.")
33-
major + minor
33+
if (major == "2")
34+
s"$major$minor"
35+
else
36+
major
3437
}
3538

3639
def projectIdPerScala(name: String, scalaV: String): String = s"$name${majorMinor(scalaV)}"

Diff for: project/Version.scala

+7-12
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,19 @@
1-
case class Version(major: Int, minor: Int) {
2-
override def toString = s"${major}${minor}"
3-
}
4-
51
object Version {
62
// `(#.+)?` allows republishing for a new Scala version
73
// `|x` allows the sbt 1.7 style ".x" versions
84
private val versionRegex0 = "v?([0-9]+)\\.([0-9]+)\\.([0-9]+|x)(?:#.+)?".r
95
private val versionRegex1 = "v?([0-9]+)\\.([0-9]+)\\.([0-9]+|x)-(.+)(?:#.+)?".r
10-
private val versionRegex2 = "([0-9]+)\\.([0-9]+)(?:#.+)?".r
11-
private val versionRegex3 = "([0-9]+)(?:#.+)?".r
12-
def parse(raw: String): Option[Version] = {
6+
private val versionRegex2 = "([0-9]+)\\.([0-9]+|x)(?:#.+)?".r
7+
def parse(raw: String): Option[String] = {
138
raw match {
149
case versionRegex0(major, minor, _) =>
15-
Some(Version(major.toInt, minor.toInt))
10+
Some(s"${major.toInt}${minor.toInt}")
1611
case versionRegex1(major, minor, _, _) =>
17-
Some(Version(major.toInt, minor.toInt))
12+
Some(s"${major.toInt}${minor.toInt}")
13+
case versionRegex2(major, "x") =>
14+
Some(s"${major.toInt}")
1815
case versionRegex2(major, minor) =>
19-
Some(Version(major.toInt, minor.toInt))
20-
case versionRegex3(major) =>
21-
Some(Version(major.toInt, 0))
16+
Some(s"${major.toInt}${minor.toInt}")
2217
case _ =>
2318
None
2419
}

0 commit comments

Comments
 (0)