diff --git a/bsp/worker/src/mill/bsp/worker/MillBuildServer.scala b/bsp/worker/src/mill/bsp/worker/MillBuildServer.scala index f0e066aabc7..236308d5062 100644 --- a/bsp/worker/src/mill/bsp/worker/MillBuildServer.scala +++ b/bsp/worker/src/mill/bsp/worker/MillBuildServer.scala @@ -608,7 +608,7 @@ private class MillBuildServer( Strict.Agg(cleanTask), logger = new MillBspLogger(client, cleanTask.hashCode, ev.baseLogger) ) - if (cleanResult.failing.keyCount > 0) ( + if (cleanResult.failing.size > 0) ( msg + s" Target ${compileTargetName} could not be cleaned. See message from mill: \n" + (cleanResult.results(cleanTask) match { case TaskResult(Result.Failure(msg, _), _) => msg diff --git a/core/api/package.mill b/core/api/package.mill new file mode 100644 index 00000000000..9454ac17ce9 --- /dev/null +++ b/core/api/package.mill @@ -0,0 +1,27 @@ +package build.core.api + +import mill.contrib.buildinfo.BuildInfo +import mill._ + +object `package` extends RootModule with build.MillStableScalaModule with BuildInfo { + def moduleDeps = Seq(build.core.client) + def buildInfoPackageName = "mill.api" + def buildInfoMembers = Seq( + BuildInfo.Value("millVersion", build.millVersion(), "Mill version."), + BuildInfo.Value("millDocUrl", build.Settings.docUrl, "Mill documentation url."), + BuildInfo.Value( + "millReportNewIssueUrl", + build.Settings.newIssueUrl, + "URL to create a new issue in Mills issue tracker." + ) + ) + + def ivyDeps = Agg( + build.Deps.osLib, + build.Deps.mainargs, + build.Deps.upickle, + build.Deps.pprint, + build.Deps.fansi, + build.Deps.sbtTestInterface + ) +} diff --git a/core/client/package.mill b/core/client/package.mill new file mode 100644 index 00000000000..07438ced54e --- /dev/null +++ b/core/client/package.mill @@ -0,0 +1,14 @@ +package build.core.client + +import mill._ +import mill.contrib.buildinfo.BuildInfo +import mill.scalalib._ + +object `package` extends RootModule with build.MillPublishJavaModule with BuildInfo { + def buildInfoPackageName = "mill.main.client" + def buildInfoMembers = Seq(BuildInfo.Value("millVersion", build.millVersion(), "Mill version.")) + + object test extends JavaTests with TestModule.Junit4 { + def ivyDeps = Agg(build.Deps.junitInterface, build.Deps.commonsIo) + } +} diff --git a/core/define/package.mill b/core/define/package.mill new file mode 100644 index 00000000000..3182b4b9ab3 --- /dev/null +++ b/core/define/package.mill @@ -0,0 +1,26 @@ +package build.core.define + +import mill._ +import mill.scalalib._ + +object `package` extends RootModule with build.MillStableScalaModule { + def moduleDeps = Seq(build.core.api) + + def compileIvyDeps = Task { + if (scalaVersion().startsWith("3.")) Agg(build.Deps.scalaCompiler(scalaVersion())) + else Agg(build.Deps.scalaReflect(scalaVersion())) + } + + def ivyDeps = Agg( + build.Deps.millModuledefs, + // TODO: somewhere sourcecode is included transitively, + // but we need the latest version to bring the macro improvements. + build.Deps.sourcecode, + // Necessary so we can share the JNA classes throughout the build process + build.Deps.jna, + build.Deps.jnaPlatform, + build.Deps.jarjarabrams, + build.Deps.mainargs, + build.Deps.scalaparse + ) +} diff --git a/core/define/src/mill/define/BaseModule.scala b/core/define/src/mill/define/BaseModule.scala index af1b5bc9db3..7c80876a387 100644 --- a/core/define/src/mill/define/BaseModule.scala +++ b/core/define/src/mill/define/BaseModule.scala @@ -1,7 +1,6 @@ package mill.define import mill.api.PathRef -import mill.internal.Watchable import scala.collection.mutable diff --git a/core/define/src/mill/define/Cross.scala b/core/define/src/mill/define/Cross.scala index 2546d4dd830..966ab9a2f3a 100644 --- a/core/define/src/mill/define/Cross.scala +++ b/core/define/src/mill/define/Cross.scala @@ -1,7 +1,6 @@ package mill.define import mill.api.BuildScriptException -import mill.internal.Lazy import scala.collection.mutable import scala.reflect.ClassTag diff --git a/core/internal/src/mill/internal/Lazy.scala b/core/define/src/mill/define/Lazy.scala similarity index 72% rename from core/internal/src/mill/internal/Lazy.scala rename to core/define/src/mill/define/Lazy.scala index 262a01374bd..20f42fe4850 100644 --- a/core/internal/src/mill/internal/Lazy.scala +++ b/core/define/src/mill/define/Lazy.scala @@ -1,4 +1,4 @@ -package mill.internal +package mill.define class Lazy[T](t: () => T) { lazy val value: T = t() diff --git a/core/internal/src/mill/internal/Watchable.scala b/core/define/src/mill/define/Watchable.scala similarity index 97% rename from core/internal/src/mill/internal/Watchable.scala rename to core/define/src/mill/define/Watchable.scala index 8ba4c2553b5..23c4ffd5121 100644 --- a/core/internal/src/mill/internal/Watchable.scala +++ b/core/define/src/mill/define/Watchable.scala @@ -1,4 +1,4 @@ -package mill.internal +package mill.define import mill.api.internal diff --git a/core/exec/package.mill b/core/exec/package.mill new file mode 100644 index 00000000000..29434f9892e --- /dev/null +++ b/core/exec/package.mill @@ -0,0 +1,7 @@ +package build.core.exec + +import mill._ + +object `package` extends RootModule with build.MillStableScalaModule { + def moduleDeps = Seq(build.core.define, build.core.internal) +} diff --git a/core/exec/src/mill/exec/EvalResults.scala b/core/exec/src/mill/exec/ExecResults.scala similarity index 58% rename from core/exec/src/mill/exec/EvalResults.scala rename to core/exec/src/mill/exec/ExecResults.scala index 6a256164aa8..64a59d5a663 100644 --- a/core/exec/src/mill/exec/EvalResults.scala +++ b/core/exec/src/mill/exec/ExecResults.scala @@ -3,13 +3,11 @@ package mill.exec import mill.api.* import mill.api.Strict.Agg import mill.define.* -import mill.internal.MultiBiMap trait ExecResults { def rawValues: Seq[Result[Val]] def evaluated: Agg[Task[?]] - def transitive: Agg[Task[?]] - def failing: MultiBiMap[Task[?], Result.Failing[Val]] - def results: collection.Map[Task[?], TaskResult[Val]] + def failing: Map[Task[?], Seq[Result.Failing[Val]]] + def results: Map[Task[?], TaskResult[Val]] def values: Seq[Val] = rawValues.collect { case Result.Success(v) => v } } diff --git a/core/exec/src/mill/exec/ExecutionCore.scala b/core/exec/src/mill/exec/ExecutionCore.scala index c2b838cd956..70b34897652 100644 --- a/core/exec/src/mill/exec/ExecutionCore.scala +++ b/core/exec/src/mill/exec/ExecutionCore.scala @@ -250,8 +250,7 @@ private[mill] trait ExecutionCore extends GroupExecution { Strict.Agg.from( finishedOptsMap.values.flatMap(_.toSeq.flatMap(_.newEvaluated)).iterator.distinct ), - plan.transitive, - getFailing(plan.sortedGroups, results), + getFailing(plan.sortedGroups, results).items().map { case (k, v) => (k, v.toSeq) }.toMap, results.map { case (k, v) => (k, v.map(_._1)) } ) } @@ -275,8 +274,7 @@ private[mill] object ExecutionCore { case class Results( rawValues: Seq[Result[Val]], evaluated: Agg[Task[?]], - transitive: Agg[Task[?]], - failing: MultiBiMap[Task[?], Result.Failing[Val]], + failing: Map[Task[?], Seq[Result.Failing[Val]]], results: Map[Task[?], TaskResult[Val]] ) extends ExecResults } diff --git a/core/internal/package.mill b/core/internal/package.mill new file mode 100644 index 00000000000..4d53c90eb4f --- /dev/null +++ b/core/internal/package.mill @@ -0,0 +1,7 @@ +package build.core.internal + +import mill._ + +object `package` extends RootModule with build.MillPublishScalaModule { + def moduleDeps = Seq(build.core.api) +} diff --git a/core/package.mill b/core/package.mill index 75c5174ba97..7000eb933e9 100644 --- a/core/package.mill +++ b/core/package.mill @@ -1,79 +1,8 @@ package build.core // imports import mill._ -import mill.scalalib._ -import mill.contrib.buildinfo.BuildInfo -import mill.T -import mill.define.Cross -import mill.scalalib.api.ZincWorkerUtil object `package` extends RootModule with build.MillStableScalaModule { - def moduleDeps = Seq(define, exec, resolve) - object api extends build.MillStableScalaModule with BuildInfo { - def moduleDeps = Seq(client) - def buildInfoPackageName = "mill.api" - def buildInfoMembers = Seq( - BuildInfo.Value("millVersion", build.millVersion(), "Mill version."), - BuildInfo.Value("millDocUrl", build.Settings.docUrl, "Mill documentation url."), - BuildInfo.Value( - "millReportNewIssueUrl", - build.Settings.newIssueUrl, - "URL to create a new issue in Mills issue tracker." - ) - ) - - def ivyDeps = Agg( - build.Deps.osLib, - build.Deps.mainargs, - build.Deps.upickle, - build.Deps.pprint, - build.Deps.fansi, - build.Deps.sbtTestInterface - ) - } - - object internal extends build.MillPublishScalaModule { - def moduleDeps = Seq(api) - } - object define extends build.MillStableScalaModule { - def moduleDeps = Seq(api, internal) - def compileIvyDeps = Task { - if (ZincWorkerUtil.isScala3(scalaVersion())) Agg(build.Deps.scalaCompiler(scalaVersion())) - else Agg(build.Deps.scalaReflect(scalaVersion())) - } - def ivyDeps = Agg( - build.Deps.millModuledefs, - // TODO: somewhere sourcecode is included transitively, - // but we need the latest version to bring the macro improvements. - build.Deps.sourcecode, - // Necessary so we can share the JNA classes throughout the build process - build.Deps.jna, - build.Deps.jnaPlatform, - build.Deps.jarjarabrams, - build.Deps.mainargs, - build.Deps.scalaparse - ) - } - - object exec extends build.MillStableScalaModule { - def moduleDeps = Seq(define) - } - - object resolve extends build.MillStableScalaModule { - def moduleDeps = Seq(define) - } - - object client extends build.MillPublishJavaModule with BuildInfo { - def buildInfoPackageName = "mill.main.client" - def buildInfoMembers = Seq(BuildInfo.Value("millVersion", build.millVersion(), "Mill version.")) - - object test extends JavaTests with TestModule.Junit4 { - def ivyDeps = Agg(build.Deps.junitInterface, build.Deps.commonsIo) - } - } - - object server extends build.MillPublishScalaModule { - def moduleDeps = Seq(client, api) - } + def moduleDeps = Seq(build.core.define, build.core.exec, build.core.resolve) } diff --git a/core/resolve/package.mill b/core/resolve/package.mill new file mode 100644 index 00000000000..8b140ae1aee --- /dev/null +++ b/core/resolve/package.mill @@ -0,0 +1,7 @@ +package build.core.resolve + +import mill._ + +object `package` extends RootModule with build.MillStableScalaModule { + def moduleDeps = Seq(build.core.define, build.core.internal) +} diff --git a/core/server/package.mill b/core/server/package.mill new file mode 100644 index 00000000000..d81cbea276a --- /dev/null +++ b/core/server/package.mill @@ -0,0 +1,7 @@ +package build.core.server + +import mill._ + +object `package` extends RootModule with build.MillPublishScalaModule { + def moduleDeps = Seq(build.core.client, build.core.api) +} diff --git a/core/src/mill/eval/Evaluator.scala b/core/src/mill/eval/Evaluator.scala index 6bf6ea6736d..a589ec2a368 100644 --- a/core/src/mill/eval/Evaluator.scala +++ b/core/src/mill/eval/Evaluator.scala @@ -14,7 +14,7 @@ import mill.exec.{ ProfileLogger, TaskResult } -import mill.internal.Watchable +import mill.define.Watchable import mill.main.client.OutFiles import mill.main.client.OutFiles.* import mill.resolve.{Resolve, SelectMode} @@ -183,7 +183,7 @@ final case class Evaluator private[mill] ( } val errorStr = Evaluator.formatFailing(evaluated) - evaluated.failing.keyCount match { + evaluated.failing.size match { case 0 => val nameAndJson = for (t <- selectedTargets.toSeq) yield { t match { @@ -206,7 +206,7 @@ private[mill] object Evaluator { class EvalOrThrow(evaluator: Evaluator, exceptionFactory: ExecResults => Throwable) { def apply[T: ClassTag](task: Task[T]): T = evaluator.evaluate(Agg(task)) match { - case r if r.failing.items().nonEmpty => + case r if r.failing.nonEmpty => throw exceptionFactory(r) case r => // Input is a single-item Agg, so we also expect a single-item result @@ -216,7 +216,7 @@ private[mill] object Evaluator { def apply[T: ClassTag](tasks: Seq[Task[T]]): Seq[T] = evaluator.evaluate(tasks) match { - case r if r.failing.items().nonEmpty => + case r if r.failing.nonEmpty => throw exceptionFactory(r) case r => r.values.map(_.value).asInstanceOf[Seq[T]] } @@ -238,7 +238,7 @@ private[mill] object Evaluator { val defaultEnv: Map[String, String] = System.getenv().asScala.toMap def formatFailing(evaluated: ExecResults): String = { - (for ((k, fs) <- evaluated.failing.items()) + (for ((k, fs) <- evaluated.failing) yield { val fss = fs.map { case Result.Failure(t, _) => t diff --git a/idea/src/mill/idea/GenIdeaImpl.scala b/idea/src/mill/idea/GenIdeaImpl.scala index d0d198681bf..81612bf589d 100755 --- a/idea/src/mill/idea/GenIdeaImpl.scala +++ b/idea/src/mill/idea/GenIdeaImpl.scala @@ -238,7 +238,7 @@ case class GenIdeaImpl( val resolvedModules: Seq[ResolvedModule] = { resolveTasks.toSeq.flatMap { case (evaluator, tasks) => evaluator.evaluate(tasks) match { - case r if r.failing.items().nonEmpty => + case r if r.failing.nonEmpty => throw GenIdeaException( s"Failure during resolving modules: ${Evaluator.formatFailing(r)}" ) diff --git a/main/init/test/src/mill/init/InitModuleTests.scala b/main/init/test/src/mill/init/InitModuleTests.scala index 77b7b71cedc..ec71d2f5a32 100644 --- a/main/init/test/src/mill/init/InitModuleTests.scala +++ b/main/init/test/src/mill/init/InitModuleTests.scala @@ -28,7 +28,7 @@ object InitModuleTests extends TestSuite { test("no args") { val results = evaluator.evaluator.evaluate(Agg(initmodule.init(None))) - assert(results.failing.keyCount == 0) + assert(results.failing.size == 0) val Result.Success(Val(value)) = results.rawValues.head: @unchecked val consoleShown = outStream.toString @@ -42,7 +42,7 @@ object InitModuleTests extends TestSuite { test("non existing example") { val nonExistingModuleId = "nonExistingExampleId" val results = evaluator.evaluator.evaluate(Agg(initmodule.init(Some(nonExistingModuleId)))) - assert(results.failing.keyCount == 1) + assert(results.failing.size == 1) assert(errStream.toString.contains(initmodule.moduleNotExistMsg(nonExistingModuleId))) } } diff --git a/main/src/mill/main/MainModule.scala b/main/src/mill/main/MainModule.scala index b45b01a48e5..6a4acb2e4b7 100644 --- a/main/src/mill/main/MainModule.scala +++ b/main/src/mill/main/MainModule.scala @@ -8,7 +8,7 @@ import mill.moduledefs.Scaladoc import mill.resolve.SelectMode.Separated import mill.resolve.SelectMode import mill.util.Util -import mill.internal.Watchable +import mill.define.Watchable import pprint.{Renderer, Tree, Truncated} import java.util.concurrent.LinkedBlockingQueue diff --git a/main/test/src/mill/main/MainModuleTests.scala b/main/test/src/mill/main/MainModuleTests.scala index a7cdeb0f814..d8305368208 100644 --- a/main/test/src/mill/main/MainModuleTests.scala +++ b/main/test/src/mill/main/MainModuleTests.scala @@ -145,7 +145,7 @@ object MainModuleTests extends TestSuite { val res = eval.evaluator.evaluate(Agg(mainModule.inspect(eval.evaluator, "hello"))) val Result.Success(Val(value: String)) = res.rawValues.head: @unchecked assert( - res.failing.keyCount == 0, + res.failing.size == 0, value.startsWith("hello("), value.contains("MainModuleTests.scala:") ) @@ -155,7 +155,7 @@ object MainModuleTests extends TestSuite { eval.evaluator.evaluate(Agg(mainModule.inspect(eval.evaluator, "hello", "hello2"))) val Result.Success(Val(value: String)) = res.rawValues.head: @unchecked assert( - res.failing.keyCount == 0, + res.failing.size == 0, value.startsWith("hello("), value.contains("MainModuleTests.scala:"), value.contains("\n\nhello2(") @@ -213,7 +213,7 @@ object MainModuleTests extends TestSuite { val results = evaluator.evaluator.evaluate(Agg(mainModule.show(evaluator.evaluator, "hello"))) - assert(results.failing.keyCount == 0) + assert(results.failing.size == 0) val Result.Success(Val(value)) = results.rawValues.head: @unchecked @@ -241,7 +241,7 @@ object MainModuleTests extends TestSuite { "hello2" ))) - assert(results.failing.keyCount == 0) + assert(results.failing.size == 0) val Result.Success(Val(value)) = results.rawValues.head: @unchecked @@ -295,7 +295,7 @@ object MainModuleTests extends TestSuite { val results = evaluator.evaluator.evaluate(Agg(mainModule.showNamed(evaluator.evaluator, "hello"))) - assert(results.failing.keyCount == 0) + assert(results.failing.size == 0) val Result.Success(Val(value)) = results.rawValues.head: @unchecked @@ -312,7 +312,7 @@ object MainModuleTests extends TestSuite { "hello2" ))) - assert(results.failing.keyCount == 0) + assert(results.failing.size == 0) val Result.Success(Val(value)) = results.rawValues.head: @unchecked @@ -347,17 +347,17 @@ object MainModuleTests extends TestSuite { test("all") { val r1 = ev.evaluator.evaluate(Agg(cleanModule.all)) - assert(r1.failing.keyCount == 0) + assert(r1.failing.size == 0) checkExists(true)(os.sub / "foo") val r2 = ev.evaluator.evaluate(Agg(cleanModule.clean(ev.evaluator))) - assert(r2.failing.keyCount == 0) + assert(r2.failing.size == 0) checkExists(false)(os.sub / "foo") } test("single-target") { val r1 = ev.evaluator.evaluate(Agg(cleanModule.all)) - assert(r1.failing.keyCount == 0) + assert(r1.failing.size == 0) checkExists(true)( os.sub / "foo/target.json", os.sub / "foo/target.dest/dummy.txt", @@ -366,7 +366,7 @@ object MainModuleTests extends TestSuite { ) val r2 = ev.evaluator.evaluate(Agg(cleanModule.clean(ev.evaluator, "foo.target"))) - assert(r2.failing.keyCount == 0) + assert(r2.failing.size == 0) checkExists(false)( os.sub / "foo/target.log", os.sub / "foo/target.json", @@ -380,7 +380,7 @@ object MainModuleTests extends TestSuite { test("single-module") { val r1 = ev.evaluator.evaluate(Agg(cleanModule.all)) - assert(r1.failing.keyCount == 0) + assert(r1.failing.size == 0) checkExists(true)( os.sub / "foo/target.json", os.sub / "foo/target.dest/dummy.txt", @@ -389,7 +389,7 @@ object MainModuleTests extends TestSuite { ) val r2 = ev.evaluator.evaluate(Agg(cleanModule.clean(ev.evaluator, "bar"))) - assert(r2.failing.keyCount == 0) + assert(r2.failing.size == 0) checkExists(true)( os.sub / "foo/target.json", os.sub / "foo/target.dest/dummy.txt" @@ -408,11 +408,11 @@ object MainModuleTests extends TestSuite { val ev = UnitTester(workerModule, null) val r1 = ev.evaluator.evaluate(Agg(workerModule.all)) - assert(r1.failing.keyCount == 0) + assert(r1.failing.size == 0) assert(workers.size == 5) val r2 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator))) - assert(r2.failing.keyCount == 0) + assert(r2.failing.size == 0) assert(workers.isEmpty) } @@ -422,19 +422,19 @@ object MainModuleTests extends TestSuite { val ev = UnitTester(workerModule, null) val r1 = ev.evaluator.evaluate(Agg(workerModule.all)) - assert(r1.failing.keyCount == 0) + assert(r1.failing.size == 0) assert(workers.size == 5) val r2 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator, "foo.theWorker"))) - assert(r2.failing.keyCount == 0) + assert(r2.failing.size == 0) assert(workers.size == 4) val r3 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator, "bar.theWorker"))) - assert(r3.failing.keyCount == 0) + assert(r3.failing.size == 0) assert(workers.size == 3) val r4 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator, "bazz[1].theWorker"))) - assert(r4.failing.keyCount == 0) + assert(r4.failing.size == 0) assert(workers.size == 2) } @@ -444,25 +444,25 @@ object MainModuleTests extends TestSuite { val ev = UnitTester(workerModule, null) ev.evaluator.evaluate(Agg(workerModule.foo.theWorker)) - .ensuring(_.failing.keyCount == 0) + .ensuring(_.failing.size == 0) assert(workers.size == 1) val originalFooWorker = workers.head ev.evaluator.evaluate(Agg(workerModule.bar.theWorker)) - .ensuring(_.failing.keyCount == 0) + .ensuring(_.failing.size == 0) assert(workers.size == 2) assert(workers.exists(_ eq originalFooWorker)) val originalBarWorker = workers.filter(_ ne originalFooWorker).head ev.evaluator.evaluate(Agg(workerModule.foo.theWorker)) - .ensuring(_.failing.keyCount == 0) + .ensuring(_.failing.size == 0) assert(workers.size == 2) assert(workers.exists(_ eq originalFooWorker)) ev.evaluator.evaluate(Agg(workerModule.bar.theWorker)) - .ensuring(_.failing.keyCount == 0) + .ensuring(_.failing.size == 0) assert(workers.size == 2) assert(workers.exists(_ eq originalBarWorker)) @@ -472,7 +472,7 @@ object MainModuleTests extends TestSuite { os.remove(outDir / "foo/theWorker.json") ev.evaluator.evaluate(Agg(workerModule.foo.theWorker)) - .ensuring(_.failing.keyCount == 0) + .ensuring(_.failing.size == 0) assert(workers.size == 2) assert(!workers.exists(_ eq originalFooWorker)) assert(originalFooWorker.closed) @@ -481,7 +481,7 @@ object MainModuleTests extends TestSuite { os.remove(outDir / "bar/theWorker.json") ev.evaluator.evaluate(Agg(workerModule.bar.theWorker)) - .ensuring(_.failing.keyCount == 0) + .ensuring(_.failing.size == 0) assert(workers.size == 2) assert(!workers.exists(_ eq originalBarWorker)) assert(originalBarWorker.closed) @@ -493,19 +493,19 @@ object MainModuleTests extends TestSuite { val ev = UnitTester(workerModule, null) val r1 = ev.evaluator.evaluate(Agg(workerModule.all)) - assert(r1.failing.keyCount == 0) + assert(r1.failing.size == 0) assert(workers.size == 5) val r2 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator, "foo"))) - assert(r2.failing.keyCount == 0) + assert(r2.failing.size == 0) assert(workers.size == 4) val r3 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator, "bar"))) - assert(r3.failing.keyCount == 0) + assert(r3.failing.size == 0) assert(workers.size == 3) val r4 = ev.evaluator.evaluate(Agg(workerModule.clean(ev.evaluator, "bazz[1]"))) - assert(r4.failing.keyCount == 0) + assert(r4.failing.size == 0) assert(workers.size == 2) } } diff --git a/runner/src/mill/runner/MillBuildBootstrap.scala b/runner/src/mill/runner/MillBuildBootstrap.scala index da2beee8add..393e42c7ce1 100644 --- a/runner/src/mill/runner/MillBuildBootstrap.scala +++ b/runner/src/mill/runner/MillBuildBootstrap.scala @@ -1,7 +1,7 @@ package mill.runner import mill.internal.PrefixLogger -import mill.internal.Watchable +import mill.define.Watchable import mill.main.{BuildInfo, RootModule} import mill.main.client.CodeGenConstants.* import mill.api.{ColorLogger, PathRef, SystemStreams, Val, internal} diff --git a/runner/src/mill/runner/RunnerState.scala b/runner/src/mill/runner/RunnerState.scala index a81d7f0a968..7bb64588272 100644 --- a/runner/src/mill/runner/RunnerState.scala +++ b/runner/src/mill/runner/RunnerState.scala @@ -2,7 +2,7 @@ package mill.runner import mill.api.{PathRef, Val, internal} import mill.define.Segments -import mill.internal.Watchable +import mill.define.Watchable import upickle.default.{ReadWriter, macroRW} import mill.eval.Evaluator import mill.main.RootModule diff --git a/runner/src/mill/runner/Watching.scala b/runner/src/mill/runner/Watching.scala index bdc1d9ce31a..b3c59fd9337 100644 --- a/runner/src/mill/runner/Watching.scala +++ b/runner/src/mill/runner/Watching.scala @@ -1,7 +1,8 @@ package mill.runner import mill.api.internal -import mill.internal.{Colors, Watchable} +import mill.internal.Colors +import mill.define.Watchable import mill.api.SystemStreams import java.io.InputStream diff --git a/scalalib/test/src/mill/scalalib/giter8/Giter8Tests.scala b/scalalib/test/src/mill/scalalib/giter8/Giter8Tests.scala index 38f68cabc08..4edc0d23482 100644 --- a/scalalib/test/src/mill/scalalib/giter8/Giter8Tests.scala +++ b/scalalib/test/src/mill/scalalib/giter8/Giter8Tests.scala @@ -38,7 +38,7 @@ object Giter8Tests extends TestSuite { ) assert( - res.failing.keyCount == 0, + res.failing.size == 0, res.values.size == 1, files.forall(f => os.exists(g8Module.millSourcePath / "hello" / f)) ) diff --git a/testkit/src/mill/testkit/UnitTester.scala b/testkit/src/mill/testkit/UnitTester.scala index bda88f35542..4a5d84d0473 100644 --- a/testkit/src/mill/testkit/UnitTester.scala +++ b/testkit/src/mill/testkit/UnitTester.scala @@ -133,7 +133,7 @@ class UnitTester( ): Either[Result.Failing[?], UnitTester.Result[Seq[?]]] = { val evaluated = evaluator.evaluate(tasks) - if (evaluated.failing.keyCount == 0) { + if (evaluated.failing.isEmpty) { Right( UnitTester.Result( evaluated.rawValues.map(_.asInstanceOf[Result.Success[Val]].value.value), @@ -148,10 +148,8 @@ class UnitTester( } else { Left( evaluated - .failing - .lookupKey(evaluated.failing.keys().next) - .items - .next() + .failing(evaluated.failing.keys.head) + .head .asFailing .get .map(_.value) @@ -170,7 +168,7 @@ class UnitTester( assert( cleaned == expectedRawValues, - res.failing.keyCount == expectedFailCount + res.failing.size == expectedFailCount ) }