From 44097ec1275e05780f578f57f9e5d13fa87c3c5a Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 15 Aug 2025 11:18:50 -0400 Subject: [PATCH 1/2] Add plugins test --- .github/workflows/ci.yml | 2 +- .../plugins/doc-scala3-js/{test => disabled} | 0 .../dotty-sandwich-sjs/{test => disabled} | 0 sbt-app/src/sbt-test/plugins/dotty/LICENSE | 25 ------------------- sbt-app/src/sbt-test/plugins/dotty/README.md | 1 - sbt-app/src/sbt-test/plugins/dotty/build.sbt | 1 - .../plugins/dotty/src/main/scala-3/Main.scala | 16 ------------ .../dotty/src/main/scala-3/TraitParams.scala | 21 ---------------- sbt-app/src/sbt-test/plugins/dotty/test | 1 - .../sbt-test/plugins/hydra/{test => disabled} | 0 sbt-app/src/sbt-test/plugins/pgp/build.sbt | 1 + .../sbt-test/plugins/pgp/project/plugins.sbt | 2 ++ .../plugins/pgp/src/main/scala/Foo.scala | 1 + sbt-app/src/sbt-test/plugins/pgp/test | 1 + .../plugins/play-watch/{test => disabled} | 0 .../sbt-native-packager/{test => disabled} | 0 .../plugins/scala-js-macro/{test => disabled} | 0 .../plugins/scala-js/{test => disabled} | 0 .../sbt-test/plugins/twirl/{test => disabled} | 0 .../plugins/unidoc/{test => disabled} | 0 20 files changed, 6 insertions(+), 66 deletions(-) rename sbt-app/src/sbt-test/plugins/doc-scala3-js/{test => disabled} (100%) rename sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/{test => disabled} (100%) delete mode 100644 sbt-app/src/sbt-test/plugins/dotty/LICENSE delete mode 100644 sbt-app/src/sbt-test/plugins/dotty/README.md delete mode 100644 sbt-app/src/sbt-test/plugins/dotty/build.sbt delete mode 100644 sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/Main.scala delete mode 100644 sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/TraitParams.scala delete mode 100644 sbt-app/src/sbt-test/plugins/dotty/test rename sbt-app/src/sbt-test/plugins/hydra/{test => disabled} (100%) create mode 100644 sbt-app/src/sbt-test/plugins/pgp/build.sbt create mode 100644 sbt-app/src/sbt-test/plugins/pgp/project/plugins.sbt create mode 100644 sbt-app/src/sbt-test/plugins/pgp/src/main/scala/Foo.scala create mode 100644 sbt-app/src/sbt-test/plugins/pgp/test rename sbt-app/src/sbt-test/plugins/play-watch/{test => disabled} (100%) rename sbt-app/src/sbt-test/plugins/sbt-native-packager/{test => disabled} (100%) rename sbt-app/src/sbt-test/plugins/scala-js-macro/{test => disabled} (100%) rename sbt-app/src/sbt-test/plugins/scala-js/{test => disabled} (100%) rename sbt-app/src/sbt-test/plugins/twirl/{test => disabled} (100%) rename sbt-app/src/sbt-test/plugins/unidoc/{test => disabled} (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 41533b74a..e3f308107 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -159,7 +159,7 @@ jobs: run: | ./sbt -v --client "scripted dependency-graph/*" ./sbt -v --client "scripted dependency-management/* project-load/* project-matrix/* java/* run/*" - # ./sbt -v --client "scripted plugins/*" + ./sbt -v --client "scripted plugins/*" # ./sbt -v --client "scripted nio/*" - name: Build and test (4) if: ${{ matrix.jobtype == 4 }} diff --git a/sbt-app/src/sbt-test/plugins/doc-scala3-js/test b/sbt-app/src/sbt-test/plugins/doc-scala3-js/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/doc-scala3-js/test rename to sbt-app/src/sbt-test/plugins/doc-scala3-js/disabled diff --git a/sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/test b/sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/test rename to sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/disabled diff --git a/sbt-app/src/sbt-test/plugins/dotty/LICENSE b/sbt-app/src/sbt-test/plugins/dotty/LICENSE deleted file mode 100644 index 728844ee3..000000000 --- a/sbt-app/src/sbt-test/plugins/dotty/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -Copyright (c) 2015 The dotty-example-project contributors. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: -1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. -3. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/sbt-app/src/sbt-test/plugins/dotty/README.md b/sbt-app/src/sbt-test/plugins/dotty/README.md deleted file mode 100644 index e476c5c1d..000000000 --- a/sbt-app/src/sbt-test/plugins/dotty/README.md +++ /dev/null @@ -1 +0,0 @@ -Cut-n-pasted from https://github.com/lampepfl/dotty-example-project/tree/a753b14e281bbaa6c69f26298913ad6feba969c7 diff --git a/sbt-app/src/sbt-test/plugins/dotty/build.sbt b/sbt-app/src/sbt-test/plugins/dotty/build.sbt deleted file mode 100644 index 48a4f88fe..000000000 --- a/sbt-app/src/sbt-test/plugins/dotty/build.sbt +++ /dev/null @@ -1 +0,0 @@ -ThisBuild / scalaVersion := "3.3.4" diff --git a/sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/Main.scala b/sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/Main.scala deleted file mode 100644 index 8a44ae4ef..000000000 --- a/sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/Main.scala +++ /dev/null @@ -1,16 +0,0 @@ - -object Main { - - def main(args: Array[String]): Unit = { - - runExample("Trait Params")(TraitParams.test) - - } - - private def runExample(name: String)(f: => Unit) = { - println(Console.MAGENTA + s"$name example:" + Console.RESET) - f - println() - } - -} diff --git a/sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/TraitParams.scala b/sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/TraitParams.scala deleted file mode 100644 index 5d4409971..000000000 --- a/sbt-app/src/sbt-test/plugins/dotty/src/main/scala-3/TraitParams.scala +++ /dev/null @@ -1,21 +0,0 @@ -/** - * Trait Parameters: https://dotty.epfl.ch/docs/reference/other-new-features/trait-parameters.html - */ -object TraitParams { - - trait Base(val msg: String) - class A extends Base("Hello") - class B extends Base("Dotty!") - - // Union types only exist in Dotty, so there's no chance that this will accidentally be compiled with Scala 2 - private def printMessages(msgs: (A | B)*) = println(msgs.map(_.msg).mkString(" ")) - - def test: Unit = { - - printMessages(new A, new B) - - // Sanity check the classpath: this won't run if the dotty jar is not present. - val x: Int => Int = z => z - x(1) - } -} diff --git a/sbt-app/src/sbt-test/plugins/dotty/test b/sbt-app/src/sbt-test/plugins/dotty/test deleted file mode 100644 index 62ea636c1..000000000 --- a/sbt-app/src/sbt-test/plugins/dotty/test +++ /dev/null @@ -1 +0,0 @@ -> run diff --git a/sbt-app/src/sbt-test/plugins/hydra/test b/sbt-app/src/sbt-test/plugins/hydra/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/hydra/test rename to sbt-app/src/sbt-test/plugins/hydra/disabled diff --git a/sbt-app/src/sbt-test/plugins/pgp/build.sbt b/sbt-app/src/sbt-test/plugins/pgp/build.sbt new file mode 100644 index 000000000..c73b99a66 --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/pgp/build.sbt @@ -0,0 +1 @@ +scalaVersion := "3.7.2" diff --git a/sbt-app/src/sbt-test/plugins/pgp/project/plugins.sbt b/sbt-app/src/sbt-test/plugins/pgp/project/plugins.sbt new file mode 100644 index 000000000..bb21230da --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/pgp/project/plugins.sbt @@ -0,0 +1,2 @@ +// addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1") +libraryDependencies += Defaults.sbtPluginExtra("com.github.sbt" % "sbt-pgp" % "2.3.1", "2", "3.7.2") diff --git a/sbt-app/src/sbt-test/plugins/pgp/src/main/scala/Foo.scala b/sbt-app/src/sbt-test/plugins/pgp/src/main/scala/Foo.scala new file mode 100644 index 000000000..c389887ee --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/pgp/src/main/scala/Foo.scala @@ -0,0 +1 @@ +class Foo diff --git a/sbt-app/src/sbt-test/plugins/pgp/test b/sbt-app/src/sbt-test/plugins/pgp/test new file mode 100644 index 000000000..003ee6843 --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/pgp/test @@ -0,0 +1 @@ +> plugins diff --git a/sbt-app/src/sbt-test/plugins/play-watch/test b/sbt-app/src/sbt-test/plugins/play-watch/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/play-watch/test rename to sbt-app/src/sbt-test/plugins/play-watch/disabled diff --git a/sbt-app/src/sbt-test/plugins/sbt-native-packager/test b/sbt-app/src/sbt-test/plugins/sbt-native-packager/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/sbt-native-packager/test rename to sbt-app/src/sbt-test/plugins/sbt-native-packager/disabled diff --git a/sbt-app/src/sbt-test/plugins/scala-js-macro/test b/sbt-app/src/sbt-test/plugins/scala-js-macro/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/scala-js-macro/test rename to sbt-app/src/sbt-test/plugins/scala-js-macro/disabled diff --git a/sbt-app/src/sbt-test/plugins/scala-js/test b/sbt-app/src/sbt-test/plugins/scala-js/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/scala-js/test rename to sbt-app/src/sbt-test/plugins/scala-js/disabled diff --git a/sbt-app/src/sbt-test/plugins/twirl/test b/sbt-app/src/sbt-test/plugins/twirl/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/twirl/test rename to sbt-app/src/sbt-test/plugins/twirl/disabled diff --git a/sbt-app/src/sbt-test/plugins/unidoc/test b/sbt-app/src/sbt-test/plugins/unidoc/disabled similarity index 100% rename from sbt-app/src/sbt-test/plugins/unidoc/test rename to sbt-app/src/sbt-test/plugins/unidoc/disabled From be5152dbfbafebf6dc728fd455f294dbf0431976 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 15 Aug 2025 11:11:52 -0400 Subject: [PATCH 2/2] sjson-new 0.14.0-M4 --- .../main/scala/sbt/librarymanagement/UpdateReportExtra.scala | 2 +- .../sbt/internal/librarymanagement/DMSerializationSpec.scala | 4 ++-- main/src/main/scala/sbt/internal/server/SettingQuery.scala | 2 +- project/Dependencies.scala | 2 +- util-cache/src/main/scala/sbt/util/FileInfo.scala | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lm-core/src/main/scala/sbt/librarymanagement/UpdateReportExtra.scala b/lm-core/src/main/scala/sbt/librarymanagement/UpdateReportExtra.scala index 900c9af0e..4cbd69cdb 100644 --- a/lm-core/src/main/scala/sbt/librarymanagement/UpdateReportExtra.scala +++ b/lm-core/src/main/scala/sbt/librarymanagement/UpdateReportExtra.scala @@ -112,7 +112,7 @@ private[librarymanagement] abstract class ModuleReportExtra { private def calendarToString(c: ju.Calendar): String = { import sjsonnew.*, BasicJsonProtocol.* - implicitly[IsoString[ju.Calendar]] to c + implicitly[IsoString[ju.Calendar]].to(c) } def retrieve(f: (ModuleID, Artifact, File) => File): ModuleReport = diff --git a/lm-ivy/src/test/scala/sbt/internal/librarymanagement/DMSerializationSpec.scala b/lm-ivy/src/test/scala/sbt/internal/librarymanagement/DMSerializationSpec.scala index b207cf1ec..b6e221fe7 100644 --- a/lm-ivy/src/test/scala/sbt/internal/librarymanagement/DMSerializationSpec.scala +++ b/lm-ivy/src/test/scala/sbt/internal/librarymanagement/DMSerializationSpec.scala @@ -99,9 +99,9 @@ object DMSerializationSpec extends BasicTestSuite { } def roundtripBuilder[A: JsonReader: JsonWriter](a: A)(f: (A, A) => Unit): Unit = { - val json = isoString to (Converter toJsonUnsafe a) + val json = isoString.to(Converter.toJsonUnsafe(a)) println(json) - val obj = Converter.fromJsonUnsafe[A](isoString from json) + val obj = Converter.fromJsonUnsafe[A](isoString.from(json)) f(a, obj) } diff --git a/main/src/main/scala/sbt/internal/server/SettingQuery.scala b/main/src/main/scala/sbt/internal/server/SettingQuery.scala index 37075bcfe..dea9054e8 100644 --- a/main/src/main/scala/sbt/internal/server/SettingQuery.scala +++ b/main/src/main/scala/sbt/internal/server/SettingQuery.scala @@ -111,7 +111,7 @@ object SettingQuery { case NoJsonWriter() => Left(s"JsonWriter for ${key.tag} not found") } - def toJson[A: JsonWriter](x: A): JValue = Converter toJsonUnsafe x + def toJson[A: JsonWriter](x: A): JValue = Converter.toJsonUnsafe(x) def getSettingJsonValue[A]( structure: BuildStructure, diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 2fcaa7ff0..b2ec98c5a 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -67,7 +67,7 @@ object Dependencies { def addSbtZinc = addSbtModule(sbtZincPath, "zinc", zinc) def addSbtZincCompileCore = addSbtModule(sbtZincPath, "zincCompileCore", zincCompileCore) - lazy val sjsonNewVersion = "0.14.0-M2" + lazy val sjsonNewVersion = "0.14.0-M4" def sjsonNew(n: String) = Def.setting( "com.eed3si9n" %% n % sjsonNewVersion ) // contrabandSjsonNewVersion.value diff --git a/util-cache/src/main/scala/sbt/util/FileInfo.scala b/util-cache/src/main/scala/sbt/util/FileInfo.scala index 897c70b34..603064e2c 100644 --- a/util-cache/src/main/scala/sbt/util/FileInfo.scala +++ b/util-cache/src/main/scala/sbt/util/FileInfo.scala @@ -12,7 +12,8 @@ import java.io.File import scala.util.control.NonFatal import sbt.io.{ Hash, IO } -import sjsonnew.{ arrayFormat as _, * } +import sjsonnew.* +import sjsonnew.BasicJsonProtocol.given import sbt.nio.file.* import sbt.nio.file.syntax.*