From 6611ccf94d694a1889ed0e6414b0024cb6929ca2 Mon Sep 17 00:00:00 2001 From: Matthew de Detrich Date: Thu, 8 Dec 2022 10:48:23 +0100 Subject: [PATCH 01/11] Set socket backlog to default size of 50 --- .github/workflows/ci.yml | 1 + main-command/src/main/scala/xsbt/IPC.scala | 3 ++- .../src/test/scala/xsbt/IPCSpec.scala | 23 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 main-command/src/test/scala/xsbt/IPCSpec.scala diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6c2cc30a4f..8ca8753557 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -186,6 +186,7 @@ jobs: shell: bash run: | # test building sbtn on Windows + sbt "commandProj/testOnly xsbt.IPCSpec" sbt "-Dsbt.io.virtual=false" nativeImage # test launcher script echo build using JDK 8, test using JDK 8, on Windows diff --git a/main-command/src/main/scala/xsbt/IPC.scala b/main-command/src/main/scala/xsbt/IPC.scala index 9c353613dc..b5ce13ee5c 100644 --- a/main-command/src/main/scala/xsbt/IPC.scala +++ b/main-command/src/main/scala/xsbt/IPC.scala @@ -17,6 +17,7 @@ object IPC { private val portMin = 1025 private val portMax = 65536 private val loopback = InetAddress.getByName(null) + private[xsbt] val socketBacklog = 50 // 50 is the default backlog size for the java.net.Socket def client[T](port: Int)(f: IPC => T): T = ipc(new Socket(loopback, port))(f) @@ -34,7 +35,7 @@ object IPC { def createServer(attempts: Int): ServerSocket = if (attempts > 0) { - try new ServerSocket(nextPort, 1, loopback) + try new ServerSocket(nextPort, socketBacklog, loopback) catch { case NonFatal(_) => createServer(attempts - 1) } } else sys.error("Could not connect to socket: maximum attempts exceeded") diff --git a/main-command/src/test/scala/xsbt/IPCSpec.scala b/main-command/src/test/scala/xsbt/IPCSpec.scala new file mode 100644 index 0000000000..dfeb1dc4ff --- /dev/null +++ b/main-command/src/test/scala/xsbt/IPCSpec.scala @@ -0,0 +1,23 @@ +/* + * sbt + * Copyright 2011 - 2018, Lightbend, Inc. + * Copyright 2008 - 2010, Mark Harrah + * Licensed under Apache License 2.0 (see LICENSE) + */ + +package xsbt + +import org.scalatest.flatspec.AnyFlatSpec +import org.scalatest.matchers.should.Matchers._ + +class IPCSpec extends AnyFlatSpec { + "server" should "allow same number of connections as determined in socket backlog" in { + noException should be thrownBy { + val server = IPC.unmanagedServer + (1 until IPC.socketBacklog + 1).foreach { _ => + IPC.client(server.port)(identity) + } + server.close() + } + } +} From 7c400081a1151433f5b8681cb95fc3904d958f10 Mon Sep 17 00:00:00 2001 From: azdrojowa123 <33667003+azdrojowa123@users.noreply.github.com> Date: Fri, 25 Aug 2023 18:01:49 +0200 Subject: [PATCH 02/11] Fix help command for shells (#7358) * sbt-help-fix * fix BasicCommands.scala formatting --- main-command/src/main/scala/sbt/BasicCommands.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main-command/src/main/scala/sbt/BasicCommands.scala b/main-command/src/main/scala/sbt/BasicCommands.scala index 238c2bfca5..030c778ddb 100644 --- a/main-command/src/main/scala/sbt/BasicCommands.scala +++ b/main-command/src/main/scala/sbt/BasicCommands.scala @@ -129,8 +129,8 @@ object BasicCommands { def runHelp(s: State, h: Help)(arg: Option[String]): State = { val (extraArgs, remainingCommands) = s.remainingCommands match { - case xs :+ exec if exec.commandLine == "shell" => (xs, exec :: Nil) - case xs => (xs, nil[Exec]) + case xs :+ exec if exec.commandLine.endsWith(Shell) => (xs, exec :: Nil) + case xs => (xs, nil[Exec]) } val topic = (arg.toList ++ extraArgs.map(_.commandLine)) match { From bc00cee4df8bda48908699efa852c8c4aa13fb8e Mon Sep 17 00:00:00 2001 From: azdrojowa123 <33667003+azdrojowa123@users.noreply.github.com> Date: Mon, 28 Aug 2023 16:48:06 +0200 Subject: [PATCH 03/11] Add comment to https://github.com/sbt/sbt/pull/7358 (#7362) comment for new condition in sbt.BasicCommands.runHelp --- main-command/src/main/scala/sbt/BasicCommands.scala | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/main-command/src/main/scala/sbt/BasicCommands.scala b/main-command/src/main/scala/sbt/BasicCommands.scala index 030c778ddb..dde64c8c2f 100644 --- a/main-command/src/main/scala/sbt/BasicCommands.scala +++ b/main-command/src/main/scala/sbt/BasicCommands.scala @@ -129,6 +129,10 @@ object BasicCommands { def runHelp(s: State, h: Help)(arg: Option[String]): State = { val (extraArgs, remainingCommands) = s.remainingCommands match { + /* + exec.commandLine.endsWith(Shell) is done to allow shells other than original shell works correctly with help command. + It's assumed here that shell name must end with "shell" suffix which is true for e.g. shell, oldshell or idea-shell (https://github.com/JetBrains/sbt-idea-shell/blob/072b10e405860feb834402563773f12976be34b9/src/main/scala/org/jetbrains/sbt/constants.scala#L7) + */ case xs :+ exec if exec.commandLine.endsWith(Shell) => (xs, exec :: Nil) case xs => (xs, nil[Exec]) } From bc93eceff7179442c0e3525106c5f6a8ce30ab70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Costa?= Date: Wed, 6 Sep 2023 16:34:02 +0200 Subject: [PATCH 04/11] Fix java opts load order on windows --- launcher-package/src/universal/bin/sbt.bat | 30 ++++++++++++---------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/launcher-package/src/universal/bin/sbt.bat b/launcher-package/src/universal/bin/sbt.bat index f44af2219b..dc1f3c8a18 100755 --- a/launcher-package/src/universal/bin/sbt.bat +++ b/launcher-package/src/universal/bin/sbt.bat @@ -112,20 +112,22 @@ if not defined _JAVACMD ( if not defined _JAVACMD set _JAVACMD=java -rem users can set JAVA_OPTS via .jvmopts (sbt-extras style) -if exist .jvmopts for /F %%A in (.jvmopts) do ( - set _jvmopts_line=%%A - if not "!_jvmopts_line:~0,1!" == "#" ( - if defined _JAVA_OPTS ( - set _JAVA_OPTS=!_JAVA_OPTS! %%A - ) else ( - set _JAVA_OPTS=%%A - ) - ) -) - -rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config. -if not defined _JAVA_OPTS if defined JAVA_OPTS set _JAVA_OPTS=%JAVA_OPTS% +rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config. +if not defined _JAVA_OPTS if defined JAVA_OPTS set _JAVA_OPTS=%JAVA_OPTS% + +rem users can set JAVA_OPTS via .jvmopts (sbt-extras style) +if exist .jvmopts for /F %%A in (.jvmopts) do ( + set _jvmopts_line=%%A + if not "!_jvmopts_line:~0,1!" == "#" ( + if defined _JAVA_OPTS ( + set _JAVA_OPTS=!_JAVA_OPTS! %%A + ) else ( + set _JAVA_OPTS=%%A + ) + ) +) + +rem If nothing is defined, use the defaults. if not defined _JAVA_OPTS if defined default_java_opts set _JAVA_OPTS=!default_java_opts! rem We use the value of the SBT_OPTS environment variable if defined, rather than the config. From a5f0b37728750b5e826c6fd947da506390ef3f60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Sep 2023 04:39:58 +0000 Subject: [PATCH 05/11] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/cla.yml | 2 +- .github/workflows/dependency-graph.yml | 2 +- .github/workflows/nightly.yml | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 746cadd5e2..acbf5bf733 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,21 +63,21 @@ jobs: SPARK_LOCAL_IP: "127.0.0.1" steps: - name: Checkout sbt/sbt - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Checkout sbt/io - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sbt/io ref: develop path: io - name: Checkout sbt/librarymanagement - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sbt/librarymanagement ref: develop path: librarymanagement - name: Checkout sbt/zinc - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sbt/zinc ref: develop diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index abbf9f3ba9..f9ead39fdc 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -4,7 +4,7 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check CLA env: AUTHOR: ${{ github.event.pull_request.user.login }} diff --git a/.github/workflows/dependency-graph.yml b/.github/workflows/dependency-graph.yml index 391176fb31..8e5f9dc7ae 100644 --- a/.github/workflows/dependency-graph.yml +++ b/.github/workflows/dependency-graph.yml @@ -12,5 +12,5 @@ jobs: name: Submit Dependency Graph runs-on: ubuntu-latest # or windows-latest, or macOS-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: scalacenter/sbt-dependency-submission@v2 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 500f02eaa3..88e6f48c1b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -21,21 +21,21 @@ jobs: JAVA_OPTS: -Xms800M -Xmx800M -Xss6M -XX:ReservedCodeCacheSize=128M -server -Dsbt.io.virtual=false -Dfile.encoding=UTF-8 steps: - name: Checkout sbt/sbt - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Checkout sbt/io - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sbt/io ref: develop path: io - name: Checkout sbt/librarymanagement - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sbt/librarymanagement ref: develop path: librarymanagement - name: Checkout sbt/zinc - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: sbt/zinc ref: develop From b1e9308ebe4c10c3457d730e0f19cdaee12834c7 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 11 Sep 2023 23:15:15 -0400 Subject: [PATCH 06/11] Use binary compiler bridge Problem ------- Starting Scala 2.13.12, Scala 2 has in-sourced the compiler bridge implementtion, which hopefully will be kept up to date more than the ones in Zinc. Solution -------- This switches to using the pre-compiled compiler bridge for >=2.13.12. --- main/src/main/scala/sbt/Defaults.scala | 4 +++- sbt-app/src/sbt-test/actions/cross-advanced/build.sbt | 7 ++++--- sbt-app/src/sbt-test/actions/cross-advanced/test | 2 +- .../src/sbt-test/actions/cross-incremental/build.sbt | 2 +- .../src/sbt-test/actions/cross-multiproject/build.sbt | 2 +- sbt-app/src/sbt-test/actions/cross-multiproject/test | 2 +- .../actions/cross-strict-aggregation/build.sbt | 2 +- .../sbt-test/actions/cross-strict-aggregation/test | 2 +- sbt-app/src/sbt-test/actions/doc/build.sbt | 2 +- .../separate-analysis-per-scala/build.sbt | 2 +- .../console/project-compiler-bridge/build.sbt | 2 +- .../dependency-graph/asciiGraphWidth/build.sbt | 2 +- .../build.sbt | 2 +- .../sbt-test/dependency-graph/whatDependsOn/build.sbt | 2 +- .../sbt-test/dependency-management/cp-order/build.sbt | 2 +- .../dependency-management/credentials/build.sbt | 2 +- .../evicted-semver-spec/build.sbt | 2 +- .../dependency-management/missingok/build.sbt | 2 +- .../src/sbt-test/plugins/dotty-sandwich-sjs/build.sbt | 2 +- sbt-app/src/sbt-test/plugins/dotty-sandwich/build.sbt | 2 +- sbt-app/src/sbt-test/project/val-order/build.sbt | 2 +- .../src/sbt-test/source-dependencies/constants/test | 2 +- .../source-dependencies/pipelining-java/build.sbt | 2 +- .../sbt-test/source-dependencies/pipelining/build.sbt | 2 +- sbt-app/src/sbt-test/tests/hedgehog/build.sbt | 2 +- sbt-app/src/sbt-test/tests/scalatest/build.sbt | 2 +- sbt-app/src/sbt-test/tests/weaver-cats/build.sbt | 2 +- sbt-app/src/sbt-test/tests/zio-test/build.sbt | 2 +- .../src/main/scala/sbt/internal/inc/ZincLmUtil.scala | 11 ++++++++++- 29 files changed, 43 insertions(+), 31 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index e7a601c309..8a87288924 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -715,7 +715,9 @@ object Defaults extends BuildCommon { clean := clean.dependsOn(cleanIvy).value, scalaCompilerBridgeBinaryJar := Def.settingDyn { val sv = scalaVersion.value - if (ScalaArtifacts.isScala3(sv)) fetchBridgeBinaryJarTask(sv) + if (ScalaArtifacts.isScala3(sv) || VersionNumber(sv) + .matchesSemVer(SemanticSelector(s"=2.13 >=${ZincLmUtil.scala2SbtBridgeStart}"))) + fetchBridgeBinaryJarTask(sv) else Def.task[Option[File]](None) }.value, scalaCompilerBridgeSource := ZincLmUtil.getDefaultBridgeSourceModule(scalaVersion.value), diff --git a/sbt-app/src/sbt-test/actions/cross-advanced/build.sbt b/sbt-app/src/sbt-test/actions/cross-advanced/build.sbt index c9ad52715e..e84586e99c 100644 --- a/sbt-app/src/sbt-test/actions/cross-advanced/build.sbt +++ b/sbt-app/src/sbt-test/actions/cross-advanced/build.sbt @@ -1,6 +1,7 @@ lazy val check = taskKey[Unit]("") lazy val compile2 = taskKey[Unit]("") lazy val scala212 = "2.12.18" +lazy val scala213 = "2.13.12" lazy val root = (project in file(".")) .aggregate(foo, bar, client) @@ -11,7 +12,7 @@ lazy val root = (project in file(".")) lazy val foo = project .settings( - crossScalaVersions := Seq(scala212, "2.13.11"), + crossScalaVersions := Seq(scala212, scala213), libraryDependencies += "org.scalatest" %% "scalatest" % "3.1.0", check := { @@ -43,7 +44,7 @@ lazy val bar = project lazy val baz = project .settings( - crossScalaVersions := Seq("2.13.11"), + crossScalaVersions := Seq(scala213), check := { // This tests that +baz/check will respect bar's crossScalaVersions and not switch val x = (LocalProject("bar") / scalaVersion).value @@ -54,7 +55,7 @@ lazy val baz = project lazy val client = project .settings( - crossScalaVersions := Seq(scala212, "2.13.11"), + crossScalaVersions := Seq(scala212, scala213), check := (Compile / compile).value, compile2 := (Compile / compile).value, ) diff --git a/sbt-app/src/sbt-test/actions/cross-advanced/test b/sbt-app/src/sbt-test/actions/cross-advanced/test index e413a129a8..15c90ead43 100644 --- a/sbt-app/src/sbt-test/actions/cross-advanced/test +++ b/sbt-app/src/sbt-test/actions/cross-advanced/test @@ -17,7 +17,7 @@ ## test + with command or alias > clean ## for command cross building you do need crossScalaVerions on root -> set root/crossScalaVersions := Seq("2.12.18", "2.13.11") +> set root/crossScalaVersions := Seq("2.12.18", "2.13.12") > + build $ exists foo/target/scala-2.12 $ exists foo/target/scala-2.13 diff --git a/sbt-app/src/sbt-test/actions/cross-incremental/build.sbt b/sbt-app/src/sbt-test/actions/cross-incremental/build.sbt index 5554632a2f..8176b96da6 100644 --- a/sbt-app/src/sbt-test/actions/cross-incremental/build.sbt +++ b/sbt-app/src/sbt-test/actions/cross-incremental/build.sbt @@ -1,5 +1,5 @@ scalaVersion := "2.12.18" -crossScalaVersions := List("2.12.18", "2.13.11") +crossScalaVersions := List("2.12.18", "2.13.12") val setLastModified = taskKey[Unit]("Sets the last modified time for classfiles") setLastModified := { diff --git a/sbt-app/src/sbt-test/actions/cross-multiproject/build.sbt b/sbt-app/src/sbt-test/actions/cross-multiproject/build.sbt index c4c5322661..1b411f1dbf 100644 --- a/sbt-app/src/sbt-test/actions/cross-multiproject/build.sbt +++ b/sbt-app/src/sbt-test/actions/cross-multiproject/build.sbt @@ -1,5 +1,5 @@ lazy val scala212 = "2.12.18" -lazy val scala213 = "2.13.11" +lazy val scala213 = "2.13.12" ThisBuild / crossScalaVersions := Seq(scala212, scala213) ThisBuild / scalaVersion := scala212 diff --git a/sbt-app/src/sbt-test/actions/cross-multiproject/test b/sbt-app/src/sbt-test/actions/cross-multiproject/test index c39be13bae..699f1221ce 100644 --- a/sbt-app/src/sbt-test/actions/cross-multiproject/test +++ b/sbt-app/src/sbt-test/actions/cross-multiproject/test @@ -36,7 +36,7 @@ $ exists extras/target/scala-2.12 # test safe switching > clean -> ++ 2.13.11 -v compile +> ++ 2.13.12 -v compile $ exists lib/target/scala-2.13 -$ exists lib/target/scala-2.12 # -$ exists sbt-foo/target/scala-2.12 diff --git a/sbt-app/src/sbt-test/actions/cross-strict-aggregation/build.sbt b/sbt-app/src/sbt-test/actions/cross-strict-aggregation/build.sbt index 374a3d6ab8..7eb67145a0 100644 --- a/sbt-app/src/sbt-test/actions/cross-strict-aggregation/build.sbt +++ b/sbt-app/src/sbt-test/actions/cross-strict-aggregation/build.sbt @@ -1,5 +1,5 @@ lazy val scala212 = "2.12.18" -lazy val scala213 = "2.13.11" +lazy val scala213 = "2.13.12" ThisBuild / scalaVersion := scala212 diff --git a/sbt-app/src/sbt-test/actions/cross-strict-aggregation/test b/sbt-app/src/sbt-test/actions/cross-strict-aggregation/test index c52d1275ae..7d4933f360 100644 --- a/sbt-app/src/sbt-test/actions/cross-strict-aggregation/test +++ b/sbt-app/src/sbt-test/actions/cross-strict-aggregation/test @@ -4,7 +4,7 @@ > clean -> ++2.13.11 compile +> ++2.13.12 compile $ exists core/target/scala-2.13 -$ exists module/target/scala-2.13 diff --git a/sbt-app/src/sbt-test/actions/doc/build.sbt b/sbt-app/src/sbt-test/actions/doc/build.sbt index 3bfa108cd2..fbf26e66f5 100644 --- a/sbt-app/src/sbt-test/actions/doc/build.sbt +++ b/sbt-app/src/sbt-test/actions/doc/build.sbt @@ -5,7 +5,7 @@ import Parsers._ lazy val root = (project in file(".")) .settings( crossPaths := false, - crossScalaVersions := Seq("2.12.18", "2.13.11"), + crossScalaVersions := Seq("2.12.18", "2.13.12"), scalaVersion := "2.12.18", Compile / doc / scalacOptions += "-Xfatal-warnings", commands += Command.command("excludeB") { s => diff --git a/sbt-app/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt b/sbt-app/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt index 6b4c2e3baf..33657a7c46 100644 --- a/sbt-app/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt +++ b/sbt-app/src/sbt-test/compiler-project/separate-analysis-per-scala/build.sbt @@ -1,5 +1,5 @@ lazy val scala212 = "2.12.18" -lazy val scala213 = "2.13.11" +lazy val scala213 = "2.13.12" ThisBuild / scalaVersion := scala212 lazy val root = (project in file(".")) diff --git a/sbt-app/src/sbt-test/console/project-compiler-bridge/build.sbt b/sbt-app/src/sbt-test/console/project-compiler-bridge/build.sbt index 35363129b3..0843374a5c 100644 --- a/sbt-app/src/sbt-test/console/project-compiler-bridge/build.sbt +++ b/sbt-app/src/sbt-test/console/project-compiler-bridge/build.sbt @@ -1,4 +1,4 @@ -scalaVersion := "2.13.11" +scalaVersion := "2.13.12" // Send some bogus initial command so that it doesn't get stuck. // The task itself will still succeed. diff --git a/sbt-app/src/sbt-test/dependency-graph/asciiGraphWidth/build.sbt b/sbt-app/src/sbt-test/dependency-graph/asciiGraphWidth/build.sbt index 698b97b4e3..1670837977 100644 --- a/sbt-app/src/sbt-test/dependency-graph/asciiGraphWidth/build.sbt +++ b/sbt-app/src/sbt-test/dependency-graph/asciiGraphWidth/build.sbt @@ -1,5 +1,5 @@ ThisBuild / version := "0.1.0-SNAPSHOT" -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" name := "asciiGraphWidthSpecs" diff --git a/sbt-app/src/sbt-test/dependency-graph/whatDependsOn-without-previous-initialization/build.sbt b/sbt-app/src/sbt-test/dependency-graph/whatDependsOn-without-previous-initialization/build.sbt index a7bcd4c9ff..1c7a78e3f8 100644 --- a/sbt-app/src/sbt-test/dependency-graph/whatDependsOn-without-previous-initialization/build.sbt +++ b/sbt-app/src/sbt-test/dependency-graph/whatDependsOn-without-previous-initialization/build.sbt @@ -1,5 +1,5 @@ ThisBuild / version := "0.1.0-SNAPSHOT" -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" name := "whatDependsOn" diff --git a/sbt-app/src/sbt-test/dependency-graph/whatDependsOn/build.sbt b/sbt-app/src/sbt-test/dependency-graph/whatDependsOn/build.sbt index a7bcd4c9ff..1c7a78e3f8 100644 --- a/sbt-app/src/sbt-test/dependency-graph/whatDependsOn/build.sbt +++ b/sbt-app/src/sbt-test/dependency-graph/whatDependsOn/build.sbt @@ -1,5 +1,5 @@ ThisBuild / version := "0.1.0-SNAPSHOT" -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" name := "whatDependsOn" diff --git a/sbt-app/src/sbt-test/dependency-management/cp-order/build.sbt b/sbt-app/src/sbt-test/dependency-management/cp-order/build.sbt index e075e4fd06..2764be76fe 100644 --- a/sbt-app/src/sbt-test/dependency-management/cp-order/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/cp-order/build.sbt @@ -1,4 +1,4 @@ -scalaVersion := "2.13.11" +scalaVersion := "2.13.12" csrConfiguration := csrConfiguration.value.withCache(target.value / "coursier-cache") libraryDependencies += "com.typesafe.play" %% "play-test" % "2.8.0-RC1" % Test // worked around in 2.8.0 diff --git a/sbt-app/src/sbt-test/dependency-management/credentials/build.sbt b/sbt-app/src/sbt-test/dependency-management/credentials/build.sbt index 867786f774..32b6610dc1 100644 --- a/sbt-app/src/sbt-test/dependency-management/credentials/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/credentials/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / csrCacheDirectory := (ThisBuild / baseDirectory).value / "coursier-cache" ivyPaths := IvyPaths(baseDirectory.value, Some(target.value / "ivy-cache")) diff --git a/sbt-app/src/sbt-test/dependency-management/evicted-semver-spec/build.sbt b/sbt-app/src/sbt-test/dependency-management/evicted-semver-spec/build.sbt index 073028662a..71d49afbf7 100644 --- a/sbt-app/src/sbt-test/dependency-management/evicted-semver-spec/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/evicted-semver-spec/build.sbt @@ -1,7 +1,7 @@ import xsbti.AppConfiguration // ThisBuild / useCoursier := false ThisBuild / organization := "com.example" -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / versionScheme := Some("semver-spec") ThisBuild / csrCacheDirectory := (ThisBuild / baseDirectory).value / "coursier-cache" diff --git a/sbt-app/src/sbt-test/dependency-management/missingok/build.sbt b/sbt-app/src/sbt-test/dependency-management/missingok/build.sbt index 8b24e0d5e8..aa97b584fc 100644 --- a/sbt-app/src/sbt-test/dependency-management/missingok/build.sbt +++ b/sbt-app/src/sbt-test/dependency-management/missingok/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" libraryDependencies ++= Seq( "com.chuusai" %% "shapeless" % "2.3.3", // non-existing diff --git a/sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/build.sbt b/sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/build.sbt index c7b8ec4651..5fd5c06b81 100644 --- a/sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/build.sbt +++ b/sbt-app/src/sbt-test/plugins/dotty-sandwich-sjs/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / scalacOptions += "-Ytasty-reader" lazy val scala3code = project diff --git a/sbt-app/src/sbt-test/plugins/dotty-sandwich/build.sbt b/sbt-app/src/sbt-test/plugins/dotty-sandwich/build.sbt index dc5cfcb3d1..a8e2060071 100644 --- a/sbt-app/src/sbt-test/plugins/dotty-sandwich/build.sbt +++ b/sbt-app/src/sbt-test/plugins/dotty-sandwich/build.sbt @@ -1,7 +1,7 @@ ThisBuild / scalaVersion := "3.1.3" ThisBuild / scalacOptions += "-Ytasty-reader" -lazy val scala213 = "2.13.11" +lazy val scala213 = "2.13.12" lazy val root = (project in file(".")) .aggregate(fooApp, fooCore, barApp, barCore) diff --git a/sbt-app/src/sbt-test/project/val-order/build.sbt b/sbt-app/src/sbt-test/project/val-order/build.sbt index 43de687460..683c645b63 100644 --- a/sbt-app/src/sbt-test/project/val-order/build.sbt +++ b/sbt-app/src/sbt-test/project/val-order/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / version := "0.1.0-SNAPSHOT" lazy val check = taskKey[Unit]("") diff --git a/sbt-app/src/sbt-test/source-dependencies/constants/test b/sbt-app/src/sbt-test/source-dependencies/constants/test index d1b542f864..f3da8143a3 100644 --- a/sbt-app/src/sbt-test/source-dependencies/constants/test +++ b/sbt-app/src/sbt-test/source-dependencies/constants/test @@ -8,7 +8,7 @@ $ copy-file changes/A2.scala A.scala > run 2 > clean -> ++2.13.11! +> ++2.13.12! $ copy-file changes/A1.scala A.scala > run 1 diff --git a/sbt-app/src/sbt-test/source-dependencies/pipelining-java/build.sbt b/sbt-app/src/sbt-test/source-dependencies/pipelining-java/build.sbt index 220f548384..7c8f199285 100644 --- a/sbt-app/src/sbt-test/source-dependencies/pipelining-java/build.sbt +++ b/sbt-app/src/sbt-test/source-dependencies/pipelining-java/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / usePipelining := true lazy val root = (project in file(".")) diff --git a/sbt-app/src/sbt-test/source-dependencies/pipelining/build.sbt b/sbt-app/src/sbt-test/source-dependencies/pipelining/build.sbt index e35910cc1a..96b5b5a17a 100644 --- a/sbt-app/src/sbt-test/source-dependencies/pipelining/build.sbt +++ b/sbt-app/src/sbt-test/source-dependencies/pipelining/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / usePipelining := true lazy val root = (project in file(".")) diff --git a/sbt-app/src/sbt-test/tests/hedgehog/build.sbt b/sbt-app/src/sbt-test/tests/hedgehog/build.sbt index 61ed9f03c9..dc0a0b0ede 100644 --- a/sbt-app/src/sbt-test/tests/hedgehog/build.sbt +++ b/sbt-app/src/sbt-test/tests/hedgehog/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" val hedgehogVersion = "0.10.0" diff --git a/sbt-app/src/sbt-test/tests/scalatest/build.sbt b/sbt-app/src/sbt-test/tests/scalatest/build.sbt index 44d5653a0e..8ec076ab9c 100644 --- a/sbt-app/src/sbt-test/tests/scalatest/build.sbt +++ b/sbt-app/src/sbt-test/tests/scalatest/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" ThisBuild / version := "0.1.0-SNAPSHOT" ThisBuild / organization := "com.example" ThisBuild / organizationName := "example" diff --git a/sbt-app/src/sbt-test/tests/weaver-cats/build.sbt b/sbt-app/src/sbt-test/tests/weaver-cats/build.sbt index 12ded730ae..eb9ab64ca1 100644 --- a/sbt-app/src/sbt-test/tests/weaver-cats/build.sbt +++ b/sbt-app/src/sbt-test/tests/weaver-cats/build.sbt @@ -1,3 +1,3 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" libraryDependencies += "com.disneystreaming" %% "weaver-cats" % "0.8.3" % Test diff --git a/sbt-app/src/sbt-test/tests/zio-test/build.sbt b/sbt-app/src/sbt-test/tests/zio-test/build.sbt index 31c84bf498..60996aead5 100644 --- a/sbt-app/src/sbt-test/tests/zio-test/build.sbt +++ b/sbt-app/src/sbt-test/tests/zio-test/build.sbt @@ -1,4 +1,4 @@ -ThisBuild / scalaVersion := "2.13.11" +ThisBuild / scalaVersion := "2.13.12" libraryDependencies += "dev.zio" %% "zio-test" % "2.0.2" % Test libraryDependencies += "dev.zio" %% "zio-test-sbt" % "2.0.2" % Test diff --git a/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala b/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala index 31e5584867..a154739013 100644 --- a/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala +++ b/zinc-lm-integration/src/main/scala/sbt/internal/inc/ZincLmUtil.scala @@ -15,8 +15,10 @@ import sbt.librarymanagement.{ DependencyResolution, ModuleID, ScalaArtifacts, + SemanticSelector, UnresolvedWarningConfiguration, - UpdateConfiguration + UpdateConfiguration, + VersionNumber, } import sbt.librarymanagement.syntax._ import xsbti.ArtifactInfo.SbtOrganization @@ -25,6 +27,8 @@ import xsbti.compile.{ ClasspathOptions, ScalaInstance => XScalaInstance } object ZincLmUtil { + final val scala2SbtBridgeStart = "2.13.12" + /** * Instantiate a Scala compiler that is instrumented to analyze dependencies. * This Scala compiler is useful to create your own instance of incremental @@ -86,6 +90,11 @@ object ZincLmUtil { if (ScalaArtifacts.isScala3(scalaVersion)) { ModuleID(ScalaArtifacts.Organization, "scala3-sbt-bridge", scalaVersion) .withConfigurations(Some(Compile.name)) + } else if (VersionNumber(scalaVersion).matchesSemVer( + SemanticSelector(s"=2.13 >=$scala2SbtBridgeStart") + )) { + ModuleID(ScalaArtifacts.Organization, "scala2-sbt-bridge", scalaVersion) + .withConfigurations(Some(Compile.name)) } else { val compilerBridgeId = scalaVersion match { case sc if sc startsWith "2.10." => "compiler-bridge_2.10" From 47344d264d430519cc325df44e10686e4bc6047b Mon Sep 17 00:00:00 2001 From: Matthew de Detrich Date: Wed, 13 Sep 2023 22:34:41 +0200 Subject: [PATCH 07/11] Remove invalid test --- .github/workflows/ci.yml | 1 - .../src/test/scala/xsbt/IPCSpec.scala | 23 ------------------- 2 files changed, 24 deletions(-) delete mode 100644 main-command/src/test/scala/xsbt/IPCSpec.scala diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6fddebb64..acbf5bf733 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -186,7 +186,6 @@ jobs: shell: bash run: | # test building sbtn on Windows - sbt "commandProj/testOnly xsbt.IPCSpec" sbt "-Dsbt.io.virtual=false" nativeImage # test launcher script echo build using JDK 8, test using JDK 8, on Windows diff --git a/main-command/src/test/scala/xsbt/IPCSpec.scala b/main-command/src/test/scala/xsbt/IPCSpec.scala deleted file mode 100644 index dfeb1dc4ff..0000000000 --- a/main-command/src/test/scala/xsbt/IPCSpec.scala +++ /dev/null @@ -1,23 +0,0 @@ -/* - * sbt - * Copyright 2011 - 2018, Lightbend, Inc. - * Copyright 2008 - 2010, Mark Harrah - * Licensed under Apache License 2.0 (see LICENSE) - */ - -package xsbt - -import org.scalatest.flatspec.AnyFlatSpec -import org.scalatest.matchers.should.Matchers._ - -class IPCSpec extends AnyFlatSpec { - "server" should "allow same number of connections as determined in socket backlog" in { - noException should be thrownBy { - val server = IPC.unmanagedServer - (1 until IPC.socketBacklog + 1).foreach { _ => - IPC.client(server.port)(identity) - } - server.close() - } - } -} From c551c0fbcd477f85852a64f9ed012c961297be43 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 13 Sep 2023 22:54:46 -0400 Subject: [PATCH 08/11] Zinc 1.9.4 --- .github/workflows/ci.yml | 7 +++---- project/Dependencies.scala | 6 +++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index acbf5bf733..3c4913f7c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,6 @@ jobs: JAVA_OPTS: -Xms800M -Xmx2G -Xss6M -XX:ReservedCodeCacheSize=128M -server -Dsbt.io.virtual=false -Dfile.encoding=UTF-8 JVM_OPTS: -Xms800M -Xmx2G -Xss6M -XX:ReservedCodeCacheSize=128M -server -Dsbt.io.virtual=false -Dfile.encoding=UTF-8 SCALA_212: 2.12.18 - SCALA_213: 2.13.11 SCALA_3: 3.1.0 UTIL_TESTS: "utilCache/test utilControl/test utilInterface/test utilLogging/test utilPosition/test utilRelation/test utilScripted/test utilTracking/test" SBT_LOCAL: false @@ -120,7 +119,7 @@ jobs: ./sbt -v --client "serverTestProj/test" ./sbt -v --client doc ./sbt -v --client "all $UTIL_TESTS" - ./sbt -v --client ++$SCALA_213 + ./sbt -v --client ++2.13.x ./sbt -v --client "all $UTIL_TESTS" - name: Build and test (2) if: ${{ matrix.jobtype == 2 }} @@ -141,7 +140,7 @@ jobs: if: ${{ matrix.jobtype == 5 }} shell: bash run: | - ./sbt -v "++$SCALA_213!; test; ++$SCALA_3!; all utilControl/test utilRelation/test utilPosition/test" + ./sbt -v "++2.13.x; all utilControl/test utilRelation/test utilPosition/test; ++$SCALA_3!; all utilControl/test utilRelation/test utilPosition/test" - name: Build and test (6) if: ${{ matrix.jobtype == 6 }} shell: bash @@ -153,7 +152,7 @@ jobs: cd ../ sbt -Dsbtlm.path=$HOME/work/sbt/sbt/librarymanagement -Dsbtzinc.path=$HOME/work/sbt/sbt/zinc -Dsbt.build.version=$BUILD_VERSION -Dsbt.build.fatal=false "+lowerUtils/publishLocal; {librarymanagement}/publishLocal; {zinc}/publishLocal; upperModules/publishLocal" rm -r $(find $HOME/.sbt/boot -name "*-SNAPSHOT") || true - sbt -v -Dsbt.version=$BUILD_VERSION "++$SCALA_213; all $UTIL_TESTS; ++$SCALA_212; all $UTIL_TESTS; scripted actions/* source-dependencies/*1of3 dependency-management/*1of4 java/*" + sbt -v -Dsbt.version=$BUILD_VERSION "++2.13.x; all $UTIL_TESTS; ++$SCALA_212; all $UTIL_TESTS; scripted actions/* source-dependencies/*1of3 dependency-management/*1of4 java/*" - name: Build and test (7) if: ${{ matrix.jobtype == 7 }} shell: bash diff --git a/project/Dependencies.scala b/project/Dependencies.scala index 18af509553..b152ebfebe 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -5,7 +5,7 @@ import sbt.contraband.ContrabandPlugin.autoImport._ object Dependencies { // WARNING: Please Scala update versions in PluginCross.scala too val scala212 = "2.12.18" - val scala213 = "2.13.11" + val scala213 = "2.13.12" val checkPluginCross = settingKey[Unit]("Make sure scalaVersion match up") val baseScalaVersion = scala212 def nightlyVersion: Option[String] = @@ -14,8 +14,8 @@ object Dependencies { // sbt modules private val ioVersion = nightlyVersion.getOrElse("1.9.1") private val lmVersion = - sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("1.9.2") - val zincVersion = nightlyVersion.getOrElse("1.9.3") + sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("1.9.3") + val zincVersion = nightlyVersion.getOrElse("1.9.4") private val sbtIO = "org.scala-sbt" %% "io" % ioVersion From c532d7e69f05b05ef15ecd328ceec36b0d107466 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Thu, 14 Sep 2023 00:56:37 -0400 Subject: [PATCH 09/11] sbt 1.9.5 --- build.sbt | 2 +- sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 9cd3bcaefe..21dc04ef2f 100644 --- a/build.sbt +++ b/build.sbt @@ -11,7 +11,7 @@ import scala.util.Try // ThisBuild settings take lower precedence, // but can be shared across the multi projects. ThisBuild / version := { - val v = "1.9.5-SNAPSHOT" + val v = "1.9.6-SNAPSHOT" nightlyVersion.getOrElse(v) } ThisBuild / version2_13 := "2.0.0-SNAPSHOT" diff --git a/sbt b/sbt index 994c5e68fa..ccffe917e1 100755 --- a/sbt +++ b/sbt @@ -1,7 +1,7 @@ #!/usr/bin/env bash set +e -declare builtin_sbt_version="1.9.4" +declare builtin_sbt_version="1.9.5" declare -a residual_args declare -a java_args declare -a scalac_args From 4701bf767716758088f72ce44d388e33104af9d3 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 15 Sep 2023 10:35:54 -0400 Subject: [PATCH 10/11] Zinc 1.9.5 --- project/Dependencies.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/Dependencies.scala b/project/Dependencies.scala index b152ebfebe..a9cfdfbcab 100644 --- a/project/Dependencies.scala +++ b/project/Dependencies.scala @@ -15,7 +15,7 @@ object Dependencies { private val ioVersion = nightlyVersion.getOrElse("1.9.1") private val lmVersion = sys.props.get("sbt.build.lm.version").orElse(nightlyVersion).getOrElse("1.9.3") - val zincVersion = nightlyVersion.getOrElse("1.9.4") + val zincVersion = nightlyVersion.getOrElse("1.9.5") private val sbtIO = "org.scala-sbt" %% "io" % ioVersion From ef8652f93a06bdf24435ec2dd459a7055adab1db Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 15 Sep 2023 11:57:17 -0400 Subject: [PATCH 11/11] sbt 1.9.6 --- build.sbt | 2 +- sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 21dc04ef2f..1199e135bc 100644 --- a/build.sbt +++ b/build.sbt @@ -11,7 +11,7 @@ import scala.util.Try // ThisBuild settings take lower precedence, // but can be shared across the multi projects. ThisBuild / version := { - val v = "1.9.6-SNAPSHOT" + val v = "1.9.7-SNAPSHOT" nightlyVersion.getOrElse(v) } ThisBuild / version2_13 := "2.0.0-SNAPSHOT" diff --git a/sbt b/sbt index ccffe917e1..01bdeb220d 100755 --- a/sbt +++ b/sbt @@ -1,7 +1,7 @@ #!/usr/bin/env bash set +e -declare builtin_sbt_version="1.9.5" +declare builtin_sbt_version="1.9.6" declare -a residual_args declare -a java_args declare -a scalac_args