From 6c5dc56b5e30e41af70f6b24ca26cad4aa574f97 Mon Sep 17 00:00:00 2001 From: Wojciech Mazur Date: Wed, 12 Mar 2025 18:34:54 +0100 Subject: [PATCH 1/3] Set reference version to 3.7.0-RC1 --- project/Build.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Build.scala b/project/Build.scala index 4a86ae3e9e19..f055352d3bbc 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -103,7 +103,7 @@ object Build { * * Warning: Change of this variable needs to be consulted with `expectedTastyVersion` */ - val referenceVersion = "3.6.4" + val referenceVersion = "3.7.0-RC1" /** Version of the Scala compiler targeted in the current release cycle * Contains a version without RC/SNAPSHOT/NIGHTLY specific suffixes From 650705b339ff011744d666f92d8502c9649de295 Mon Sep 17 00:00:00 2001 From: Wojciech Mazur Date: Wed, 12 Mar 2025 19:11:55 +0100 Subject: [PATCH 2/3] Set developedVersion to 3.7.1 and update expected TASTy version and MiMa filters. --- project/Build.scala | 8 +++---- project/MiMaFilters.scala | 23 ++++++++++++------- tasty/src/dotty/tools/tasty/TastyFormat.scala | 2 +- .../tools/tasty/BuildTastyVersionTest.scala | 4 ++-- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/project/Build.scala b/project/Build.scala index f055352d3bbc..58cad994af20 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -114,7 +114,7 @@ object Build { * * Warning: Change of this variable might require updating `expectedTastyVersion` */ - val developedVersion = "3.7.0" + val developedVersion = "3.7.1" /** The version of the compiler including the RC prefix. * Defined as common base before calculating environment specific suffixes in `dottyVersion` @@ -141,7 +141,7 @@ object Build { * - in release candidate branch is experimental if {patch == 0} * - in stable release is always non-experimetnal */ - val expectedTastyVersion = "28.7-experimental-1" + val expectedTastyVersion = "28.8-experimental-1" checkReleasedTastyVersion() /** Final version of Scala compiler, controlled by environment variables. */ @@ -178,7 +178,7 @@ object Build { * - `3.(M-1).0` if `P = 0` * 3.6.2 is an exception from this rule - 3.6.0 was a broken release, 3.6.1 was hotfix (unstable) release */ - val mimaPreviousDottyVersion = "3.6.2" + val mimaPreviousDottyVersion = "3.7.0-RC1" /** LTS version against which we check binary compatibility. * @@ -452,7 +452,7 @@ object Build { "Automatic-Module-Name" -> s"${dottyOrganization.replaceAll("-",".")}.${moduleName.value.replaceAll("-",".")}" ), - // add extraDevelocityCacheInputFiles in cache key components + // add extraDevelocityCacheInputFiles in cache key components Compile / compile / buildcache.develocityTaskCacheKeyComponents += (Compile / extraDevelocityCacheInputFiles / outputFileStamps).taskValue, Test / test / buildcache.develocityTaskCacheKeyComponents += diff --git a/project/MiMaFilters.scala b/project/MiMaFilters.scala index 8427b4398c5f..e4473b9869ca 100644 --- a/project/MiMaFilters.scala +++ b/project/MiMaFilters.scala @@ -8,14 +8,6 @@ object MiMaFilters { val ForwardsBreakingChanges: Map[String, Seq[ProblemFilter]] = Map( // Additions that require a new minor version of the library Build.mimaPreviousDottyVersion -> Seq( - ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.betterFors"), - ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$betterFors$"), - ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.quotedPatternsWithPolymorphicFunctions"), - ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$quotedPatternsWithPolymorphicFunctions$"), - ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.runtime.Patterns.higherOrderHoleWithTypes"), - ProblemFilters.exclude[MissingClassProblem]("scala.annotation.internal.preview"), - ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.packageObjectValues"), - ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$packageObjectValues$"), ), // Additions since last LTS @@ -33,9 +25,11 @@ object MiMaFilters { ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#TypeLambdaMethods.paramVariances"), ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#TypeReprMethods.dealiasKeepOpaques"), ProblemFilters.exclude[DirectMissingMethodProblem]("scala.runtime.Tuples.reverse"), + ProblemFilters.exclude[MissingClassProblem]("scala.annotation.publicInBinary"), ProblemFilters.exclude[MissingClassProblem]("scala.annotation.internal.AssignedNonLocally"), ProblemFilters.exclude[MissingClassProblem]("scala.annotation.internal.CaptureChecked"), ProblemFilters.exclude[MissingClassProblem]("scala.annotation.internal.reachCapability"), + ProblemFilters.exclude[MissingClassProblem]("scala.annotation.internal.preview"), ProblemFilters.exclude[MissingClassProblem]("scala.annotation.unchecked.uncheckedCaptures"), ProblemFilters.exclude[MissingClassProblem]("scala.quoted.Quotes$reflectModule$ValOrDefDefMethods"), ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$3$u002E4$"), @@ -69,16 +63,29 @@ object MiMaFilters { ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#MethodTypeMethods.methodTypeKind"), ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#MethodTypeModule.apply"), ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#SymbolMethods.isSuperAccessor"), + ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Quotes#reflectModule#ImplicitsModule.searchIgnoring"), + ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.Expr.summonIgnoring"), + ProblemFilters.exclude[DirectMissingMethodProblem]("scala.quoted.runtime.Patterns.higherOrderHoleWithTypes"), ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.namedTuples"), ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.modularity"), ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.betterMatchTypeExtractors"), ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$betterMatchTypeExtractors$"), ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$modularity$"), ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$namedTuples$"), + ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.betterFors"), + ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$betterFors$"), + ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.quotedPatternsWithPolymorphicFunctions"), + ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$quotedPatternsWithPolymorphicFunctions$"), + ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language#experimental.packageObjectValues"), + ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$experimental$packageObjectValues$"), ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language.3.7-migration"), ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language.3.7"), ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$3$u002E7$"), ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$3$u002E7$minusmigration$"), + ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language.3.8-migration"), + ProblemFilters.exclude[MissingFieldProblem]("scala.runtime.stdLibPatches.language.3.8"), + ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$3$u002E8$"), + ProblemFilters.exclude[MissingClassProblem]("scala.runtime.stdLibPatches.language$3$u002E8$minusmigration$"), ), ) diff --git a/tasty/src/dotty/tools/tasty/TastyFormat.scala b/tasty/src/dotty/tools/tasty/TastyFormat.scala index de3700c667a4..37e3a3acfdab 100644 --- a/tasty/src/dotty/tools/tasty/TastyFormat.scala +++ b/tasty/src/dotty/tools/tasty/TastyFormat.scala @@ -324,7 +324,7 @@ object TastyFormat { * compatibility, but remains backwards compatible, with all * preceding `MinorVersion`. */ - final val MinorVersion: Int = 7 + final val MinorVersion: Int = 8 /** Natural Number. The `ExperimentalVersion` allows for * experimentation with changes to TASTy without committing diff --git a/tasty/test/dotty/tools/tasty/BuildTastyVersionTest.scala b/tasty/test/dotty/tools/tasty/BuildTastyVersionTest.scala index 548399b233d6..88a48b293d11 100644 --- a/tasty/test/dotty/tools/tasty/BuildTastyVersionTest.scala +++ b/tasty/test/dotty/tools/tasty/BuildTastyVersionTest.scala @@ -7,7 +7,7 @@ import TastyBuffer._ // Tests ensuring TASTY version emitted by compiler is matching expected TASTY version class BuildTastyVersionTest { - + val CurrentTastyVersion = TastyVersion(TastyFormat.MajorVersion, TastyFormat.MinorVersion, TastyFormat.ExperimentalVersion) // Needs to be defined in build Test/envVars @@ -21,6 +21,6 @@ class BuildTastyVersionTest { case s"$major.$minor" if minor.forall(_.isDigit) => TastyVersion(major.toInt, minor.toInt, 0) case other => fail(s"Invalid TASTY version string: $other") } - assertEquals(CurrentTastyVersion, expectedVersion) + assertEquals(expectedVersion, CurrentTastyVersion) } } From 24fc36be415fec6a81c8e8a92d24808fca7f8720 Mon Sep 17 00:00:00 2001 From: Wojciech Mazur Date: Wed, 12 Mar 2025 21:55:06 +0100 Subject: [PATCH 3/3] Set TASTy version back to 28.7-experimental-1 until using unstable 3.7.0-RC as reference version --- project/Build.scala | 4 ++-- tasty/src/dotty/tools/tasty/TastyFormat.scala | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/project/Build.scala b/project/Build.scala index 58cad994af20..5c63d1a356ed 100644 --- a/project/Build.scala +++ b/project/Build.scala @@ -134,14 +134,14 @@ object Build { * Simplified rules, given 3.$minor.$patch = $developedVersion * - Major version is always 28 * - TASTY minor version: - * - in main (NIGHTLY): {if $patch == 0 then $minor else ${minor + 1}} + * - in main (NIGHTLY): {if $patch == 0 || ${referenceVersion.matches(raw"3.$minor.0-RC\d")} then $minor else ${minor + 1}} * - in release branch is always equal to $minor * - TASTY experimental version: * - in main (NIGHTLY) is always experimental * - in release candidate branch is experimental if {patch == 0} * - in stable release is always non-experimetnal */ - val expectedTastyVersion = "28.8-experimental-1" + val expectedTastyVersion = "28.7-experimental-1" checkReleasedTastyVersion() /** Final version of Scala compiler, controlled by environment variables. */ diff --git a/tasty/src/dotty/tools/tasty/TastyFormat.scala b/tasty/src/dotty/tools/tasty/TastyFormat.scala index 37e3a3acfdab..de3700c667a4 100644 --- a/tasty/src/dotty/tools/tasty/TastyFormat.scala +++ b/tasty/src/dotty/tools/tasty/TastyFormat.scala @@ -324,7 +324,7 @@ object TastyFormat { * compatibility, but remains backwards compatible, with all * preceding `MinorVersion`. */ - final val MinorVersion: Int = 8 + final val MinorVersion: Int = 7 /** Natural Number. The `ExperimentalVersion` allows for * experimentation with changes to TASTy without committing