Skip to content

Commit 37beb14

Browse files
committed
fail hard on EOL Scala 3 minors
1 parent 72a3282 commit 37beb14

File tree

8 files changed

+34
-56
lines changed

8 files changed

+34
-56
lines changed

build.sbt

-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ lazy val interfaces = project
3333
props.put("scala212", scala212)
3434
props.put("scala213", scala213)
3535
props.put("scala33", scala33)
36-
props.put("scala35", scala35)
3736
props.put("scala36", scala36)
3837
props.put("scala3LTS", scala3LTS)
3938
props.put("scala3Next", scala3Next)

project/Dependencies.scala

-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ object Dependencies {
88
val scala212 = sys.props.getOrElse("scala212.nightly", "2.12.20")
99
val scala213 = sys.props.getOrElse("scala213.nightly", "2.13.16")
1010
val scala33 = "3.3.5"
11-
val scala35 = "3.5.2"
1211
val scala36 = "3.6.4"
1312
val scala3LTS = scala33
1413
val scala3Next = sys.props.getOrElse("scala3.nightly", scala36)

project/Mima.scala

+1-4
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@ object Mima {
99
ProblemFilters.exclude[Problem]("scalafix.internal.*"),
1010
ProblemFilters.exclude[Problem]("scala.meta.internal.*"),
1111
// Exceptions
12-
ProblemFilters.exclude[DirectMissingMethodProblem]("scalafix.v0.Signature#Self.syntax"),
13-
ProblemFilters.exclude[ReversedMissingMethodProblem]("scalafix.interfaces.Scalafix.scala33"),
14-
ProblemFilters.exclude[ReversedMissingMethodProblem]("scalafix.interfaces.Scalafix.scala35"),
15-
ProblemFilters.exclude[ReversedMissingMethodProblem]("scalafix.interfaces.Scalafix.scala36")
12+
ProblemFilters.exclude[DirectMissingMethodProblem]("scalafix.interfaces.Scalafix.scala35")
1613
)
1714
}
1815
}

project/ScalafixBuild.scala

+7-9
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,13 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
3333

3434
// https://github.com/scalameta/scalameta/issues/2485
3535
lazy val coreScalaVersions = Seq(scala212, scala213)
36-
lazy val cliScalaVersions = {
37-
val jdk = System.getProperty("java.specification.version").toDouble
38-
val scala3Versions =
39-
// Scala 3.5 will never support JDK 23
40-
if (jdk >= 23) Seq(scala33, scala36)
41-
else Seq(scala33, scala35, scala36)
42-
(coreScalaVersions ++ scala3Versions :+ scala3Next).distinct
43-
}
36+
lazy val cliScalaVersions = Seq(
37+
scala212,
38+
scala213,
39+
scala33,
40+
scala36,
41+
scala3Next
42+
).distinct
4443
lazy val cliScalaVersionsWithTargets: Seq[(String, TargetAxis)] =
4544
cliScalaVersions.map(sv => (sv, TargetAxis(sv))) ++
4645
Seq(scala213, scala212).flatMap { sv =>
@@ -146,7 +145,6 @@ object ScalafixBuild extends AutoPlugin with GhpagesKeys {
146145
"scala212" -> scala212,
147146
"scala213" -> scala213,
148147
"scala33" -> scala33,
149-
"scala35" -> scala35,
150148
"scala36" -> scala36,
151149
"scala3LTS" -> scala3LTS,
152150
"scala3Next" -> scala3Next,

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ final class ScalafixImpl extends Scalafix {
3737
override def scala33(): String =
3838
Versions.scala33
3939
override def scala35(): String =
40-
Versions.scala35
40+
throw new java.lang.UnsupportedOperationException(
41+
"Scala 3.5 is no longer supported; the final version supporting it is Scalafix 0.13.x"
42+
)
4143
override def scala36(): String =
4244
Versions.scala36
4345
override def scala3LTS(): String =

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

+8-10
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,7 @@ public interface Scalafix {
7575
*/
7676
String scala33();
7777

78-
/**
79-
* The Scala 3.5 version in {@link #supportedScalaVersions()}
80-
*/
78+
@Deprecated
8179
String scala35();
8280

8381
/**
@@ -146,16 +144,16 @@ static Scalafix fetchAndClassloadInstance(String requestedScalaVersion, List<Rep
146144
} else if (requestedScalaMajorMinorOrMajorVersion.equals("2.13") ||
147145
requestedScalaMajorMinorOrMajorVersion.equals("2")) {
148146
scalaVersionKey = "scala213";
149-
} else if (requestedScalaMajorMinorOrMajorVersion.equals("3.0") ||
150-
requestedScalaMajorMinorOrMajorVersion.equals("3.1") ||
151-
requestedScalaMajorMinorOrMajorVersion.equals("3.2") ||
152-
requestedScalaMajorMinorOrMajorVersion.equals("3.3")) {
147+
} else if (requestedScalaMajorMinorOrMajorVersion.equals("3.3")) {
153148
scalaVersionKey = "scala33";
154-
} else if (requestedScalaMajorMinorOrMajorVersion.equals("3.5")) {
155-
scalaVersionKey = "scala35";
156149
} else if (requestedScalaMajorMinorOrMajorVersion.equals("3.6")) {
157150
scalaVersionKey = "scala36";
158-
} else if (requestedScalaMajorMinorOrMajorVersion.startsWith("3")) {
151+
} else if (!requestedScalaMajorMinorOrMajorVersion.equals("3.0") &&
152+
!requestedScalaMajorMinorOrMajorVersion.equals("3.1") &&
153+
!requestedScalaMajorMinorOrMajorVersion.equals("3.2") &&
154+
!requestedScalaMajorMinorOrMajorVersion.equals("3.4") &&
155+
!requestedScalaMajorMinorOrMajorVersion.equals("3.5") &&
156+
requestedScalaMajorMinorOrMajorVersion.startsWith("3")) {
159157
scalaVersionKey = "scala3Next";
160158
} else {
161159
throw new IllegalArgumentException("Unsupported scala version " + requestedScalaVersion);

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

+15-29
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ class ScalafixSuite extends AnyFunSuite {
4646
assert(api.scala212() == Versions.scala212)
4747
assert(api.scala213() == Versions.scala213)
4848
assert(api.scala33() == Versions.scala33)
49-
assert(api.scala35() == Versions.scala35)
5049
assert(api.scala36() == Versions.scala36)
5150
assert(api.scala3LTS() == Versions.scala3LTS)
5251
assert(api.scala3Next() == Versions.scala3Next)
@@ -59,15 +58,24 @@ class ScalafixSuite extends AnyFunSuite {
5958
assert(help.contains("Usage: scalafix"))
6059
}
6160

62-
test("fail to classload Scala 2.11 with full version") {
61+
test("fail to classload EOL versions") {
6362
assertThrows[IllegalArgumentException](
64-
Scalafix.fetchAndClassloadInstance("2.11.0", repositories)
63+
Scalafix.fetchAndClassloadInstance("2.11", repositories)
6564
)
66-
}
67-
68-
test("fail to classload Scala 2.11 with minor version") {
6965
assertThrows[IllegalArgumentException](
70-
Scalafix.fetchAndClassloadInstance("2.11", repositories)
66+
Scalafix.fetchAndClassloadInstance("3.0", repositories)
67+
)
68+
assertThrows[IllegalArgumentException](
69+
Scalafix.fetchAndClassloadInstance("3.1", repositories)
70+
)
71+
assertThrows[IllegalArgumentException](
72+
Scalafix.fetchAndClassloadInstance("3.2", repositories)
73+
)
74+
assertThrows[IllegalArgumentException](
75+
Scalafix.fetchAndClassloadInstance("3.4", repositories)
76+
)
77+
assertThrows[IllegalArgumentException](
78+
Scalafix.fetchAndClassloadInstance("3.5", repositories)
7179
)
7280
}
7381

@@ -98,16 +106,6 @@ class ScalafixSuite extends AnyFunSuite {
98106
assert(scalafixAPI.scalaVersion() == Versions.scala213)
99107
}
100108

101-
test("classload Scala 3 LTS with full pre-LTS version") {
102-
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.0.0", repositories)
103-
assert(scalafixAPI.scalaVersion() == Versions.scala3LTS)
104-
}
105-
106-
test("classload Scala 3 LTS with major.minor pre-LTS version") {
107-
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.2", repositories)
108-
assert(scalafixAPI.scalaVersion() == Versions.scala3LTS)
109-
}
110-
111109
test("classload Scala 3 LTS with full LTS version") {
112110
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.3.4", repositories)
113111
assert(scalafixAPI.scalaVersion() == Versions.scala3LTS)
@@ -118,18 +116,6 @@ class ScalafixSuite extends AnyFunSuite {
118116
assert(scalafixAPI.scalaVersion() == Versions.scala3LTS)
119117
}
120118

121-
test("classload Scala 3.5 with full version") {
122-
if (jdk >= 23) cancel("Scala 3.5 is not supported on JDK23+")
123-
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.5.2", repositories)
124-
assert(scalafixAPI.scalaVersion() == Versions.scala35)
125-
}
126-
127-
test("classload Scala 3.5 with major.minor version") {
128-
if (jdk >= 23) cancel("Scala 3.5 is not supported on JDK23+")
129-
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.5", repositories)
130-
assert(scalafixAPI.scalaVersion() == Versions.scala35)
131-
}
132-
133119
test("classload Scala 3 Next with full version") {
134120
val scalafixAPI = Scalafix.fetchAndClassloadInstance("3.6.2", repositories)
135121
assert(scalafixAPI.scalaVersion() == Versions.scala3Next)

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

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ class InterfacesPropertiesSuite extends AnyFunSuite with BeforeAndAfterAll {
2626
check("scala212", Versions.scala212)
2727
check("scala213", Versions.scala213)
2828
check("scala33", Versions.scala33)
29-
check("scala35", Versions.scala35)
3029
check("scala36", Versions.scala36)
3130
check("scala3LTS", Versions.scala3LTS)
3231
check("scala3Next", Versions.scala3Next)

0 commit comments

Comments
 (0)