From ffc2f8c35d454e988c530a843a508df78a03a62c Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Fri, 28 Nov 2025 22:59:58 -0500 Subject: [PATCH] fix: Fixes managed resources missing from the JAR **Problem** RC-7 is missing the managed resources. **Solution** This triggers managed resources so they get generated. --- main/src/main/scala/sbt/Defaults.scala | 1 + .../nio/intraproject-inputs/{pending => test} | 0 .../a/src/main/scala/A.scala | 3 +++ .../plugins/auto-plugins-minimal/build.sbt | 23 +++++++++++++++++++ .../plugins/auto-plugins-minimal/test | 2 ++ 5 files changed, 29 insertions(+) rename sbt-app/src/sbt-test/nio/intraproject-inputs/{pending => test} (100%) create mode 100644 sbt-app/src/sbt-test/plugins/auto-plugins-minimal/a/src/main/scala/A.scala create mode 100644 sbt-app/src/sbt-test/plugins/auto-plugins-minimal/build.sbt create mode 100644 sbt-app/src/sbt-test/plugins/auto-plugins-minimal/test diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index da087764f..1643412d8 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -4084,6 +4084,7 @@ object Classpaths { val resourceDirs = resourceDirectories.value val vfBackendDir = compileIncremental.value._2 val backendDir = c.toPath(vfBackendDir) + val _ = resources.value backendDir.toFile() :: resourceDirs.toList.filter(_.exists()) } diff --git a/sbt-app/src/sbt-test/nio/intraproject-inputs/pending b/sbt-app/src/sbt-test/nio/intraproject-inputs/test similarity index 100% rename from sbt-app/src/sbt-test/nio/intraproject-inputs/pending rename to sbt-app/src/sbt-test/nio/intraproject-inputs/test diff --git a/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/a/src/main/scala/A.scala b/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/a/src/main/scala/A.scala new file mode 100644 index 000000000..d34ce1390 --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/a/src/main/scala/A.scala @@ -0,0 +1,3 @@ +import sbt.* + +object A extends AutoPlugin diff --git a/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/build.sbt b/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/build.sbt new file mode 100644 index 000000000..36fecfec8 --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/build.sbt @@ -0,0 +1,23 @@ +scalaVersion := "3.7.4" + +organization := "com.example" + +@transient +lazy val check = taskKey[Unit]("extract jar file") + +lazy val a = (project in file("a")) + .enablePlugins(SbtPlugin) + .settings( + name := "a", + check := Def.uncached { + val converter = fileConverter.value + val p = converter.toPath((Compile / packageBin).value) + val outDir = target.value / "extracted" + IO.unzip(p.toFile(), outDir) + val expectedResource = outDir / "sbt" / "sbt.autoplugins" + if !expectedResource.exists() then + sys.error(s"$expectedResource doesn't exist") + val content = IO.read(outDir / "sbt" / "sbt.autoplugins").trim + assert(content == "A", s"expected A, but content was '$content'") + }, + ) diff --git a/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/test b/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/test new file mode 100644 index 000000000..e54329f45 --- /dev/null +++ b/sbt-app/src/sbt-test/plugins/auto-plugins-minimal/test @@ -0,0 +1,2 @@ +> a/packageBin +> a/check