Skip to content

Commit c700c55

Browse files
[chore] Set build for 3.8.1 developement (#24293)
Scala 3.8.0 branch has been cutoff, we're now entering the 3.8.1 development cycle which also means start of the planned feature freeze until 3.10 * Set reference version to 3.8.0-RC1 - we're also using this version for MiMa checks (until 3.8.0 is released) * Set developed version to 3.8.1 * Adjust MiMa filters, remove no longer needed comparison with fat-lib artifacts, ignore all missing classes in `scala-library-sjs` - it does not store classfiles, only few `scala.scalajs.*` classes remain
1 parent a3f3ae3 commit c700c55

File tree

2 files changed

+33
-26
lines changed

2 files changed

+33
-26
lines changed

project/Build.scala

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ object Build {
5959
*
6060
* Warning: Change of this variable needs to be consulted with `expectedTastyVersion`
6161
*/
62-
val referenceVersion = "3.7.4"
62+
val referenceVersion = "3.8.0-RC1"
6363

6464
/** Version of the Scala compiler targeted in the current release cycle
6565
* Contains a version without RC/SNAPSHOT/NIGHTLY specific suffixes
@@ -70,7 +70,7 @@ object Build {
7070
*
7171
* Warning: Change of this variable might require updating `expectedTastyVersion`
7272
*/
73-
val developedVersion = "3.8.0"
73+
val developedVersion = "3.8.1"
7474

7575
/** The version of the compiler including the RC prefix.
7676
* Defined as common base before calculating environment specific suffixes in `dottyVersion`
@@ -138,7 +138,7 @@ object Build {
138138
* - `3.M.0` if `P > 0`
139139
* - `3.(M-1).0` if `P = 0`
140140
*/
141-
val mimaPreviousDottyVersion = "3.7.3" // for 3.8.0, we compare against 3.7.3
141+
val mimaPreviousDottyVersion = "3.8.0-RC1" // temporary until 3.8.0 is released
142142

143143
/** LTS version against which we check binary compatibility.
144144
*
@@ -309,7 +309,6 @@ object Build {
309309
Test / develocityBuildCacheClient := None,
310310
extraDevelocityCacheInputFiles := Seq.empty,
311311
extraDevelocityCacheInputFiles / outputFileStamper := FileStamper.Hash,
312-
resolvers += ("Artifactory" at "https://repo.scala-lang.org/artifactory/fat-jar/"),
313312
)
314313

315314
// Settings shared globally (scoped in Global). Used in build.sbt
@@ -457,7 +456,7 @@ object Build {
457456
import java.text._
458457
val dateFormat = new SimpleDateFormat("yyyyMMdd-HHmmss")
459458
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"))
460-
459+
461460
val fileName = "compiler.properties"
462461
val contents = Def.setting {
463462
s"""version.number=${version.value}
@@ -1945,12 +1944,7 @@ object Build {
19451944
// Project specific target folder. sbt doesn't like having two projects using the same target folder
19461945
target := target.value / "scala-library-nonbootstrapped",
19471946
// Add configuration for MiMa
1948-
mimaCheckDirection := (compatMode match {
1949-
case CompatMode.BinaryCompatible => "backward"
1950-
case CompatMode.SourceAndBinaryCompatible => "both"
1951-
}),
1952-
mimaExcludeAnnotations += "scala.annotation.experimental",
1953-
mimaPreviousArtifacts += ("org.scala-lang" % "fat-stdlib" % "3.7.3"),
1947+
commonMiMaSettings,
19541948
mimaForwardIssueFilters := MiMaFilters.Scala3Library.ForwardsBreakingChanges,
19551949
mimaBackwardIssueFilters := MiMaFilters.Scala3Library.BackwardsBreakingChanges,
19561950
customMimaReportBinaryIssues("MiMaFilters.Scala3Library"),
@@ -2003,6 +1997,7 @@ object Build {
20031997
lazy val `scala-library-bootstrapped` = project.in(file("library"))
20041998
.enablePlugins(ScalaLibraryPlugin)
20051999
.settings(publishSettings)
2000+
.settings(disableDocSetting) // TODO now produces empty JAR to satisfy Sonatype, see https://github.com/scala/scala3/issues/24434
20062001
.settings(
20072002
name := "scala-library-bootstrapped",
20082003
moduleName := "scala-library",
@@ -2071,12 +2066,7 @@ object Build {
20712066
Some((`scala3-sbt-bridge-nonbootstrapped` / Compile / packageBin).value)
20722067
},
20732068
// Add configuration for MiMa
2074-
mimaCheckDirection := (compatMode match {
2075-
case CompatMode.BinaryCompatible => "backward"
2076-
case CompatMode.SourceAndBinaryCompatible => "both"
2077-
}),
2078-
mimaExcludeAnnotations += "scala.annotation.experimental",
2079-
mimaPreviousArtifacts += ("org.scala-lang" % "fat-stdlib" % "3.7.3"),
2069+
commonMiMaSettings,
20802070
mimaForwardIssueFilters := MiMaFilters.Scala3Library.ForwardsBreakingChanges,
20812071
mimaBackwardIssueFilters := MiMaFilters.Scala3Library.BackwardsBreakingChanges,
20822072
customMimaReportBinaryIssues("MiMaFilters.Scala3Library"),
@@ -2241,15 +2231,10 @@ object Build {
22412231
}).transform(node).head
22422232
},
22432233
// Add configuration for MiMa
2244-
mimaCheckDirection := (compatMode match {
2245-
case CompatMode.BinaryCompatible => "backward"
2246-
case CompatMode.SourceAndBinaryCompatible => "both"
2247-
}),
2248-
mimaExcludeAnnotations += "scala.annotation.experimental",
2249-
mimaPreviousArtifacts += ("org.scala-js" % "fat-stdlib_sjs1" % "3.7.3"),
2250-
mimaForwardIssueFilters := MiMaFilters.Scala3Library.ForwardsBreakingChanges,
2251-
mimaBackwardIssueFilters := MiMaFilters.Scala3Library.BackwardsBreakingChanges,
2252-
customMimaReportBinaryIssues("MiMaFilters.Scala3Library"),
2234+
commonMiMaSettings,
2235+
mimaForwardIssueFilters := MiMaFilters.ScalaLibrarySJS.ForwardsBreakingChanges,
2236+
mimaBackwardIssueFilters := MiMaFilters.ScalaLibrarySJS.BackwardsBreakingChanges,
2237+
customMimaReportBinaryIssues("MiMaFilters.ScalaLibrarySJS"),
22532238
// Should we also patch .sjsir files
22542239
keepSJSIR := true,
22552240
)

project/MiMaFilters.scala

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,12 +590,34 @@ object MiMaFilters {
590590
)
591591
}
592592

593+
object ScalaLibrarySJS {
594+
val ForwardsBreakingChanges: Map[String, Seq[ProblemFilter]] = Map(
595+
// Additions that require a new minor version of the library
596+
Build.mimaPreviousDottyVersion -> Seq(
597+
// No .class files generated in the artifacts, only `scala.scalajs.*` files might be present
598+
ProblemFilters.exclude[MissingClassProblem]("scala.*"),
599+
),
600+
Build.mimaPreviousLTSDottyVersion -> Seq(
601+
// No .class files generated in the artifacts, only `scala.scalajs.*` files might be present
602+
ProblemFilters.exclude[MissingClassProblem]("scala.*"),
603+
),
604+
)
605+
606+
val BackwardsBreakingChanges: Map[String, Seq[ProblemFilter]] = Map(
607+
// We should never break backwards compatibility
608+
Build.mimaPreviousDottyVersion -> Seq.empty,
609+
Build.mimaPreviousLTSDottyVersion -> Seq.empty,
610+
)
611+
}
612+
593613
object TastyCore {
594614
val ForwardsBreakingChanges: Map[String, Seq[ProblemFilter]] = Map(
595615
// Additions that require a new minor version of tasty core
596616
Build.mimaPreviousDottyVersion -> Seq(
597617
ProblemFilters.exclude[DirectMissingMethodProblem]("dotty.tools.tasty.TastyFormat.FLEXIBLEtype"),
598618
ProblemFilters.exclude[DirectMissingMethodProblem]("dotty.tools.tasty.TastyFormat.TRACKED"),
619+
ProblemFilters.exclude[DirectMissingMethodProblem]("dotty.tools.tasty.TastyFormat.INTO"),
620+
ProblemFilters.exclude[DirectMissingMethodProblem]("dotty.tools.tasty.TastyFormat.SUBMATCH"),
599621
),
600622

601623
// Additions since last LTS

0 commit comments

Comments
 (0)