Skip to content

Commit 26a842d

Browse files
committed
build and test against scala 3.8.0
1 parent e0a5218 commit 26a842d

File tree

9 files changed

+32
-10
lines changed

9 files changed

+32
-10
lines changed

bin/test-release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ version=$1
66
scala212=2.12.20
77
scala213=2.13.17
88
scala3LTS=3.3.7
9-
scala3Next=3.7.4
9+
scala3Next=3.8.0
1010

1111
cs resolve \
1212
ch.epfl.scala:scalafix-interfaces:$version \

build.sbt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ lazy val interfaces = project
3636
props.put("scala35", scala35)
3737
props.put("scala36", scala36)
3838
props.put("scala37", scala37)
39+
props.put("scala38", scala38)
3940
props.put("scala3LTS", scala3LTS)
4041
props.put("scala3Next", scala3Next)
4142
val out =

project/Dependencies.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ object Dependencies {
1212
val scala35 = "3.5.2"
1313
val scala36 = "3.6.4"
1414
val scala37 = "3.7.4"
15+
val scala38 = "3.8.0-RC1"
1516
val scala3LTS = scala33
16-
val scala3Next = sys.props.getOrElse("scala3.nightly", scala37)
17+
val scala3Next = sys.props.getOrElse("scala3.nightly", scala38)
1718

1819
val bijectionCoreV = "0.9.8"
1920
val collectionCompatV = "2.14.0"

project/Mima.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ object Mima {
77
// See https://github.com/lightbend/mima
88
Seq(
99
ProblemFilters.exclude[Problem]("scalafix.internal.*"),
10-
ProblemFilters.exclude[Problem]("scala.meta.internal.*")
10+
ProblemFilters.exclude[Problem]("scala.meta.internal.*"),
1111
// Exceptions
12+
ProblemFilters.exclude[ReversedMissingMethodProblem]("scalafix.interfaces.Scalafix.scala38")
1213
)
1314
}
1415
}

project/ScalafixBuild.scala

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,11 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
3434
// https://github.com/scalameta/scalameta/issues/2485
3535
lazy val coreScalaVersions = Seq(scala212, scala213)
3636
lazy val cliScalaVersions = {
37-
val scala3Versions = Seq(scala33, scala35, scala36, scala37)
37+
val scala3Versions = Seq(scala33, scala35, scala36, scala37, scala38)
3838
val jdk = System.getProperty("java.specification.version").toDouble
3939
val unsupportedVersions =
4040
if (jdk >= 25) Seq(scala212, scala35, scala36)
41+
else if (jdk < 17) Seq(scala38)
4142
else Nil
4243
(coreScalaVersions ++ scala3Versions :+ scala3Next)
4344
.diff(unsupportedVersions)
@@ -85,16 +86,21 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
8586
scalaVersion.value.startsWith("2.12")
8687
}
8788
lazy val warnUnused = Def.setting {
88-
if (isScala3.value)
89+
val minor = scalaVersion.value.split('.')(1).toInt
90+
if (isScala3.value && minor >= 7)
91+
Seq("-Wunused:all")
92+
else if (isScala3.value)
8993
Seq(
9094
"-Wunused:all",
91-
"-Wunused:unsafe-warn-patvars" // only needed for <3.7.0
95+
"-Wunused:unsafe-warn-patvars"
9296
)
9397
else if (isScala213.value) Seq("-Wunused")
9498
else Seq("-Ywarn-unused")
9599
}
96100
lazy val targetJvm = Def.setting {
97-
if (isScala3.value) Seq("-release:8")
101+
val minor = scalaVersion.value.split('.')(1).toInt
102+
if (isScala3.value && minor >= 8) Seq("-release:17")
103+
else if (isScala3.value) Seq("-release:8")
98104
else if (isScala213.value) Seq("-release", "8")
99105
else Seq("-target:jvm-1.8")
100106
}
@@ -150,6 +156,7 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
150156
"scala35" -> scala35,
151157
"scala36" -> scala36,
152158
"scala37" -> scala37,
159+
"scala38" -> scala38,
153160
"scala3LTS" -> scala3LTS,
154161
"scala3Next" -> scala3Next,
155162
sbtVersion
@@ -241,7 +248,8 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
241248
)
242249

243250
private val PreviousScalaVersion: Map[String, Option[String]] = Map(
244-
scala37 -> Some("3.7.3")
251+
scala37 -> Some("3.7.3"),
252+
scala38 -> None
245253
)
246254

247255
override def buildSettings: Seq[Setting[_]] = List(

scalafix-cli/src/main/scala/scalafix/internal/interfaces/ScalafixImpl.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ final class ScalafixImpl extends Scalafix {
4242
Versions.scala36
4343
override def scala37(): String =
4444
Versions.scala37
45+
override def scala38(): String =
46+
Versions.scala38
4547
override def scala3LTS(): String =
4648
Versions.scala3LTS
4749
override def scala3Next(): String =

scalafix-interfaces/src/main/java/scalafix/interfaces/Scalafix.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,11 @@ public interface Scalafix {
9090
*/
9191
String scala37();
9292

93+
/**
94+
* The Scala 3.8 version in {@link #supportedScalaVersions()}
95+
*/
96+
String scala38();
97+
9398
/**
9499
* The Scala 3 LTS version in {@link #supportedScalaVersions()}
95100
*/
@@ -162,6 +167,8 @@ static Scalafix fetchAndClassloadInstance(String requestedScalaVersion, List<Rep
162167
scalaVersionKey = "scala36";
163168
} else if (requestedScalaMajorMinorOrMajorVersion.equals("3.7")) {
164169
scalaVersionKey = "scala37";
170+
} else if (requestedScalaMajorMinorOrMajorVersion.equals("3.8")) {
171+
scalaVersionKey = "scala38";
165172
} else if (requestedScalaMajorMinorOrMajorVersion.startsWith("3")) {
166173
scalaVersionKey = "scala3Next";
167174
} else {

scalafix-tests/integration/src/test/scala/scalafix/tests/interfaces/ScalafixSuite.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class ScalafixSuite extends AnyFunSuite {
4949
assert(api.scala35() == Versions.scala35)
5050
assert(api.scala36() == Versions.scala36)
5151
assert(api.scala37() == Versions.scala37)
52+
assert(api.scala38() == Versions.scala38)
5253
assert(api.scala3LTS() == Versions.scala3LTS)
5354
assert(api.scala3Next() == Versions.scala3Next)
5455
assert(
@@ -134,12 +135,12 @@ class ScalafixSuite extends AnyFunSuite {
134135
}
135136

136137
test("classload Scala 3 Next with full version") {
137-
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.7.0", repositories)
138+
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.8.0", repositories)
138139
assert(scalafixAPI.scalaVersion() == Versions.scala3Next)
139140
}
140141

141142
test("classload Scala 3 Next with major.minor version") {
142-
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.7", repositories)
143+
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.8", repositories)
143144
assert(scalafixAPI.scalaVersion() == Versions.scala3Next)
144145
}
145146

scalafix-tests/unit/src/test/scala/scalafix/tests/cli/InterfacesPropertiesSuite.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class InterfacesPropertiesSuite extends AnyFunSuite with BeforeAndAfterAll {
2929
check("scala35", Versions.scala35)
3030
check("scala36", Versions.scala36)
3131
check("scala37", Versions.scala37)
32+
check("scala38", Versions.scala38)
3233
check("scala3LTS", Versions.scala3LTS)
3334
check("scala3Next", Versions.scala3Next)
3435

0 commit comments

Comments
 (0)