From 3a9e1ec725a33ca6265732b2f3577757a0cb999b Mon Sep 17 00:00:00 2001 From: Satoshi Dev <162055292+0xsatoshi99@users.noreply.github.com> Date: Mon, 12 Jan 2026 19:44:49 -0800 Subject: [PATCH] [2.x] fix: Fix pipelining flags applied to unsupported Scala versions (#8499) Scala 2.x has supported pipelining since 2020. The fix now allows: - All Scala 2.x versions (pipelining supported) - Scala 3.5.0+ (pipelining added in 3.5) Generated-by: AI-assisted --- main/src/main/scala/sbt/Defaults.scala | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 5e3809fee..e98de6f8c 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1016,15 +1016,17 @@ object Defaults extends BuildCommon { }, scalacOptions := { val old = scalacOptions.value - if (exportPipelining.value) - Def.uncached( - Vector( - "-Ypickle-java", - "-Ypickle-write", - earlyOutput.value.toString - ) ++ old + if (exportPipelining.value) { + val sv = scalaVersion.value + val shouldApplyFlags = !ScalaArtifacts.isScala3(sv) || VersionNumber(sv).matchesSemVer( + SemanticSelector(">=3.5.0") ) - else Def.uncached(old) + if (shouldApplyFlags) + Def.uncached( + Vector("-Ypickle-java", "-Ypickle-write", earlyOutput.value.toString) ++ old + ) + else Def.uncached(old) + } else Def.uncached(old) }, scalacOptions := { val old = scalacOptions.value