diff --git a/build.sbt b/build.sbt index 0f457de6..32bfe9c7 100644 --- a/build.sbt +++ b/build.sbt @@ -144,7 +144,16 @@ lazy val extrasCirceJs = extrasCirce.js.settings(Test / fork := false) lazy val extrasDoobieNewtypeCe2 = crossSubProject("doobie-newtype-ce2", crossProject(JVMPlatform)) .settings( - scalacOptions ++= (if (isScala3(scalaVersion.value)) List.empty else List("-Xsource:3")), + scalacOptions := { + val scalaV = scalaVersion.value + val existingScalacOptions = scalacOptions.value + if (isScala3(scalaV)) + existingScalacOptions + else if (scalaV.startsWith("2.12")) + existingScalacOptions.filterNot(_ == "-Ywarn-unused:nowarn") ++ List("-Xsource:3") + else + existingScalacOptions ++ List("-Xsource:3") + }, crossScalaVersions := props.Scala2Versions.distinct, libraryDependencies ++= List( @@ -163,7 +172,16 @@ lazy val extrasDoobieNewtypeCe2Jvm = extrasDoobieNewtypeCe2.jvm lazy val extrasDoobieNewtypeCe3 = crossSubProject("doobie-newtype-ce3", crossProject(JVMPlatform)) .settings( - scalacOptions ++= (if (isScala3(scalaVersion.value)) List.empty else List("-Xsource:3")), + scalacOptions := { + val scalaV = scalaVersion.value + val existingScalacOptions = scalacOptions.value + if (isScala3(scalaV)) + existingScalacOptions + else if (scalaV.startsWith("2.12")) + existingScalacOptions.filterNot(_ == "-Ywarn-unused:nowarn") ++ List("-Xsource:3") + else + existingScalacOptions ++ List("-Xsource:3") + }, crossScalaVersions := props.Scala2Versions.distinct, libraryDependencies ++= List( @@ -182,7 +200,16 @@ lazy val extrasDoobieNewtypeCe3Jvm = extrasDoobieNewtypeCe3.jvm lazy val extrasDoobieToolsCe2 = crossSubProject("doobie-tools-ce2", crossProject(JVMPlatform)) .settings( - scalacOptions ++= (if (isScala3(scalaVersion.value)) List.empty else List("-Xsource:3")), + scalacOptions := { + val scalaV = scalaVersion.value + val existingScalacOptions = scalacOptions.value + if (isScala3(scalaV)) + existingScalacOptions + else if (scalaV.startsWith("2.12")) + existingScalacOptions.filterNot(_ == "-Ywarn-unused:nowarn") ++ List("-Xsource:3") + else + existingScalacOptions ++ List("-Xsource:3") + }, crossScalaVersions := props.CrossScalaVersions, libraryDependencies ++= List( @@ -204,7 +231,16 @@ lazy val extrasDoobieToolsCe2Jvm = extrasDoobieToolsCe2.jvm lazy val extrasDoobieToolsCe3 = crossSubProject("doobie-tools-ce3", crossProject(JVMPlatform)) .settings( - scalacOptions ++= (if (isScala3(scalaVersion.value)) List.empty else List("-Xsource:3")), + scalacOptions := { + val scalaV = scalaVersion.value + val existingScalacOptions = scalacOptions.value + if (isScala3(scalaV)) + existingScalacOptions + else if (scalaV.startsWith("2.12")) + existingScalacOptions.filterNot(_ == "-Ywarn-unused:nowarn") ++ List("-Xsource:3") + else + existingScalacOptions ++ List("-Xsource:3") + }, crossScalaVersions := props.CrossScalaVersions, libraryDependencies ++= List( @@ -992,6 +1028,12 @@ def crossSubProject(projectName: String, crossProject: CrossProject.Builder): Cr } }, scalacOptions := scalacOptionsPostProcess(scalaVersion.value, scalacOptions.value), + scalacOptions := { + if (scalaVersion.value.startsWith("2.13")) + "-Ymacro-annotations" +: scalacOptions.value + else + scalacOptions.value + }, ) .settings( mavenCentralPublishSettings diff --git a/project/build.properties b/project/build.properties index 27430827..abbbce5d 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.6 +sbt.version=1.9.8 diff --git a/project/plugins.sbt b/project/plugins.sbt index a60fc39f..dcd14ce0 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -11,16 +11,16 @@ addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.11.0") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.0") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "2.0.7") addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.3.7") -addSbtPlugin("io.kevinlee" % "sbt-docusaur" % "0.13.0") +addSbtPlugin("io.kevinlee" % "sbt-docusaur" % "0.15.0") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.13.0") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.2.0") -val sbtDevOopsVersion = "2.24.0" +val sbtDevOopsVersion = "3.0.0" addSbtPlugin("io.kevinlee" % "sbt-devoops-scala" % sbtDevOopsVersion) addSbtPlugin("io.kevinlee" % "sbt-devoops-sbt-extra" % sbtDevOopsVersion) addSbtPlugin("io.kevinlee" % "sbt-devoops-github" % sbtDevOopsVersion) addSbtPlugin("io.kevinlee" % "sbt-devoops-starter" % sbtDevOopsVersion) -addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.2") +addSbtPlugin("org.typelevel" % "sbt-tpolecat" % "0.5.0")