You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by he...@apache.org on 2026/06/06 19:19:56 UTC
(pekko) 01/01: chore: Migrate build from sbt 1.x to sbt 2.x (WIP)
This is an automated email from the ASF dual-hosted git repository.
He-Pin pushed a commit to branch chore/sbt2-migration
in repository https://gitbox.apache.org/repos/asf/pekko.git
commit bd2d766e89bfaa7525dd5a052b337df832a52924
Author: He-Pin <he...@gmail.com>
AuthorDate: Sun Jun 7 03:19:10 2026 +0800
chore: Migrate build from sbt 1.x to sbt 2.x (WIP)
Motivation:
sbt 2.x (2.0.0-RC14) brings build speed improvements through
cached tasks, Scala 3 build definitions, and modernized APIs.
Modification:
- Update sbt version to 2.0.0-RC14
- Bump 17 ready plugins to sbt 2 compatible versions
- Comment out 10 plugins without sbt 2 support (with TODO markers)
- Migrate all project/*.scala wildcard imports from `._` to `.*`
- Fix Scala 3 incompatibilities: Tuple.zipped → lazyZip,
Types.Id removal, explicit type annotations
- Stub out code referencing disabled plugins (ApacheSonatypePlugin,
ReproducibleBuildsPlugin, DevelocityPlugin, PekkoParadoxPlugin,
ValidatePullRequest) with TODO markers
- Add TODO markers for sbt 2 API changes: InputTask.createDyn,
FileFunction.cached with ChangeReport
Result:
WIP migration branch. Build does not compile yet — blocked on
10 plugins gaining sbt 2 support. Tracking issues created on
all affected repos. See PR description for full checklist.
---
build.sbt | 47 ++++++++----
project/AddLogTimestamps.scala | 4 +-
project/AddMetaInfLicenseFiles.scala | 75 ++++++++++++-------
project/AutomaticModuleName.scala | 4 +-
project/CliOptions.scala | 1 +
project/CopyrightHeader.scala | 4 +-
project/CopyrightHeaderForBoilerplate.scala | 4 +-
project/CopyrightHeaderForBuild.scala | 2 +-
project/CopyrightHeaderForJdk9.scala | 4 +-
project/CopyrightHeaderForProtobuf.scala | 2 +-
project/Dependencies.scala | 9 ++-
project/Doc.scala | 8 +-
project/JavaFormatter.scala | 8 +-
project/Jdk9.scala | 6 +-
project/JdkOptions.scala | 2 +-
project/Jvm.scala | 2 +-
project/LicenseReport.scala | 4 +-
project/MultiNode.scala | 16 ++--
project/OSGi.scala | 13 ++--
project/Paradox.scala | 21 ++++--
project/ParadoxBrowse.scala | 6 +-
project/PekkoBuild.scala | 14 ++--
project/PekkoDevelocityPlugin.scala | 112 +++++++++++++++-------------
project/PekkoDisciplinePlugin.scala | 4 +-
project/ProjectFileIgnoreSupport.scala | 4 +-
project/Protobuf.scala | 9 ++-
project/Publish.scala | 11 ++-
project/SbtMultiJvmPlugin.scala | 21 +++---
project/ScalaFixExtraRulesPlugin.scala | 2 +-
project/ScalafixForMultiNodePlugin.scala | 2 +-
project/StreamOperatorsIndexGenerator.scala | 4 +-
project/TestExtras.scala | 6 +-
project/ValidatePullRequest.scala | 80 +++++++++++---------
project/build.properties | 2 +-
project/plugins.sbt | 40 ++++++----
35 files changed, 316 insertions(+), 237 deletions(-)
diff --git a/build.sbt b/build.sbt
index f49e77f6a3..3d20643280 100644
--- a/build.sbt
+++ b/build.sbt
@@ -7,7 +7,8 @@
* This file is part of the Apache Pekko project, which was derived from Akka.
*/
-import net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin.reproducibleBuildsCheckResolver
+// TODO [sbt2-migration] requires sbt-reproducible-builds
+// import net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin.reproducibleBuildsCheckResolver
scalaVersion := Dependencies.allScalaVersions.head
@@ -18,7 +19,8 @@ ThisBuild / libraryDependencies +=
sourceDistName := "apache-pekko"
sourceDistIncubating := false
-ThisBuild / reproducibleBuildsCheckResolver := Resolver.ApacheMavenStagingRepo
+// TODO [sbt2-migration] requires sbt-reproducible-builds
+// ThisBuild / reproducibleBuildsCheckResolver := Resolver.ApacheMavenStagingRepo
ThisBuild / pekkoCoreProject := true
@@ -32,7 +34,8 @@ Global / excludeLintKeys ++= Set(
enablePlugins(
UnidocRoot,
- UnidocWithPrValidation,
+ // TODO [sbt2-migration] requires sbt-pull-request-validator
+ // UnidocWithPrValidation,
NoPublish,
ScalafixIgnoreFilePlugin,
JavaFormatterPlugin)
@@ -143,7 +146,8 @@ lazy val actorTests = pekkoModule("actor-tests")
lazy val pekkoScalaNightly = pekkoModule("scala-nightly")
.aggregate(aggregatedProjects: _*)
.disablePlugins(MimaPlugin)
- .disablePlugins(ValidatePullRequest, MimaPlugin)
+ // TODO [sbt2-migration] ValidatePullRequest requires sbt-pull-request-validator
+ // .disablePlugins(ValidatePullRequest, MimaPlugin)
lazy val benchJmh = pekkoModule("bench-jmh")
.dependsOn(Seq(actor, actorTyped, stream, streamTestkit, persistence, distributedData, jackson, testkit).map(
@@ -151,7 +155,8 @@ lazy val benchJmh = pekkoModule("bench-jmh")
.settings(Dependencies.benchJmh)
.settings(javacOptions += "-parameters") // for Jackson
.enablePlugins(JmhPlugin, ScaladocNoVerificationOfDiagrams, NoPublish)
- .disablePlugins(MimaPlugin, ValidatePullRequest)
+ // TODO [sbt2-migration] ValidatePullRequest requires sbt-pull-request-validator
+ .disablePlugins(MimaPlugin)
lazy val cluster = pekkoModule("cluster")
.dependsOn(
@@ -196,7 +201,8 @@ lazy val clusterSharding = pekkoModule("cluster-sharding")
.settings(AutomaticModuleName.settings("pekko.cluster.sharding"))
.settings(OSGi.clusterSharding)
.settings(Protobuf.settings)
- .enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams, DependWalkerPlugin, SbtOsgi)
+ // TODO [sbt2-migration] DependWalkerPlugin requires sbt-depend-walker
+ .enablePlugins(MultiNode, ScaladocNoVerificationOfDiagrams, SbtOsgi)
lazy val clusterTools = pekkoModule("cluster-tools")
.dependsOn(
@@ -250,7 +256,8 @@ lazy val docs = pekkoModule("docs")
.settings(javacOptions += "-parameters") // for Jackson
.enablePlugins(
ParadoxPlugin,
- PekkoParadoxPlugin,
+ // TODO [sbt2-migration] requires pekko-sbt-paradox
+ // PekkoParadoxPlugin,
NoPublish,
ParadoxBrowse,
ScaladocNoVerificationOfDiagrams,
@@ -386,7 +393,9 @@ lazy val protobufV3 = pekkoModule("protobuf-v3")
.withConfigurations(Vector(Compile)), // prevent original dependency to be added to pom as runtime dep
Compile / packageBin / packagedArtifact := Scoped.mkTuple2(
(Compile / packageBin / artifact).value,
- ReproducibleBuildsPlugin.postProcessJar(OsgiKeys.bundle.value)),
+ // TODO [sbt2-migration] requires sbt-reproducible-builds
+ // ReproducibleBuildsPlugin.postProcessJar(OsgiKeys.bundle.value)
+ OsgiKeys.bundle.value),
Compile / packageBin := Def.taskDyn {
val store = streams.value.cacheStoreFactory.make("shaded-output")
val uberJarLocation = (assembly / assemblyOutputPath).value
@@ -394,7 +403,9 @@ lazy val protobufV3 = pekkoModule("protobuf-v3")
if (changed) {
Def.task {
val uberJar = (Compile / assembly).value
- ReproducibleBuildsPlugin.postProcessJar(uberJar)
+ // TODO [sbt2-migration] requires sbt-reproducible-builds
+ // ReproducibleBuildsPlugin.postProcessJar(uberJar)
+ uberJar
}
} else Def.task { file }
}
@@ -431,7 +442,8 @@ lazy val remote =
.settings(OSGi.remote)
.settings(Protobuf.settings)
.settings(Test / parallelExecution := false)
- .enablePlugins(DependWalkerPlugin, SbtOsgi)
+ // TODO [sbt2-migration] DependWalkerPlugin requires sbt-depend-walker
+ .enablePlugins(SbtOsgi)
lazy val remoteTests = pekkoModule("remote-tests")
.dependsOn(
@@ -459,7 +471,8 @@ lazy val stream = pekkoModule("stream")
.settings(AutomaticModuleName.settings("pekko.stream"))
.settings(OSGi.stream)
.settings(Protobuf.settings)
- .enablePlugins(BoilerplatePlugin, DependWalkerPlugin, SbtOsgi)
+ // TODO [sbt2-migration] DependWalkerPlugin requires sbt-depend-walker
+ .enablePlugins(BoilerplatePlugin, SbtOsgi)
lazy val streamTestkit = pekkoModule("stream-testkit")
.dependsOn(stream, testkit % "compile->compile;test->test")
@@ -513,7 +526,8 @@ lazy val actorTyped = pekkoModule("actor-typed")
implicit val timeout = Timeout(5 seconds)
""")
- .enablePlugins(DependWalkerPlugin, SbtOsgi)
+ // TODO [sbt2-migration] DependWalkerPlugin requires sbt-depend-walker
+ .enablePlugins(SbtOsgi)
lazy val persistenceTyped = pekkoModule("persistence-typed")
.dependsOn(
@@ -617,18 +631,21 @@ lazy val coordination = pekkoModule("coordination")
.enablePlugins(SbtOsgi)
lazy val billOfMaterials = Project("bill-of-materials", file("bill-of-materials"))
- .enablePlugins(BillOfMaterialsPlugin)
+ // TODO [sbt2-migration] requires sbt-bill-of-materials
+ // .enablePlugins(BillOfMaterialsPlugin)
.disablePlugins(MimaPlugin, PekkoDisciplinePlugin)
// buildSettings and defaultSettings configure organization name, licenses, etc...
.settings(PekkoBuild.defaultSettings)
.settings(
name := "pekko-bom",
- bomIncludeProjects := userProjects,
+ // TODO [sbt2-migration] requires sbt-bill-of-materials
+ // bomIncludeProjects := userProjects,
description := s"${description.value} (depending on Scala ${CrossVersion.binaryScalaVersion(scalaVersion.value)})")
def pekkoModule(moduleName: String): Project =
Project(id = moduleName, base = file(moduleName))
- .enablePlugins(ReproducibleBuildsPlugin)
+ // TODO [sbt2-migration] requires sbt-reproducible-builds
+ // .enablePlugins(ReproducibleBuildsPlugin)
.disablePlugins(WelcomePlugin)
.settings(PekkoBuild.defaultSettings)
.settings(
diff --git a/project/AddLogTimestamps.scala b/project/AddLogTimestamps.scala
index ace4ea9d20..02501ee541 100644
--- a/project/AddLogTimestamps.scala
+++ b/project/AddLogTimestamps.scala
@@ -15,8 +15,8 @@ import java.io.PrintWriter
import java.time.LocalDateTime
import java.time.ZoneId
import java.time.format.DateTimeFormatter
-import sbt.{ Def, _ }
-import Keys._
+import sbt.{ Def, * }
+import Keys.*
import sbt.internal.LogManager
import sbt.internal.util.ConsoleOut
diff --git a/project/AddMetaInfLicenseFiles.scala b/project/AddMetaInfLicenseFiles.scala
index 77458d9afd..7430f19584 100644
--- a/project/AddMetaInfLicenseFiles.scala
+++ b/project/AddMetaInfLicenseFiles.scala
@@ -15,10 +15,11 @@
* limitations under the License.
*/
-import sbt.Keys._
-import sbt._
-import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin
-import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin.autoImport._
+import sbt.Keys.*
+import sbt.*
+// TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+// import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin
+// import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin.autoImport.*
/**
* Copies LICENSE and NOTICE files into jar META-INF dir
@@ -27,57 +28,73 @@ object AddMetaInfLicenseFiles extends AutoPlugin {
private lazy val baseDir = LocalRootProject / baseDirectory
- override lazy val projectSettings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "StandardLicense.txt",
- apacheSonatypeNoticeFile := baseDir.value / "legal" / "PekkoNotice.txt")
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support — restore ApacheSonatype settings
+ // override lazy val projectSettings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "StandardLicense.txt",
+ // apacheSonatypeNoticeFile := baseDir.value / "legal" / "PekkoNotice.txt")
+ override lazy val projectSettings = Seq.empty
/**
* Settings specific for Pekko actor subproject which requires a different license file.
*/
- lazy val actorSettings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-actor-jar-license.txt",
- apacheSonatypeNoticeFile := baseDir.value / "legal" / "pekko-actor-jar-notice.txt")
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // lazy val actorSettings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-actor-jar-license.txt",
+ // apacheSonatypeNoticeFile := baseDir.value / "legal" / "pekko-actor-jar-notice.txt")
+ lazy val actorSettings = Seq.empty
/**
* Settings specific for Pekko actor subproject which requires a different license file.
*/
- lazy val clusterSettings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-cluster-jar-license.txt")
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // lazy val clusterSettings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-cluster-jar-license.txt")
+ lazy val clusterSettings = Seq.empty
/**
* Settings specific for Pekko distributed-data subproject which requires a different license file.
*/
- lazy val distributedDataSettings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-distributed-data-jar-license.txt")
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // lazy val distributedDataSettings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-distributed-data-jar-license.txt")
+ lazy val distributedDataSettings = Seq.empty
/**
* Settings specific for Pekko persistence-typed subproject which requires a different license file.
*/
- lazy val persistenceTypedSettings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-persistence-typed-jar-license.txt")
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // lazy val persistenceTypedSettings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-persistence-typed-jar-license.txt")
+ lazy val persistenceTypedSettings = Seq.empty
/**
* Settings specific for Pekko remote subproject which requires a different license file.
*/
- lazy val remoteSettings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-remote-jar-license.txt",
- apacheSonatypeNoticeFile := baseDir.value / "legal" / "pekko-remote-jar-notice.txt")
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // lazy val remoteSettings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-remote-jar-license.txt",
+ // apacheSonatypeNoticeFile := baseDir.value / "legal" / "pekko-remote-jar-notice.txt")
+ lazy val remoteSettings = Seq.empty
/**
* Settings specific for Pekko protobuf-v3 subproject which requires a different license file
* as well as an additional "COPYING.protobuf" file.
*/
- lazy val protobufV3Settings = Seq(
- apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-protobuf-v3-jar-license.txt") ++ inConfig(Compile)(
- Seq(
- resourceGenerators += {
- Def.task {
- List(
- ApacheSonatypePlugin.addFileToMetaInf(resourceManaged.value, baseDir.value / "COPYING.protobuf"))
- }
- }))
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // lazy val protobufV3Settings = Seq(
+ // apacheSonatypeLicenseFile := baseDir.value / "legal" / "pekko-protobuf-v3-jar-license.txt") ++ inConfig(Compile)(
+ // Seq(
+ // resourceGenerators += {
+ // Def.task {
+ // List(
+ // ApacheSonatypePlugin.addFileToMetaInf(resourceManaged.value, baseDir.value / "COPYING.protobuf"))
+ // }
+ // }))
+ lazy val protobufV3Settings = Seq.empty
override lazy val trigger = allRequirements
- override lazy val requires = ApacheSonatypePlugin
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // override lazy val requires = ApacheSonatypePlugin
+ override lazy val requires = plugins.JvmPlugin
}
diff --git a/project/AutomaticModuleName.scala b/project/AutomaticModuleName.scala
index 92b4e895f5..66ff737de9 100644
--- a/project/AutomaticModuleName.scala
+++ b/project/AutomaticModuleName.scala
@@ -11,8 +11,8 @@
* Copyright (C) 2016-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt.{ Def, _ }
-import sbt.Keys._
+import sbt.{ Def, * }
+import sbt.Keys.*
/**
* Helper to set Automatic-Module-Name in projects.
diff --git a/project/CliOptions.scala b/project/CliOptions.scala
index 64646546ee..f5486afcd7 100644
--- a/project/CliOptions.scala
+++ b/project/CliOptions.scala
@@ -18,6 +18,7 @@ case class CliOption[T](private val value: T) {
object CliOption {
def apply[T](path: String, default: T)(implicit ev: CliOptionParser[T]): CliOption[T] = ev.parse(path, default)
+ // TODO [sbt2-migration] Consider extension methods for Scala 3 style
implicit class BooleanCliOption(cliOption: CliOption[Boolean]) {
def ifTrue[A](a: => A): Option[A] = if (cliOption.get) Some(a) else None
}
diff --git a/project/CopyrightHeader.scala b/project/CopyrightHeader.scala
index 87b56658c8..0d7b5af37d 100644
--- a/project/CopyrightHeader.scala
+++ b/project/CopyrightHeader.scala
@@ -13,10 +13,10 @@
import sbtheader.{ CommentCreator, HeaderPlugin, NewLine }
import org.apache.commons.lang3.Strings
-import sbt._
+import sbt.*
object CopyrightHeader extends AutoPlugin {
- import HeaderPlugin.autoImport._
+ import HeaderPlugin.autoImport.*
override lazy val requires = HeaderPlugin
override lazy val trigger = allRequirements
diff --git a/project/CopyrightHeaderForBoilerplate.scala b/project/CopyrightHeaderForBoilerplate.scala
index 3e91671e70..04f97f8ac3 100644
--- a/project/CopyrightHeaderForBoilerplate.scala
+++ b/project/CopyrightHeaderForBoilerplate.scala
@@ -12,9 +12,9 @@
*/
import CopyrightHeader.cStyleComment
-import sbtheader.HeaderPlugin.autoImport._
+import sbtheader.HeaderPlugin.autoImport.*
import sbt.Keys.sourceDirectory
-import sbt.{ inConfig, Compile, Def, Plugins, Test, _ }
+import sbt.{ inConfig, Compile, Def, Plugins, Test, * }
import spray.boilerplate.BoilerplatePlugin
object CopyrightHeaderForBoilerplate extends AutoPlugin {
diff --git a/project/CopyrightHeaderForBuild.scala b/project/CopyrightHeaderForBuild.scala
index 2ab945e142..4a0574102a 100644
--- a/project/CopyrightHeaderForBuild.scala
+++ b/project/CopyrightHeaderForBuild.scala
@@ -14,7 +14,7 @@
import CopyrightHeader.cStyleComment
import sbtheader.HeaderPlugin.autoImport.{ headerMappings, headerSources, HeaderFileType }
import sbt.Keys.baseDirectory
-import sbt.{ inConfig, Compile, Def, PluginTrigger, Test, _ }
+import sbt.{ inConfig, Compile, Def, PluginTrigger, Test, * }
object CopyrightHeaderForBuild extends AutoPlugin {
override lazy val requires: Plugins = CopyrightHeader
diff --git a/project/CopyrightHeaderForJdk9.scala b/project/CopyrightHeaderForJdk9.scala
index c399f09da1..dd38e499e3 100644
--- a/project/CopyrightHeaderForJdk9.scala
+++ b/project/CopyrightHeaderForJdk9.scala
@@ -12,7 +12,7 @@
*/
import sbtheader.HeaderPlugin.autoImport.headerSources
-import sbt.{ Compile, Def, Test, _ }
+import sbt.{ Compile, Def, Test, * }
object CopyrightHeaderForJdk9 extends AutoPlugin {
@@ -20,7 +20,7 @@ object CopyrightHeaderForJdk9 extends AutoPlugin {
override lazy val trigger = allRequirements
private lazy val additionalFiles = Def.setting {
- import Jdk9._
+ import Jdk9.*
for {
dir <- additionalSourceDirectories.value ++ additionalTestSourceDirectories.value
language <- List("java", "scala")
diff --git a/project/CopyrightHeaderForProtobuf.scala b/project/CopyrightHeaderForProtobuf.scala
index f18723a60b..ccbf185da1 100644
--- a/project/CopyrightHeaderForProtobuf.scala
+++ b/project/CopyrightHeaderForProtobuf.scala
@@ -14,7 +14,7 @@
import CopyrightHeader.cStyleComment
import sbtheader.HeaderPlugin.autoImport.{ headerMappings, headerSources, HeaderFileType }
import sbt.Keys.sourceDirectory
-import sbt.{ inConfig, Compile, Def, Test, _ }
+import sbt.{ inConfig, Compile, Def, Test, * }
object CopyrightHeaderForProtobuf extends AutoPlugin {
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
index 09c3b63577..ee2ca2377d 100644
--- a/project/Dependencies.scala
+++ b/project/Dependencies.scala
@@ -11,12 +11,12 @@
* Copyright (C) 2016-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt._
-import Keys._
+import sbt.*
+import Keys.*
import scala.language.implicitConversions
object Dependencies {
- import DependencyHelpers._
+ import DependencyHelpers.*
object Protobuf {
// https://protobuf.dev/support/version-support/
@@ -207,7 +207,7 @@ object Dependencies {
}
- import Compile._
+ import Compile.*
// TODO check if `l ++=` everywhere expensive?
lazy val l = libraryDependencies
@@ -405,6 +405,7 @@ object DependencyHelpers {
ScalaVersionDependentModuleID(version => modules(version).map(_ % config))
}
object ScalaVersionDependentModuleID {
+ // TODO [sbt2-migration] Consider converting to Scala 3 given Conversion
implicit def liftConstantModule(mod: ModuleID): ScalaVersionDependentModuleID = versioned(_ => mod)
def versioned(f: String => ModuleID): ScalaVersionDependentModuleID = ScalaVersionDependentModuleID(v => Seq(f(v)))
diff --git a/project/Doc.scala b/project/Doc.scala
index 8ba8b57c14..a2d537836c 100644
--- a/project/Doc.scala
+++ b/project/Doc.scala
@@ -11,12 +11,12 @@
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt._
+import sbt.*
import sbtunidoc.BaseUnidocPlugin.autoImport.{ unidoc, unidocAllSources, unidocProjectFilter }
import sbtunidoc.JavaUnidocPlugin.autoImport.JavaUnidoc
import sbtunidoc.ScalaUnidocPlugin.autoImport.ScalaUnidoc
-import sbtunidoc.GenJavadocPlugin.autoImport._
-import sbt.Keys._
+import sbtunidoc.GenJavadocPlugin.autoImport.*
+import sbt.Keys.*
import sbt.File
import scala.annotation.tailrec
@@ -128,7 +128,7 @@ object UnidocRoot extends AutoPlugin {
object autoImport {
lazy val unidocRootIgnoreProjects = settingKey[Seq[ProjectReference]]("Projects to ignore when generating unidoc")
}
- import autoImport._
+ import autoImport.*
override lazy val trigger = noTrigger
override lazy val requires =
diff --git a/project/JavaFormatter.scala b/project/JavaFormatter.scala
index f48d36e220..639c1d5351 100644
--- a/project/JavaFormatter.scala
+++ b/project/JavaFormatter.scala
@@ -23,10 +23,10 @@ object JavaFormatter extends AutoPlugin {
private val ignoreConfigFileName: String = ".sbt-java-formatter.conf"
private val descriptor: String = "sbt-java-formatter"
- import JavaFormatterPlugin.autoImport._
- import sbt.Keys._
- import sbt._
- import sbt.io._
+ import JavaFormatterPlugin.autoImport.*
+ import sbt.Keys.*
+ import sbt.*
+ import sbt.io.*
override lazy val projectSettings: Seq[Def.Setting[?]] =
Seq(
diff --git a/project/Jdk9.scala b/project/Jdk9.scala
index 12275d13bc..f2ba5f78a7 100644
--- a/project/Jdk9.scala
+++ b/project/Jdk9.scala
@@ -11,11 +11,11 @@
* Copyright (C) 2017-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt.Keys._
-import sbt._
+import sbt.Keys.*
+import sbt.*
object Jdk9 extends AutoPlugin {
- import JdkOptions.JavaVersion._
+ import JdkOptions.JavaVersion.*
// The version 21 is special for any Java versions >= 21
private val supportedJavaLTSVersions = List("21")
diff --git a/project/JdkOptions.scala b/project/JdkOptions.scala
index 99291c99e1..c2cdaf1ca5 100644
--- a/project/JdkOptions.scala
+++ b/project/JdkOptions.scala
@@ -13,7 +13,7 @@
import java.io.File
-import sbt._
+import sbt.*
import sbt.librarymanagement.SemanticSelector
import sbt.librarymanagement.VersionNumber
diff --git a/project/Jvm.scala b/project/Jvm.scala
index 5afd85f593..fb5af3bde4 100644
--- a/project/Jvm.scala
+++ b/project/Jvm.scala
@@ -14,7 +14,7 @@
import java.io.File
import java.lang.{ ProcessBuilder => JProcessBuilder }
-import sbt._
+import sbt.*
import scala.sys.process.Process
object Jvm {
diff --git a/project/LicenseReport.scala b/project/LicenseReport.scala
index e6e4cd0ed5..62058c4d84 100644
--- a/project/LicenseReport.scala
+++ b/project/LicenseReport.scala
@@ -15,9 +15,9 @@
* limitations under the License.
*/
-import sbt._
+import sbt.*
import sbtlicensereport.SbtLicenseReport
-import sbtlicensereport.SbtLicenseReport.autoImportImpl._
+import sbtlicensereport.SbtLicenseReport.autoImportImpl.*
import sbtlicensereport.license.{ DepModuleInfo, MarkDown }
object LicenseReport extends AutoPlugin {
diff --git a/project/MultiNode.scala b/project/MultiNode.scala
index 61d73d87bd..317ce44c3d 100644
--- a/project/MultiNode.scala
+++ b/project/MultiNode.scala
@@ -11,23 +11,23 @@
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import TestExtras.Filter.Keys._
+import TestExtras.Filter.Keys.*
import MultiJvmPlugin.autoImport.multiJvmCreateLogger
-import MultiJvmPlugin.autoImport._
+import MultiJvmPlugin.autoImport.*
-import sbt.{ Def, _ }
-import sbt.Keys._
-import sbtheader.HeaderPlugin.autoImport._
+import sbt.{ Def, * }
+import sbt.Keys.*
+import sbtheader.HeaderPlugin.autoImport.*
import org.scalafmt.sbt.ScalafmtPlugin.scalafmtConfigSettings
import sbtassembly.MergeStrategy
-import sbtassembly.AssemblyKeys._
+import sbtassembly.AssemblyKeys.*
object MultiNode extends AutoPlugin {
object autoImport {
lazy val validateCompile = taskKey[Unit]("Validates compile for any project it is enabled")
}
- import autoImport._
+ import autoImport.*
// MultiJvm tests can be excluded from normal test target an validatePullRequest
// with -Dpekko.test.multi-in-test=false
@@ -52,7 +52,7 @@ object MultiNode extends AutoPlugin {
override lazy val projectSettings: Seq[Def.Setting[?]] = multiJvmSettings
private lazy val defaultMultiJvmOptions: Seq[String] = {
- import scala.jdk.CollectionConverters._
+ import scala.jdk.CollectionConverters.*
// multinode.D= and multinode.X= makes it possible to pass arbitrary
// -D or -X arguments to the forked jvm, e.g.
// -Dmultinode.Djava.net.preferIPv4Stack=true -Dmultinode.Xmx512m -Dmultinode.XX:MaxPermSize=256M
diff --git a/project/OSGi.scala b/project/OSGi.scala
index cbff8a47ef..10203f1481 100644
--- a/project/OSGi.scala
+++ b/project/OSGi.scala
@@ -12,11 +12,12 @@
*/
import com.github.sbt.osgi.OsgiKeys
-import com.github.sbt.osgi.SbtOsgi._
-import sbt._
-import sbt.Keys._
+import com.github.sbt.osgi.SbtOsgi.*
+import sbt.*
+import sbt.Keys.*
import sbtassembly.AssemblyKeys.assembly
-import net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin
+// TODO [sbt2-migration] Blocked on sbt-reproducible-builds sbt 2 support
+// import net.bzzt.reproduciblebuilds.ReproducibleBuildsPlugin
object OSGi {
@@ -32,7 +33,9 @@ object OSGi {
// `packageBin` wholesale here we need to invoke the post-processing
// manually. See also
// https://github.com/raboof/sbt-reproducible-builds#sbt-osgi
- ReproducibleBuildsPlugin.postProcessJar(bundle)
+ // TODO [sbt2-migration] Blocked on sbt-reproducible-builds sbt 2 support
+ // ReproducibleBuildsPlugin.postProcessJar(bundle)
+ bundle
},
// This will fail the build instead of accidentally removing classes from the resulting artifact.
// Each package contained in a project MUST be known to be private or exported, if it's undecided we MUST resolve this
diff --git a/project/Paradox.scala b/project/Paradox.scala
index b9b39562f9..e9a1fb3cb9 100644
--- a/project/Paradox.scala
+++ b/project/Paradox.scala
@@ -12,15 +12,16 @@
*/
import com.lightbend.paradox.sbt.ParadoxPlugin
-import com.lightbend.paradox.sbt.ParadoxPlugin.autoImport._
+import com.lightbend.paradox.sbt.ParadoxPlugin.autoImport.*
import com.lightbend.paradox.apidoc.ApidocPlugin
import com.lightbend.paradox.projectinfo.ParadoxProjectInfoPluginKeys.projectInfoVersion
-import org.apache.pekko.PekkoParadoxPlugin.autoImport._
-import sbt.Keys._
-import sbt._
+// TODO [sbt2-migration] Blocked on pekko-sbt-paradox sbt 2 support
+// import org.apache.pekko.PekkoParadoxPlugin.autoImport._
+import sbt.Keys.*
+import sbt.*
import sbtlicensereport.SbtLicenseReport.autoImportImpl.dumpLicenseReportAggregate
-import scala.concurrent.duration._
+import scala.concurrent.duration.*
object Paradox {
val pekkoBaseURL = "https://pekko.apache.org"
@@ -78,8 +79,10 @@ object Paradox {
// TODO page not linked to
"fault-tolerance-sample.html"))
- lazy val themeSettings = Seq(
- pekkoParadoxGithub := Some("https://github.com/apache/pekko"))
+ // TODO [sbt2-migration] Blocked on pekko-sbt-paradox sbt 2 support
+ // lazy val themeSettings = Seq(
+ // pekkoParadoxGithub := Some("https://github.com/apache/pekko"))
+ lazy val themeSettings = Seq.empty
// FIXME https://github.com/lightbend/paradox/issues/350
// Exclusions from direct compilation for includes dirs/files not belonging in a TOC
@@ -114,5 +117,7 @@ object Paradox {
Seq(
Compile / paradox / name := "Pekko",
ApidocPlugin.autoImport.apidocRootPackage := "org.apache.pekko",
- Global / pekkoParadoxIncubatorNotice := None)
+ // TODO [sbt2-migration] Blocked on pekko-sbt-paradox sbt 2 support
+ // Global / pekkoParadoxIncubatorNotice := None
+ )
}
diff --git a/project/ParadoxBrowse.scala b/project/ParadoxBrowse.scala
index 1cc3b637f6..752446397e 100644
--- a/project/ParadoxBrowse.scala
+++ b/project/ParadoxBrowse.scala
@@ -12,9 +12,9 @@
*/
import com.lightbend.paradox.sbt.ParadoxPlugin
-import com.lightbend.paradox.sbt.ParadoxPlugin.autoImport._
-import sbt.Keys._
-import sbt._
+import com.lightbend.paradox.sbt.ParadoxPlugin.autoImport.*
+import sbt.Keys.*
+import sbt.*
object ParadoxBrowse extends AutoPlugin {
diff --git a/project/PekkoBuild.scala b/project/PekkoBuild.scala
index 2eab25cf4c..4b1ce3177e 100644
--- a/project/PekkoBuild.scala
+++ b/project/PekkoBuild.scala
@@ -13,12 +13,12 @@
import MultiJvmPlugin.autoImport.MultiJvm
-import com.lightbend.paradox.projectinfo.ParadoxProjectInfoPluginKeys._
+import com.lightbend.paradox.projectinfo.ParadoxProjectInfoPluginKeys.*
import sbt.Def
-import sbt.Keys._
-import sbt._
-import sbtassembly.AssemblyPlugin.autoImport._
-import sbtwelcome.WelcomePlugin.autoImport._
+import sbt.Keys.*
+import sbt.*
+import sbtassembly.AssemblyPlugin.autoImport.*
+import sbtwelcome.WelcomePlugin.autoImport.*
import java.io.FileInputStream
import java.io.InputStreamReader
@@ -255,7 +255,7 @@ object PekkoBuild {
})
lazy val welcomeSettings: Seq[Setting[?]] = Def.settings {
- import sbtwelcome._
+ import sbtwelcome.*
Seq(
logo := {
raw"""
@@ -306,7 +306,7 @@ object PekkoBuild {
doc / javacOptions ++= Seq("-Xdoclint:none", "--ignore-source-errors"))
def loadSystemProperties(fileName: String): Unit = {
- import scala.jdk.CollectionConverters._
+ import scala.jdk.CollectionConverters.*
val file = new File(fileName)
if (file.exists()) {
println("Loading system properties from file `" + fileName + "`")
diff --git a/project/PekkoDevelocityPlugin.scala b/project/PekkoDevelocityPlugin.scala
index 9c94d99622..ff3196ea55 100644
--- a/project/PekkoDevelocityPlugin.scala
+++ b/project/PekkoDevelocityPlugin.scala
@@ -15,67 +15,79 @@
* limitations under the License.
*/
-import com.gradle.develocity.agent.sbt.DevelocityPlugin
-import com.gradle.develocity.agent.sbt.DevelocityPlugin.autoImport.{
- develocityConfiguration,
- FlakyTestPolicy,
- ProjectId,
- Publishing
-}
-import sbt.{ inConfig, url, AutoPlugin, Def, PluginTrigger, Plugins, Setting }
-import sbt.Keys.insideCI
+// TODO [sbt2-migration] Blocked on sbt-develocity sbt 2 support
+// This entire file depends on sbt-develocity (com.gradle.develocity.agent.sbt.DevelocityPlugin).
+// All imports and plugin bodies are commented out until the plugin supports sbt 2.
-object PekkoDevelocityPlugin extends AutoPlugin {
+// import com.gradle.develocity.agent.sbt.DevelocityPlugin
+// import com.gradle.develocity.agent.sbt.DevelocityPlugin.autoImport.{
+// develocityConfiguration,
+// FlakyTestPolicy,
+// ProjectId,
+// Publishing
+// }
+import sbt.{ AutoPlugin, PluginTrigger, Plugins }
- private val ApacheDevelocityUrl = url("https://develocity.apache.org")
- private val PekkoProjectId = ProjectId("pekko")
- private val ObfuscatedIPv4Address = "0.0.0.0"
+object PekkoDevelocityPlugin extends AutoPlugin {
- override lazy val trigger: PluginTrigger = allRequirements
- override lazy val requires: Plugins = DevelocityPlugin
+ // TODO [sbt2-migration] Blocked on sbt-develocity sbt 2 support
+ // private val ApacheDevelocityUrl = url("https://develocity.apache.org")
+ // private val PekkoProjectId = ProjectId("pekko")
+ // private val ObfuscatedIPv4Address = "0.0.0.0"
- override lazy val buildSettings: Seq[Setting[?]] = Def.settings(
- develocityConfiguration := {
- val isInsideCI = insideCI.value
+ override lazy val trigger: PluginTrigger = noTrigger
+ // TODO [sbt2-migration] Blocked on sbt-develocity sbt 2 support
+ // override lazy val trigger: PluginTrigger = allRequirements
+ // override lazy val requires: Plugins = DevelocityPlugin
+ override lazy val requires: Plugins = plugins.JvmPlugin
- val original = develocityConfiguration.value
- val apacheDevelocityConfiguration =
- original
- .withProjectId(PekkoProjectId)
- .withServer(
- original.server
- .withUrl(Some(ApacheDevelocityUrl))
- .withAllowUntrusted(false))
- .withBuildScan(
- original.buildScan
- .withPublishing(Publishing.onlyIf(_.authenticated))
- .withBackgroundUpload(!isInsideCI)
- .withObfuscation(
- original.buildScan.obfuscation
- .withIpAddresses(_.map(_ => ObfuscatedIPv4Address))))
- .withBuildCache(
- original.buildCache
- .withLocal(
- original.buildCache.local
- .withEnabled(false)))
- if (isInsideCI) {
- apacheDevelocityConfiguration
- .withTestRetry(
- original.testRetry
- .withMaxRetries(1)
- .withFlakyTestPolicy(FlakyTestPolicy.Fail) // preserve the original build outcome in case of flaky tests
- )
- } else apacheDevelocityConfiguration
- })
+ // TODO [sbt2-migration] Blocked on sbt-develocity sbt 2 support — restore buildSettings
+ // override lazy val buildSettings: Seq[Setting[?]] = Def.settings(
+ // develocityConfiguration := {
+ // val isInsideCI = insideCI.value
+ //
+ // val original = develocityConfiguration.value
+ // val apacheDevelocityConfiguration =
+ // original
+ // .withProjectId(PekkoProjectId)
+ // .withServer(
+ // original.server
+ // .withUrl(Some(ApacheDevelocityUrl))
+ // .withAllowUntrusted(false))
+ // .withBuildScan(
+ // original.buildScan
+ // .withPublishing(Publishing.onlyIf(_.authenticated))
+ // .withBackgroundUpload(!isInsideCI)
+ // .withObfuscation(
+ // original.buildScan.obfuscation
+ // .withIpAddresses(_.map(_ => ObfuscatedIPv4Address))))
+ // .withBuildCache(
+ // original.buildCache
+ // .withLocal(
+ // original.buildCache.local
+ // .withEnabled(false)))
+ // if (isInsideCI) {
+ // apacheDevelocityConfiguration
+ // .withTestRetry(
+ // original.testRetry
+ // .withMaxRetries(1)
+ // .withFlakyTestPolicy(FlakyTestPolicy.Fail)
+ // )
+ // } else apacheDevelocityConfiguration
+ // })
}
/**
* An AutoPlugin to add Develocity test configuration to the TestJdk9 configuration.
*/
object PekkoDevelocityJdk9TestSettingsPlugin extends AutoPlugin {
- override lazy val trigger: PluginTrigger = allRequirements
- override lazy val requires: Plugins = DevelocityPlugin && Jdk9
+ override lazy val trigger: PluginTrigger = noTrigger
+ // TODO [sbt2-migration] Blocked on sbt-develocity sbt 2 support
+ // override lazy val trigger: PluginTrigger = allRequirements
+ // override lazy val requires: Plugins = DevelocityPlugin && Jdk9
+ override lazy val requires: Plugins = plugins.JvmPlugin
+ // TODO [sbt2-migration] Blocked on sbt-develocity sbt 2 support
// See https://docs.gradle.com/develocity/sbt-plugin/#enabling_build_cache_in_a_custom_sbt_configuration
- override lazy val projectSettings = DevelocityPlugin.develocitySettings(Jdk9.TestJdk9)
+ // override lazy val projectSettings = DevelocityPlugin.develocitySettings(Jdk9.TestJdk9)
}
diff --git a/project/PekkoDisciplinePlugin.scala b/project/PekkoDisciplinePlugin.scala
index 48212954c2..6db844bde8 100644
--- a/project/PekkoDisciplinePlugin.scala
+++ b/project/PekkoDisciplinePlugin.scala
@@ -11,8 +11,8 @@
* Copyright (C) 2019-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt._
-import Keys.{ scalacOptions, _ }
+import sbt.*
+import Keys.{ scalacOptions, * }
import sbt.plugins.JvmPlugin
object PekkoDisciplinePlugin extends AutoPlugin {
diff --git a/project/ProjectFileIgnoreSupport.scala b/project/ProjectFileIgnoreSupport.scala
index 641135f9b2..43d0deabac 100644
--- a/project/ProjectFileIgnoreSupport.scala
+++ b/project/ProjectFileIgnoreSupport.scala
@@ -31,13 +31,13 @@ class ProjectFileIgnoreSupport(ignoreConfigFile: File, descriptor: String) {
}
private lazy val ignoredFiles: Set[String] = {
- import scala.jdk.CollectionConverters._
+ import scala.jdk.CollectionConverters.*
stdoutLogger.debug(s"Loading ignored-files from $ignoreConfigFile:[${ignoreConfig.origin().url().toURI.getPath}]")
ignoreConfig.getStringList("ignored-files").asScala.toSet
}
private lazy val ignoredPackages: Set[String] = {
- import scala.jdk.CollectionConverters._
+ import scala.jdk.CollectionConverters.*
stdoutLogger.debug(
s"Loading ignored-packages from $ignoreConfigFile:[${ignoreConfig.origin().url().toURI.getPath}]")
ignoreConfig.getStringList("ignored-packages").asScala.toSet
diff --git a/project/Protobuf.scala b/project/Protobuf.scala
index d74994468a..6fb5e426b6 100644
--- a/project/Protobuf.scala
+++ b/project/Protobuf.scala
@@ -14,13 +14,13 @@
import java.io.File
import java.io.PrintWriter
-import scala.sys.process._
+import scala.sys.process.*
-import sbt._
+import sbt.*
import sbt.util.CacheStoreFactory
-import Keys._
+import Keys.*
-import sbtassembly.AssemblyKeys._
+import sbtassembly.AssemblyKeys.*
object Protobuf {
lazy val paths = SettingKey[Seq[File]]("protobuf-paths", "The paths that contain *.proto files.")
@@ -160,6 +160,7 @@ object Protobuf {
transform: (File, File) => Unit,
cache: File,
log: Logger): File = {
+ // TODO [sbt2-migration] FileFunction.cached with ChangeReport API removed in sbt 2. Needs rewrite to use new Set[File] => Set[File] API
val runTransform = FileFunction.cached(CacheStoreFactory(cache), FilesInfo.hash, FilesInfo.exists) {
(in: ChangeReport[File], out: ChangeReport[File]) =>
val map = Path.rebase(sourceDir, targetDir)
diff --git a/project/Publish.scala b/project/Publish.scala
index b164d3c116..e220f013a3 100644
--- a/project/Publish.scala
+++ b/project/Publish.scala
@@ -11,9 +11,10 @@
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt._
-import sbt.Keys._
-import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin
+import sbt.*
+import sbt.Keys.*
+// TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+// import org.mdedetrich.apache.sonatype.ApacheSonatypePlugin
import sbtdynver.DynVerPlugin
import sbtdynver.DynVerPlugin.autoImport.dynverSonatypeSnapshots
@@ -33,7 +34,9 @@ object Publish extends AutoPlugin {
override lazy val buildSettings = Seq(
dynverSonatypeSnapshots := true)
- override lazy val requires = ApacheSonatypePlugin && DynVerPlugin
+ // TODO [sbt2-migration] Blocked on sbt-pekko-build sbt 2 support
+ // override lazy val requires = ApacheSonatypePlugin && DynVerPlugin
+ override lazy val requires = DynVerPlugin
}
/**
diff --git a/project/SbtMultiJvmPlugin.scala b/project/SbtMultiJvmPlugin.scala
index 01c484f986..66299bb952 100644
--- a/project/SbtMultiJvmPlugin.scala
+++ b/project/SbtMultiJvmPlugin.scala
@@ -12,15 +12,15 @@
*/
import scala.sys.process.Process
-import sjsonnew.BasicJsonProtocol._
-import sbt._
-import Keys._
+import sjsonnew.BasicJsonProtocol.*
+import sbt.*
+import Keys.*
import java.io.File
import java.lang.Boolean.getBoolean
import sbtassembly.AssemblyPlugin.assemblySettings
import sbtassembly.{ AssemblyKeys, MergeStrategy }
-import AssemblyKeys._
+import AssemblyKeys.*
object MultiJvmPlugin extends AutoPlugin {
@@ -76,7 +76,7 @@ object MultiJvmPlugin extends AutoPlugin {
val autoImport = MultiJvmKeys
- import MultiJvmKeys._
+ import MultiJvmKeys.*
override lazy val requires = plugins.JvmPlugin
@@ -141,7 +141,7 @@ object MultiJvmPlugin extends AutoPlugin {
multiJvmTestJar := (assembly / assemblyOutputPath).map(_.getAbsolutePath).dependsOn(assembly).value,
multiJvmTestJarName := (assembly / assemblyOutputPath).value.getAbsolutePath,
multiNodeTest := {
- implicit val display = Project.showContextKey(state.value)
+ implicit val display: Show[ScopedKey[?]] = Project.showContextKey(state.value)
showResults(streams.value.log, multiNodeExecuteTests.value, noTestsMessage(resolvedScoped.value))
},
multiNodeExecuteTests := multiNodeExecuteTestsTask.value,
@@ -274,6 +274,7 @@ object MultiJvmPlugin extends AutoPlugin {
streams.value.log)
}
+ // TODO [sbt2-migration] InputTask.createDyn/loadForParser API may need rework for sbt 2
def multiJvmTestOnly: Def.Initialize[sbt.InputTask[Unit]] =
InputTask.createDyn(loadForParser(multiJvmTestNames)((s, i) => Defaults.testOnlyParser(s, i.getOrElse(Nil)))) {
Def.task {
@@ -318,6 +319,7 @@ object MultiJvmPlugin extends AutoPlugin {
results.map(result => Tests.Summary("multi-jvm", result._1)))
}
+ // TODO [sbt2-migration] InputTask.createDyn/loadForParser API may need rework for sbt 2
def multiJvmRun: Def.Initialize[sbt.InputTask[Unit]] =
InputTask.createDyn(loadForParser(multiJvmAppNames)((s, i) => runParser(s, i.getOrElse(Nil)))) {
Def.task {
@@ -341,7 +343,7 @@ object MultiJvmPlugin extends AutoPlugin {
}
def runParser: (State, Seq[String]) => complete.Parser[String] = {
- import complete.DefaultParsers._
+ import complete.DefaultParsers.*
(state, appClasses) => Space ~> token(NotSpace.examples(appClasses.toSet))
}
@@ -407,6 +409,7 @@ object MultiJvmPlugin extends AutoPlugin {
streams.value.log)
}
+ // TODO [sbt2-migration] InputTask.createDyn/loadForParser API may need rework for sbt 2
def multiNodeTestOnlyTask: Def.Initialize[InputTask[Unit]] =
InputTask.createDyn(loadForParser(multiJvmTestNames)((s, i) => Defaults.testOnlyParser(s, i.getOrElse(Nil)))) {
Def.task {
@@ -554,7 +557,7 @@ object MultiJvmPlugin extends AutoPlugin {
classes.toIndexedSeq,
padSeqOrDefaultTo(hostsAndUsers, "localhost", max),
padSeqOrDefaultTo(javas, defaultJava, max))
- tuple.zipped.map { case (className: String, hostAndUser: String, _java: String) => (className, hostAndUser, _java) }
+ tuple._1.lazyZip(tuple._2).lazyZip(tuple._3).map { case (className: String, hostAndUser: String, _java: String) => (className, hostAndUser, _java) }
}
private def getMultiNodeCommandLineOptions(hosts: Seq[String], index: Int, maxNodes: Int): Seq[String] = {
@@ -570,7 +573,7 @@ object MultiJvmPlugin extends AutoPlugin {
hosts: Seq[String],
hostsFileName: String,
defaultJava: String,
- s: Types.Id[Keys.TaskStreams]): (IndexedSeq[String], IndexedSeq[String]) = {
+ s: Keys.TaskStreams): (IndexedSeq[String], IndexedSeq[String]) = {
val hostsFile = new File(hostsFileName)
val theHosts: IndexedSeq[String] =
if (hosts.isEmpty) {
diff --git a/project/ScalaFixExtraRulesPlugin.scala b/project/ScalaFixExtraRulesPlugin.scala
index a2bb844d59..7587657725 100644
--- a/project/ScalaFixExtraRulesPlugin.scala
+++ b/project/ScalaFixExtraRulesPlugin.scala
@@ -19,7 +19,7 @@ object ScalaFixExtraRulesPlugin extends AutoPlugin with ScalafixSupport {
override lazy val requires: Plugins = ScalafixPlugin
- import sbt._
+ import sbt.*
import scalafix.sbt.ScalafixPlugin.autoImport.scalafixDependencies
override lazy val projectSettings: Seq[Def.Setting[?]] = super.projectSettings ++ {
ThisBuild / scalafixDependencies ++= Seq(
diff --git a/project/ScalafixForMultiNodePlugin.scala b/project/ScalafixForMultiNodePlugin.scala
index 1ba402d636..6bb82f670d 100644
--- a/project/ScalafixForMultiNodePlugin.scala
+++ b/project/ScalafixForMultiNodePlugin.scala
@@ -20,7 +20,7 @@ object ScalafixForMultiNodePlugin extends AutoPlugin with ScalafixSupport {
override lazy val requires: Plugins = MultiNode && ScalafixPlugin
- import MultiJvmPlugin.autoImport._
+ import MultiJvmPlugin.autoImport.*
lazy val scalafixIgnoredSetting: Seq[Setting[?]] = Seq(ignore(MultiJvm))
diff --git a/project/StreamOperatorsIndexGenerator.scala b/project/StreamOperatorsIndexGenerator.scala
index 1dcce00698..2cb3f8c871 100644
--- a/project/StreamOperatorsIndexGenerator.scala
+++ b/project/StreamOperatorsIndexGenerator.scala
@@ -11,8 +11,8 @@
* Copyright (C) 2016-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt._
-import sbt.Keys._
+import sbt.*
+import sbt.Keys.*
import scala.util.control.NonFatal
diff --git a/project/TestExtras.scala b/project/TestExtras.scala
index c53ed776ca..4d9ffef728 100644
--- a/project/TestExtras.scala
+++ b/project/TestExtras.scala
@@ -11,8 +11,8 @@
* Copyright (C) 2016-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import sbt.Keys._
-import sbt._
+import sbt.Keys.*
+import sbt.*
object TestExtras {
object Filter {
@@ -27,7 +27,7 @@ object TestExtras {
lazy val checkTestsHaveRun = taskKey[Unit]("Verify a number of notable tests have actually run")
}
- import Keys._
+ import Keys.*
private[Filter] object Params {
lazy val testNamesExclude = systemPropertyAsSeq("pekko.test.names.exclude").toSet
diff --git a/project/ValidatePullRequest.scala b/project/ValidatePullRequest.scala
index 246e98b6f3..548025b5ba 100644
--- a/project/ValidatePullRequest.scala
+++ b/project/ValidatePullRequest.scala
@@ -11,15 +11,16 @@
* Copyright (C) 2009-2022 Lightbend Inc. <https://www.lightbend.com>
*/
-import com.github.sbt.pullrequestvalidator.ValidatePullRequest
-import com.github.sbt.pullrequestvalidator.ValidatePullRequest.PathGlobFilter
+// TODO [sbt2-migration] Blocked on sbt-pull-request-validator sbt 2 support
+// import com.github.sbt.pullrequestvalidator.ValidatePullRequest
+// import com.github.sbt.pullrequestvalidator.ValidatePullRequest.PathGlobFilter
import com.lightbend.paradox.sbt.ParadoxPlugin
import com.lightbend.paradox.sbt.ParadoxPlugin.autoImport.paradox
import com.typesafe.tools.mima.plugin.MimaKeys.mimaReportBinaryIssues
import com.typesafe.tools.mima.plugin.MimaPlugin
import sbtunidoc.BaseUnidocPlugin.autoImport.unidoc
-import sbt.Keys._
-import sbt._
+import sbt.Keys.*
+import sbt.*
object PekkoValidatePullRequest extends AutoPlugin {
@@ -27,10 +28,13 @@ object PekkoValidatePullRequest extends AutoPlugin {
lazy val mimaEnabled = CliOption("pekko.mima.enabled", true)
}
- import ValidatePullRequest.autoImport._
+ // TODO [sbt2-migration] Blocked on sbt-pull-request-validator sbt 2 support
+ // import ValidatePullRequest.autoImport._
override lazy val trigger = allRequirements
- override lazy val requires = ValidatePullRequest
+ // TODO [sbt2-migration] Blocked on sbt-pull-request-validator sbt 2 support
+ // override lazy val requires = ValidatePullRequest
+ override lazy val requires = plugins.JvmPlugin
lazy val ValidatePR = config("pr-validation").extend(Test)
@@ -45,33 +49,35 @@ object PekkoValidatePullRequest extends AutoPlugin {
}
}, additionalTasks := Seq.empty)
- override lazy val buildSettings = Seq(
- validatePullRequest / includeFilter := {
- val ignoredProjects = List(
- "pekko", // This is the root project
- "serialVersionRemoverPlugin")
-
- loadedBuild.value.allProjectRefs.collect {
- case (_, project) if !ignoredProjects.contains(project.id) =>
- val directory = project.base.getPath.split(java.io.File.separatorChar).last
- PathGlobFilter(s"$directory/**")
- }.fold(FileFilter.nothing)(_ || _)
- },
- validatePullRequestBuildAll / excludeFilter := PathGlobFilter("project/MiMa.scala"),
- prValidatorGithubRepository := Some("apache/pekko"),
- prValidatorTargetBranch := "origin/main")
-
- override lazy val projectSettings = inConfig(ValidatePR)(Defaults.testTasks) ++ Seq(
- ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "performance"),
- ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "long-running"),
- ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "timing"),
- ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "gh-exclude"),
- // make it fork just like regular test running
- ValidatePR / fork := (Test / fork).value,
- ValidatePR / testGrouping := (Test / testGrouping).value,
- ValidatePR / javaOptions := (Test / javaOptions).value,
- prValidatorTasks := Seq(ValidatePR / test) ++ additionalTasks.value,
- prValidatorEnforcedBuildAllTasks := Seq(Test / test) ++ additionalTasks.value)
+ // TODO [sbt2-migration] Blocked on sbt-pull-request-validator sbt 2 support
+ // override lazy val buildSettings = Seq(
+ // validatePullRequest / includeFilter := {
+ // val ignoredProjects = List(
+ // "pekko", // This is the root project
+ // "serialVersionRemoverPlugin")
+ //
+ // loadedBuild.value.allProjectRefs.collect {
+ // case (_, project) if !ignoredProjects.contains(project.id) =>
+ // val directory = project.base.getPath.split(java.io.File.separatorChar).last
+ // PathGlobFilter(s"$directory/**")
+ // }.fold(FileFilter.nothing)(_ || _)
+ // },
+ // validatePullRequestBuildAll / excludeFilter := PathGlobFilter("project/MiMa.scala"),
+ // prValidatorGithubRepository := Some("apache/pekko"),
+ // prValidatorTargetBranch := "origin/main")
+
+ // TODO [sbt2-migration] Blocked on sbt-pull-request-validator sbt 2 support
+ // override lazy val projectSettings = inConfig(ValidatePR)(Defaults.testTasks) ++ Seq(
+ // ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "performance"),
+ // ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "long-running"),
+ // ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "timing"),
+ // ValidatePR / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-l", "gh-exclude"),
+ // // make it fork just like regular test running
+ // ValidatePR / fork := (Test / fork).value,
+ // ValidatePR / testGrouping := (Test / testGrouping).value,
+ // ValidatePR / javaOptions := (Test / javaOptions).value,
+ // prValidatorTasks := Seq(ValidatePR / test) ++ additionalTasks.value,
+ // prValidatorEnforcedBuildAllTasks := Seq(Test / test) ++ additionalTasks.value)
}
/**
@@ -84,7 +90,7 @@ object PekkoValidatePullRequest extends AutoPlugin {
* autoplugin would trigger only on projects which have both of these plugins enabled.
*/
object MultiNodeWithPrValidation extends AutoPlugin {
- import PekkoValidatePullRequest._
+ import PekkoValidatePullRequest.*
override lazy val trigger = allRequirements
override lazy val requires = PekkoValidatePullRequest && MultiNode
@@ -98,7 +104,7 @@ object MultiNodeWithPrValidation extends AutoPlugin {
* when a project has MimaPlugin autoplugin enabled.
*/
object MimaWithPrValidation extends AutoPlugin {
- import PekkoValidatePullRequest._
+ import PekkoValidatePullRequest.*
override lazy val trigger = allRequirements
override lazy val requires = PekkoValidatePullRequest && MimaPlugin
@@ -111,7 +117,7 @@ object MimaWithPrValidation extends AutoPlugin {
* when a project has ParadoxPlugin autoplugin enabled.
*/
object ParadoxWithPrValidation extends AutoPlugin {
- import PekkoValidatePullRequest._
+ import PekkoValidatePullRequest.*
override lazy val trigger = allRequirements
override lazy val requires = PekkoValidatePullRequest && ParadoxPlugin
@@ -119,7 +125,7 @@ object ParadoxWithPrValidation extends AutoPlugin {
}
object UnidocWithPrValidation extends AutoPlugin {
- import PekkoValidatePullRequest._
+ import PekkoValidatePullRequest.*
override lazy val trigger = noTrigger
override lazy val projectSettings = Seq(additionalTasks += Compile / unidoc)
diff --git a/project/build.properties b/project/build.properties
index b844dc5ca4..bcfa09bbed 100644
--- a/project/build.properties
+++ b/project/build.properties
@@ -1,2 +1,2 @@
-sbt.version=1.12.11
+sbt.version=2.0.0-RC14
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 0fd782c791..451586103e 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -7,34 +7,44 @@
* This file is part of the Apache Pekko project, which was derived from Akka.
*/
-addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.2.0")
+addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.3.1")
-addSbtPlugin("com.github.sbt" % "sbt-java-formatter" % "0.11.0")
+addSbtPlugin("com.github.sbt" % "sbt-java-formatter" % "0.12.0")
addSbtPlugin("com.github.sbt.junit" % "sbt-jupiter-interface" % "0.19.0")
-addSbtPlugin("com.lightbend.sbt" % "sbt-bill-of-materials" % "1.0.2")
+// TODO [sbt2-migration] sbt-bill-of-materials: no sbt 2 support, no upstream activity
+// addSbtPlugin("com.lightbend.sbt" % "sbt-bill-of-materials" % "1.0.2")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.6.1")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.14.6")
-addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.10.0")
+addSbtPlugin("com.github.sbt" % "sbt-osgi" % "0.11.0-RC1")
addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.5")
addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.6.1")
-addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "3.0.2")
+// TODO [sbt2-migration] sbt-api-mappings: no sbt 2 support, stale upstream
+// addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "3.0.2")
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.8")
addSbtPlugin("com.github.sbt" % "sbt-boilerplate" % "0.8.0")
addSbtPlugin("com.github.sbt" % "sbt-header" % "5.11.0")
-addSbtPlugin("com.github.sbt" % "sbt-pull-request-validator" % "2.0.0")
-addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.32")
+// TODO [sbt2-migration] sbt-pull-request-validator: PR open https://github.com/sbt/sbt-pull-request-validator/pull/104
+// addSbtPlugin("com.github.sbt" % "sbt-pull-request-validator" % "2.0.0")
+// TODO [sbt2-migration] sbt-reproducible-builds: blocked upstream on sbt-gpg
+// addSbtPlugin("net.bzzt" % "sbt-reproducible-builds" % "0.32")
addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.1")
-addSbtPlugin("com.github.pjfanning" % "sbt-source-dist" % "0.1.13")
-addSbtPlugin("com.github.pjfanning" % "sbt-pekko-build" % "0.4.7")
+// TODO [sbt2-migration] sbt-source-dist: needs sbt 2 support https://github.com/pjfanning/sbt-source-dist/issues/46
+// addSbtPlugin("com.github.pjfanning" % "sbt-source-dist" % "0.1.13")
+// TODO [sbt2-migration] sbt-pekko-build: needs sbt 2 migration (Pekko-internal)
+// addSbtPlugin("com.github.pjfanning" % "sbt-pekko-build" % "0.4.7")
addSbtPlugin("com.github.reibitto" % "sbt-welcome" % "0.5.0")
addSbtPlugin("com.github.sbt" % "sbt-license-report" % "1.9.0")
-addSbtPlugin("io.github.roiocam" % "sbt-depend-walker" % "0.1.1")
-addSbtPlugin("com.github.sbt" % "sbt-sbom" % "0.5.0")
+// TODO [sbt2-migration] sbt-depend-walker: no sbt 2 support
+// addSbtPlugin("io.github.roiocam" % "sbt-depend-walker" % "0.1.1")
+// TODO [sbt2-migration] sbt-sbom: sbt 2 PR merged but not published https://github.com/sbt/sbt-sbom/issues/224
+// addSbtPlugin("com.github.sbt" % "sbt-sbom" % "0.5.0")
-addSbtPlugin("org.apache.pekko" % "pekko-sbt-paradox" % "1.0.1")
-addSbtPlugin("com.lightbend.paradox" % "sbt-paradox-theme" % "0.10.7")
-addSbtPlugin("com.lightbend.paradox" % "sbt-paradox" % "0.10.7")
+// TODO [sbt2-migration] pekko-sbt-paradox: needs sbt 2 migration (Pekko-internal)
+// addSbtPlugin("org.apache.pekko" % "pekko-sbt-paradox" % "1.0.1")
+addSbtPlugin("com.lightbend.paradox" % "sbt-paradox-theme" % "0.11.0-M4")
+addSbtPlugin("com.lightbend.paradox" % "sbt-paradox" % "0.11.0-M4")
-addSbtPlugin("com.gradle" % "sbt-develocity" % "1.4.5")
+// TODO [sbt2-migration] sbt-develocity: no sbt 2 support, Gradle-maintained
+// addSbtPlugin("com.gradle" % "sbt-develocity" % "1.4.5")
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org