diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4cc511f389..73097540c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: "gradleBloop211/compile" \ "gradleBloop212/compile" \ "gradleBloop212/test" \ - "sbtBloop10Shaded/publishLocal" \ + "sbtBloop10/publishLocal" \ "sbtBloop10/scripted" shell: bash bridges: diff --git a/benchmark-bridge b/benchmark-bridge index e005cbe98f..c23897885a 160000 --- a/benchmark-bridge +++ b/benchmark-bridge @@ -1 +1 @@ -Subproject commit e005cbe98f7ce9a569b0d9c51bffb8d79e803142 +Subproject commit c23897885ab51237c626d9f1bc17fab2ba24c617 diff --git a/build.sbt b/build.sbt index 48839bf2a6..4826ab48e4 100644 --- a/build.sbt +++ b/build.sbt @@ -664,40 +664,13 @@ def shadeSbtSettingsForModule( ) } -def defineShadedSbtPlugin( - projectName: String, - sbtVersion: String, - sbtBloop: Reference -) = { - sbt - .Project(projectName, integrations / "sbt-bloop" / "target" / s"sbt-bloop-shaded-$sbtVersion") - .enablePlugins(BloopShadingPlugin) - .disablePlugins(ScriptedPlugin) - .disablePlugins(SbtJdiTools) - .settings(sbtPluginSettings("sbt-bloop", sbtVersion)) - .settings(shadedModuleSettings) - .settings(shadeSbtSettingsForModule("sbt-bloop-core", sbtBloop)) - .settings( - (run / fork) := true, - (Test / fork) := true, - (Compile / bloopGenerate) := None, - (Test / bloopGenerate) := None, - target := (file("integrations") / "sbt-bloop-shaded" / "target" / sbtVersion).getAbsoluteFile - ) -} - lazy val sbtBloop10: Project = project .dependsOn(jsonConfig212.jvm) .enablePlugins(ScriptedPlugin) .disablePlugins(ScalafixPlugin) .in(integrations / "sbt-bloop") .settings(BuildDefaults.scriptedSettings) - .settings(sbtPluginSettings("sbt-bloop-core", Sbt1Version)) - -lazy val sbtBloop10Shaded: Project = - defineShadedSbtPlugin("sbtBloop10Shaded", Sbt1Version, sbtBloop10).settings( - scalaVersion := (sbtBloop10 / scalaVersion).value - ) + .settings(sbtPluginSettings("sbt-bloop", Sbt1Version)) lazy val sbtBloop013 = project .dependsOn(jsonConfig210.jvm) @@ -706,14 +679,9 @@ lazy val sbtBloop013 = project .disablePlugins(ScalafixPlugin) .in(integrations / "sbt-bloop") .settings(scalaVersion := Scala210Version) - .settings(sbtPluginSettings("sbt-bloop-core", Sbt013Version)) + .settings(sbtPluginSettings("sbt-bloop", Sbt013Version)) .settings(resolvers += Resolver.typesafeIvyRepo("releases")) -lazy val sbtBloop013Shaded = - defineShadedSbtPlugin("sbtBloop013Shaded", Sbt013Version, sbtBloop013).settings( - scalaVersion := (sbtBloop013 / scalaVersion).value - ) - lazy val mavenBloop = project .in(integrations / "maven-bloop") .disablePlugins(ScriptedPlugin) @@ -940,8 +908,6 @@ val allProjectsToRelease = Seq[ProjectReference]( jsonConfig213.jvm, sbtBloop013, sbtBloop10, - sbtBloop013Shaded, - sbtBloop10Shaded, mavenBloop, gradleBloop211, gradleBloop212, diff --git a/frontend/src/test/resources/compiler-plugin-allowlist/project/plugins.sbt b/frontend/src/test/resources/compiler-plugin-allowlist/project/plugins.sbt index f07aa9b84b..de49fe8ac4 100644 --- a/frontend/src/test/resources/compiler-plugin-allowlist/project/plugins.sbt +++ b/frontend/src/test/resources/compiler-plugin-allowlist/project/plugins.sbt @@ -4,5 +4,5 @@ addSbtPlugin("org.wartremover" % "sbt-wartremover" % "2.3.7") addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.1") addSbtPlugin("com.softwaremill.clippy" % "plugin-sbt" % "0.5.3") -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/plugins.sbt b/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/plugins.sbt index 38a76fe72e..7b5bc0ab44 100644 --- a/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/plugins.sbt +++ b/frontend/src/test/resources/cross-test-build-scala-native-0.4/project/plugins.sbt @@ -1,5 +1,5 @@ addSbtPlugin("org.portable-scala" % "sbt-scala-native-crossproject" % "1.0.0") addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.4.3") -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/plugins.sbt b/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/plugins.sbt index 21853f5d4d..2fb264abbc 100644 --- a/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/plugins.sbt +++ b/frontend/src/test/resources/cross-test-build-scalajs-0.6/project/plugins.sbt @@ -1,5 +1,5 @@ addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.6.1") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.26") -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/plugins.sbt b/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/plugins.sbt index c7f484ca6c..887e7da3d6 100644 --- a/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/plugins.sbt +++ b/frontend/src/test/resources/cross-test-build-scalajs-1.0/project/plugins.sbt @@ -1,5 +1,5 @@ addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.6.1") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.0.1") -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/plugins.sbt b/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/plugins.sbt index c15f9b1ef9..f62b4ba556 100644 --- a/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/plugins.sbt +++ b/frontend/src/test/resources/cross-test-build-scalajs-1.x/project/plugins.sbt @@ -1,5 +1,5 @@ addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.0.0") addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.3.1") -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/custom-test-framework/project/plugins.sbt b/frontend/src/test/resources/custom-test-framework/project/plugins.sbt index eb33a059cf..c1003cf519 100644 --- a/frontend/src/test/resources/custom-test-framework/project/plugins.sbt +++ b/frontend/src/test/resources/custom-test-framework/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/no-test-frameworks/project/plugins.sbt b/frontend/src/test/resources/no-test-frameworks/project/plugins.sbt index eb33a059cf..c1003cf519 100644 --- a/frontend/src/test/resources/no-test-frameworks/project/plugins.sbt +++ b/frontend/src/test/resources/no-test-frameworks/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/scala-seed-project/project/plugins.sbt b/frontend/src/test/resources/scala-seed-project/project/plugins.sbt index eb33a059cf..c1003cf519 100644 --- a/frontend/src/test/resources/scala-seed-project/project/plugins.sbt +++ b/frontend/src/test/resources/scala-seed-project/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/frontend/src/test/resources/simple-build/project/plugins.sbt b/frontend/src/test/resources/simple-build/project/plugins.sbt index eb33a059cf..c1003cf519 100644 --- a/frontend/src/test/resources/simple-build/project/plugins.sbt +++ b/frontend/src/test/resources/simple-build/project/plugins.sbt @@ -1,2 +1,2 @@ -addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build-shaded" % "1.0.0-SNAPSHOT") +addSbtPlugin("ch.epfl.scala" % "sbt-bloop-build" % "1.0.0-SNAPSHOT") updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/project/build.sbt b/project/build.sbt index 5263e78ebb..a4830bf2a6 100644 --- a/project/build.sbt +++ b/project/build.sbt @@ -5,7 +5,7 @@ val mvnPluginToolsVersion = "3.6.0" val `bloop-shaded-plugin` = project .settings( sbtPlugin := true, - libraryDependencies += "ch.epfl.scala" %% "sbt-bloop-build-shaded-naked" % "1.0.0-SNAPSHOT" + libraryDependencies += "ch.epfl.scala" %% "sbt-bloop-build-naked" % "1.0.0-SNAPSHOT" ) updateOptions := updateOptions.value.withLatestSnapshots(false) diff --git a/project/project/build.sbt b/project/project/build.sbt index 817382899f..17aa08bbab 100644 --- a/project/project/build.sbt +++ b/project/project/build.sbt @@ -11,60 +11,18 @@ val emptySbtPlugin = project .settings(sharedSettings) .settings(sbtPlugin := true) -val sbtBloopBuildShadedJar = project - .in(file("target")./("sbt-bloop-build-shaded")) - .enablePlugins(BloopShadingPlugin) +val sbtBloopBuildJar = project + .in(file("target")./("sbt-bloop-build")) .settings(sharedSettings) .settings( - // Published name will be sbt-bloop-shaded because of `shading:publishLocal` sbtPlugin := true, - name := "sbt-bloop-build-shaded", + name := "sbt-bloop-build", scalacOptions in Compile := (scalacOptions in Compile).value.filterNot(_ == "-deprecation"), libraryDependencies ++= List( "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-core" % "2.4.0", "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-macros" % "2.4.0" ), - toShadeClasses := { - build.Shading.toShadeClasses( - shadeNamespaces.value, - shadeIgnoredNamespaces.value ++ shadeOwnNamespaces.value, - toShadeJars.value, - streams.value.log, - verbose = false - ) - }, - toShadeJars := { - val sbtCompileDependencies = (dependencyClasspath in Compile in emptySbtPlugin).value - val currentCompileDependencies = (dependencyClasspath in Runtime).value - - val dependenciesToShade = currentCompileDependencies.filterNot { dep => - sbtCompileDependencies.contains(dep) - } - - import java.nio.file.{Files, FileSystems} - val eclipseJarsUnsignedDir = (Keys.crossTarget.value / "eclipse-jars-unsigned").toPath - Files.createDirectories(eclipseJarsUnsignedDir) - dependenciesToShade.map(_.data).flatMap { path => - val ppath = path.toString - - // Copy over jar and remove signed entries - if (!path.exists || !path.isFile) Nil - else if (ppath.contains("gson") || ppath.contains("jsr") || ppath.contains("jna")) Nil - else if (!ppath.contains("eclipse")) List(path) - else { - val targetJar = eclipseJarsUnsignedDir.resolve(path.getName) - build.Shading.deleteSignedJarMetadata(path.toPath, targetJar) - List(targetJar.toFile) - } - } - - }, - shadingNamespace := "shaded.build", - shadeIgnoredNamespaces := Set("scala"), - shadeNamespaces := Set( - "com.github.plokhotnyuk.jsoniter_scala" - ), // Let's add our sbt plugin sources to the module unmanagedSourceDirectories in Compile ++= { val baseDir = baseDirectory.value.getParentFile.getParentFile.getParentFile.getParentFile @@ -77,41 +35,21 @@ val sbtBloopBuildShadedJar = project pluginMainDir / "scala", pluginMainDir / s"scala-sbt-${Keys.sbtBinaryVersion.value}" ) - }, - packageBin in Compile := { - val namespace = shadingNamespace.?.value.getOrElse { - throw new NoSuchElementException("shadingNamespace key not set") - } - - val packagedBin = packageBin.in(Compile).value - val namespaces = shadeNamespaces.value - val ignored = shadeIgnoredNamespaces.value - val classes = toShadeClasses.value - val jars = toShadeJars.value - - val inputs = Keys.sources.in(Compile).value.toSet - val cacheDirectory = Keys.target.value / "shaded-inputs-cached" - - import sbt.util.{FileFunction, FileInfo} - val cacheShading = FileFunction.cached(cacheDirectory, FileInfo.hash) { srcs => - Set( - build.Shading - .createPackage(packagedBin, Nil, namespace, namespaces, ignored, classes, jars) - ) - } - - cacheShading(inputs).head } ) // Create a proxy project instead of depending on plugin directly to work around https://github.com/sbt/sbt/issues/892 -val sbtBloopBuildShadedNakedJar = project - .in(file("sbt-bloop-build-shaded-naked")) +val sbtBloopBuildNakedJar = project + .in(file("sbt-bloop-build-naked")) .settings(sharedSettings) .settings( - name := "sbt-bloop-build-shaded-naked", + name := "sbt-bloop-build-naked", + libraryDependencies ++= List( + "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-core" % "2.4.0", + "com.github.plokhotnyuk.jsoniter-scala" %% "jsoniter-scala-macros" % "2.4.0" + ), products in Compile := { - val packagedPluginJar = (packageBin in Compile in sbtBloopBuildShadedJar).value.toPath + val packagedPluginJar = (packageBin in Compile in sbtBloopBuildJar).value.toPath // Proceed to remove META-INF, which contains sbt.autoplugins, from jar val classDirectory = Keys.classDirectory.in(Compile).value @@ -126,11 +64,11 @@ val sbtBloopBuildShadedNakedJar = project val root = project .in(file(".")) .settings(sharedSettings) - .dependsOn(sbtBloopBuildShadedNakedJar) + .dependsOn(sbtBloopBuildNakedJar) .settings( sbtPlugin := true, update := update - .dependsOn(publishLocal in Compile in sbtBloopBuildShadedJar) - .dependsOn(publishLocal in Compile in sbtBloopBuildShadedNakedJar) + .dependsOn(publishLocal in Compile in sbtBloopBuildJar) + .dependsOn(publishLocal in Compile in sbtBloopBuildNakedJar) .value )