From 20e470cbebfb83dee14df0d5aff7ff726db8c4db Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Thu, 11 Sep 2025 11:58:55 +0800 Subject: [PATCH 1/2] . --- core/eval/src/mill/eval/EvaluatorImpl.scala | 26 +++++++-------- .../mill/eval/SelectiveExecutionImpl.scala | 2 +- core/exec/src/mill/exec/CodeSigUtils.scala | 2 +- core/exec/src/mill/exec/Execution.scala | 6 ++-- core/exec/src/mill/exec/ExecutionLogs.scala | 2 +- core/exec/src/mill/exec/GroupExecution.scala | 8 ++--- core/exec/src/mill/exec/PlanImpl.scala | 2 +- core/internal/src/mill/internal/AnsiNav.scala | 4 +-- core/internal/src/mill/internal/Colors.scala | 4 +-- .../src/mill/internal/FileLogger.scala | 2 +- .../src/mill/internal/JsonArrayLogger.scala | 8 ++--- .../internal/LinePrefixOutputStream.scala | 2 +- .../src/mill/internal/MultiLogger.scala | 32 +++++++++---------- .../src/mill/internal/MultiStream.scala | 2 +- .../src/mill/internal/PipeStreams.scala | 2 +- .../src/mill/internal/PrefixLogger.scala | 6 ++-- .../src/mill/internal/PromptLogger.scala | 16 +++++----- .../src/mill/internal/PromptLoggerUtil.scala | 16 +++++----- .../src/mill/internal/ProxyLogger.scala | 6 ++-- .../src/mill/internal/SimpleLogger.scala | 2 +- .../src/mill/internal/SpanningForest.scala | 2 +- core/internal/src/mill/internal/Tarjans.scala | 2 +- core/internal/src/mill/internal/Util.scala | 2 +- core/resolve/src/mill/resolve/ParseArgs.scala | 2 +- core/resolve/src/mill/resolve/Resolve.scala | 28 ++++++++-------- 25 files changed, 93 insertions(+), 93 deletions(-) diff --git a/core/eval/src/mill/eval/EvaluatorImpl.scala b/core/eval/src/mill/eval/EvaluatorImpl.scala index 0611c3a5c1b9..53b1f87dfbbe 100644 --- a/core/eval/src/mill/eval/EvaluatorImpl.scala +++ b/core/eval/src/mill/eval/EvaluatorImpl.scala @@ -21,21 +21,21 @@ import mill.resolve.Resolve * As well as [[evaluate]] which does all of these phases one after another */ -final class EvaluatorImpl private[mill] ( - private[mill] val allowPositionalCommandArgs: Boolean, - private[mill] val selectiveExecution: Boolean = false, - private val execution: Execution +final class EvaluatorImpl ( + val allowPositionalCommandArgs: Boolean, + val selectiveExecution: Boolean = false, + val execution: Execution ) extends Evaluator { - private[mill] def workspace = execution.workspace - private[mill] def baseLogger = execution.baseLogger - private[mill] def outPath = execution.outPath - private[mill] def codeSignatures = execution.codeSignatures - private[mill] def rootModule = execution.rootModule.asInstanceOf[RootModule0] - private[mill] def workerCache = execution.workerCache - private[mill] def env = execution.env - private[mill] def effectiveThreadCount = execution.effectiveThreadCount - override private[mill] def offline: Boolean = execution.offline + def workspace = execution.workspace + def baseLogger = execution.baseLogger + def outPath = execution.outPath + def codeSignatures = execution.codeSignatures + def rootModule = execution.rootModule.asInstanceOf[RootModule0] + def workerCache = execution.workerCache + def env = execution.env + def effectiveThreadCount = execution.effectiveThreadCount + override def offline: Boolean = execution.offline def withBaseLogger(newBaseLogger: Logger): Evaluator = new EvaluatorImpl( allowPositionalCommandArgs, diff --git a/core/eval/src/mill/eval/SelectiveExecutionImpl.scala b/core/eval/src/mill/eval/SelectiveExecutionImpl.scala index 37c13c01c2a4..f45081664c02 100644 --- a/core/eval/src/mill/eval/SelectiveExecutionImpl.scala +++ b/core/eval/src/mill/eval/SelectiveExecutionImpl.scala @@ -9,7 +9,7 @@ import mill.exec.{CodeSigUtils, Execution, PlanImpl} import mill.internal.SpanningForest import mill.internal.SpanningForest.breadthFirst -private[mill] class SelectiveExecutionImpl(evaluator: Evaluator) +class SelectiveExecutionImpl(evaluator: Evaluator) extends mill.api.SelectiveExecution { def computeHashCodeSignatures( diff --git a/core/exec/src/mill/exec/CodeSigUtils.scala b/core/exec/src/mill/exec/CodeSigUtils.scala index fd5de67b77a3..2752bbcf6269 100644 --- a/core/exec/src/mill/exec/CodeSigUtils.scala +++ b/core/exec/src/mill/exec/CodeSigUtils.scala @@ -6,7 +6,7 @@ import mill.api.{Task, Segment} import scala.reflect.NameTransformer.encode import java.lang.reflect.Method -private[mill] object CodeSigUtils { +object CodeSigUtils { def precomputeMethodNamesPerClass(transitiveNamed: Seq[Task.Named[?]]) : (Map[Class[?], IndexedSeq[Class[?]]], Map[Class[?], Map[String, Method]]) = { diff --git a/core/exec/src/mill/exec/Execution.scala b/core/exec/src/mill/exec/Execution.scala index 95f978b6ffa5..dd0788d301b7 100644 --- a/core/exec/src/mill/exec/Execution.scala +++ b/core/exec/src/mill/exec/Execution.scala @@ -13,7 +13,7 @@ import scala.concurrent.* /** * Core logic of evaluating tasks, without any user-facing helper methods */ -private[mill] case class Execution( +case class Execution( baseLogger: Logger, profileLogger: JsonArrayLogger.Profile, workspace: os.Path, @@ -95,7 +95,7 @@ private[mill] case class Execution( } } - private def execute0( + def execute0( goals: Seq[Task[?]], logger: Logger, reporter: Int => Option[ @@ -332,7 +332,7 @@ private[mill] case class Execution( } } -private[mill] object Execution { +object Execution { /** * Format a failed count as a string to be used in status messages. diff --git a/core/exec/src/mill/exec/ExecutionLogs.scala b/core/exec/src/mill/exec/ExecutionLogs.scala index 4a06dc5dc861..f430204d645c 100644 --- a/core/exec/src/mill/exec/ExecutionLogs.scala +++ b/core/exec/src/mill/exec/ExecutionLogs.scala @@ -7,7 +7,7 @@ import mill.internal.SpanningForest import java.util.concurrent.ConcurrentHashMap import scala.jdk.CollectionConverters.EnumerationHasAsScala -private object ExecutionLogs { +object ExecutionLogs { def logDependencyTree( interGroupDeps: Map[Task[?], Seq[Task[?]]], indexToTerminal: Array[Task[?]], diff --git a/core/exec/src/mill/exec/GroupExecution.scala b/core/exec/src/mill/exec/GroupExecution.scala index f32c8d6feed6..fb02b8425a41 100644 --- a/core/exec/src/mill/exec/GroupExecution.scala +++ b/core/exec/src/mill/exec/GroupExecution.scala @@ -265,7 +265,7 @@ trait GroupExecution { } } - private def executeGroup( + def executeGroup( group: Seq[Task[?]], results: Map[Task[?], ExecResult[(Val, Int)]], inputsHash: Int, @@ -376,7 +376,7 @@ trait GroupExecution { // classloader/class is the same or different doesn't matter. def workerCacheHash(inputHash: Int): Int = inputHash + classLoaderIdentityHash - private def handleTaskResult( + def handleTaskResult( v: Val, hashCode: Int, metaPath: os.Path, @@ -436,7 +436,7 @@ trait GroupExecution { (multiLogger, Some(fileLogger)) } - private def loadCachedJson( + def loadCachedJson( logger: Logger, inputsHash: Int, labelled: Task.Named[?], @@ -471,7 +471,7 @@ trait GroupExecution { def getValueHash(v: Val, task: Task[?], inputsHash: Int): Int = { if (task.isInstanceOf[Task.Worker[?]]) inputsHash else v.## } - private def loadUpToDateWorker( + def loadUpToDateWorker( logger: Logger, inputsHash: Int, labelled: Task.Named[?], diff --git a/core/exec/src/mill/exec/PlanImpl.scala b/core/exec/src/mill/exec/PlanImpl.scala index c25284abf07b..4fe495a7daee 100644 --- a/core/exec/src/mill/exec/PlanImpl.scala +++ b/core/exec/src/mill/exec/PlanImpl.scala @@ -4,7 +4,7 @@ import mill.api.{Plan, Task} import mill.api.MultiBiMap import mill.api.TopoSorted -private[mill] object PlanImpl { +object PlanImpl { def plan(goals: Seq[Task[?]]): Plan = { val transitive = PlanImpl.transitiveTasks(goals.toIndexedSeq) val goalSet = goals.toSet diff --git a/core/internal/src/mill/internal/AnsiNav.scala b/core/internal/src/mill/internal/AnsiNav.scala index 0cf7650a672d..34d68d957587 100644 --- a/core/internal/src/mill/internal/AnsiNav.scala +++ b/core/internal/src/mill/internal/AnsiNav.scala @@ -3,7 +3,7 @@ package mill.internal import java.io.Writer // Reference https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 -private[mill] class AnsiNav(output: Writer) { +class AnsiNav(output: Writer) { def control(n: Int, c: Char): Unit = output.write(AnsiNav.control(n, c)) /** @@ -45,7 +45,7 @@ private[mill] class AnsiNav(output: Writer) { def clearLine(n: Int): Unit = output.write(AnsiNav.clearLine(n)) } -private[mill] object AnsiNav { +object AnsiNav { def control(n: Int, c: Char): String = "\u001b[" + n + c def up(n: Int): String = if (n != 0) control(n, 'A') else "" def down(n: Int): String = if (n != 0) control(n, 'B') else "" diff --git a/core/internal/src/mill/internal/Colors.scala b/core/internal/src/mill/internal/Colors.scala index 99c6fed05b42..a18da5d6c5c4 100644 --- a/core/internal/src/mill/internal/Colors.scala +++ b/core/internal/src/mill/internal/Colors.scala @@ -1,7 +1,7 @@ package mill.internal -private[mill] case class Colors(info: fansi.Attrs, warn: fansi.Attrs, error: fansi.Attrs) -private[mill] object Colors { +case class Colors(info: fansi.Attrs, warn: fansi.Attrs, error: fansi.Attrs) +object Colors { object Default extends Colors(fansi.Color.Blue, fansi.Color.Yellow, fansi.Color.Red) object BlackWhite extends Colors(fansi.Attrs.Empty, fansi.Attrs.Empty, fansi.Attrs.Empty) } diff --git a/core/internal/src/mill/internal/FileLogger.scala b/core/internal/src/mill/internal/FileLogger.scala index 9b5d3582b6e2..19506f8ce05b 100644 --- a/core/internal/src/mill/internal/FileLogger.scala +++ b/core/internal/src/mill/internal/FileLogger.scala @@ -5,7 +5,7 @@ import mill.api.BuildCtx import java.io.{OutputStream, PrintStream} import java.nio.file.{Files, StandardOpenOption} -private[mill] class FileLogger( +class FileLogger( file: os.Path, append: Boolean = false ) extends Logger with AutoCloseable { diff --git a/core/internal/src/mill/internal/JsonArrayLogger.scala b/core/internal/src/mill/internal/JsonArrayLogger.scala index 2cc1e78b6f8d..0b06c0360580 100644 --- a/core/internal/src/mill/internal/JsonArrayLogger.scala +++ b/core/internal/src/mill/internal/JsonArrayLogger.scala @@ -4,7 +4,7 @@ import java.io.{BufferedOutputStream, PrintStream} import java.nio.file.{Files, StandardOpenOption} import java.util.concurrent.ArrayBlockingQueue -private[mill] class JsonArrayLogger[T: upickle.Writer](outPath: os.Path, indent: Int) { +class JsonArrayLogger[T: upickle.Writer](outPath: os.Path, indent: Int) { private var used = false @volatile var closed = false @@ -67,9 +67,9 @@ private[mill] class JsonArrayLogger[T: upickle.Writer](outPath: os.Path, indent: } } -private[mill] object JsonArrayLogger { +object JsonArrayLogger { - private[mill] class Profile(outPath: os.Path) + class Profile(outPath: os.Path) extends JsonArrayLogger[Profile.Timing](outPath, indent = 2) { def log( terminal: String, @@ -110,7 +110,7 @@ private[mill] object JsonArrayLogger { } } - private[mill] class ChromeProfile(outPath: os.Path) + class ChromeProfile(outPath: os.Path) extends JsonArrayLogger[ChromeProfile.TraceEvent](outPath, indent = -1) { def logBegin( diff --git a/core/internal/src/mill/internal/LinePrefixOutputStream.scala b/core/internal/src/mill/internal/LinePrefixOutputStream.scala index 6608a76aad47..eb640b52a7aa 100644 --- a/core/internal/src/mill/internal/LinePrefixOutputStream.scala +++ b/core/internal/src/mill/internal/LinePrefixOutputStream.scala @@ -10,7 +10,7 @@ import java.io.{ByteArrayOutputStream, FilterOutputStream, OutputStream} * @param linePrefix The function to provide the prefix. * @param out The underlying output stream. */ -private[mill] class LinePrefixOutputStream( +class LinePrefixOutputStream( linePrefix: String, out: OutputStream, reportPrefix: () => Unit diff --git a/core/internal/src/mill/internal/MultiLogger.scala b/core/internal/src/mill/internal/MultiLogger.scala index dd32727ea62c..285fa1017a58 100644 --- a/core/internal/src/mill/internal/MultiLogger.scala +++ b/core/internal/src/mill/internal/MultiLogger.scala @@ -4,7 +4,7 @@ import mill.api.{Logger, SystemStreams} import java.io.{InputStream, PrintStream} -private[mill] class MultiLogger( +class MultiLogger( val logger1: Logger, val logger2: Logger, val inStream0: InputStream @@ -16,7 +16,7 @@ private[mill] class MultiLogger( inStream0 ) - private[mill] override lazy val unprefixedStreams: SystemStreams = new SystemStreams( + override lazy val unprefixedStreams: SystemStreams = new SystemStreams( new MultiStream(logger1.unprefixedStreams.out, logger2.unprefixedStreams.out), new MultiStream(logger1.unprefixedStreams.err, logger2.unprefixedStreams.err), inStream0 @@ -46,7 +46,7 @@ private[mill] class MultiLogger( logger2.prompt.setPromptDetail(key, s) } - private[mill] override def setPromptLine( + override def setPromptLine( key: Seq[String], keySuffix: String, message: String @@ -55,31 +55,31 @@ private[mill] class MultiLogger( logger2.prompt.setPromptLine(key, keySuffix, message) } - private[mill] override def reportKey(key: Seq[String]): Unit = { + override def reportKey(key: Seq[String]): Unit = { logger1.prompt.reportKey(key) logger2.prompt.reportKey(key) } - private[mill] override def clearPromptStatuses(): Unit = { + override def clearPromptStatuses(): Unit = { logger1.prompt.clearPromptStatuses() logger2.prompt.clearPromptStatuses() } - private[mill] override def removePromptLine(key: Seq[String], message: String): Unit = { + override def removePromptLine(key: Seq[String], message: String): Unit = { logger1.prompt.removePromptLine(key, message) logger2.prompt.removePromptLine(key, message) } - private[mill] override def setPromptHeaderPrefix(s: String): Unit = { + override def setPromptHeaderPrefix(s: String): Unit = { logger1.prompt.setPromptHeaderPrefix(s) logger2.prompt.setPromptHeaderPrefix(s) } - private[mill] override def withPromptPaused[T](t: => T): T = { + override def withPromptPaused[T](t: => T): T = { logger1.prompt.withPromptPaused(logger2.prompt.withPromptPaused(t)) } - private[mill] override def withPromptUnpaused[T](t: => T): T = { + override def withPromptUnpaused[T](t: => T): T = { logger1.prompt.withPromptUnpaused(logger2.prompt.withPromptUnpaused(t)) } @@ -95,22 +95,22 @@ private[mill] class MultiLogger( logger1.prompt.errorColor(logger2.prompt.errorColor(s)) override def colored: Boolean = logger1.prompt.colored || logger2.prompt.colored - override private[mill] def beginChromeProfileEntry(text: String): Unit = { + override def beginChromeProfileEntry(text: String): Unit = { logger1.prompt.beginChromeProfileEntry(text) logger2.prompt.beginChromeProfileEntry(text) } - override private[mill] def endChromeProfileEntry(): Unit = { + override def endChromeProfileEntry(): Unit = { logger1.prompt.endChromeProfileEntry() logger2.prompt.endChromeProfileEntry() } - override private[mill] def logBeginChromeProfileEntry(message: String, nanoTime: Long) = { + override def logBeginChromeProfileEntry(message: String, nanoTime: Long) = { logger1.prompt.logBeginChromeProfileEntry(message, nanoTime) logger2.prompt.logBeginChromeProfileEntry(message, nanoTime) } - override private[mill] def logEndChromeProfileEntry(nanoTime: Long) = { + override def logEndChromeProfileEntry(nanoTime: Long) = { logger1.prompt.logEndChromeProfileEntry(nanoTime) logger2.prompt.logEndChromeProfileEntry(nanoTime) } @@ -120,11 +120,11 @@ private[mill] class MultiLogger( logger2.debug(s) } - private[mill] override def logKey = logger1.logKey ++ logger2.logKey + override def logKey = logger1.logKey ++ logger2.logKey - private[mill] override def message = logger1.message ++ logger2.message + override def message = logger1.message ++ logger2.message - private[mill] override def keySuffix = logger1.keySuffix ++ logger2.keySuffix + override def keySuffix = logger1.keySuffix ++ logger2.keySuffix override def withOutStream(outStream: PrintStream): Logger = { new MultiLogger( diff --git a/core/internal/src/mill/internal/MultiStream.scala b/core/internal/src/mill/internal/MultiStream.scala index 32e6240cca9b..45c13cc9b585 100644 --- a/core/internal/src/mill/internal/MultiStream.scala +++ b/core/internal/src/mill/internal/MultiStream.scala @@ -1,6 +1,6 @@ package mill.internal import java.io.{OutputStream, PrintStream} -private[mill] class MultiStream(stream1: OutputStream, stream2: OutputStream) +class MultiStream(stream1: OutputStream, stream2: OutputStream) extends PrintStream(new OutputStream { def write(b: Int): Unit = { stream1.write(b) diff --git a/core/internal/src/mill/internal/PipeStreams.scala b/core/internal/src/mill/internal/PipeStreams.scala index cf03d37d165a..9719d4ed0894 100644 --- a/core/internal/src/mill/internal/PipeStreams.scala +++ b/core/internal/src/mill/internal/PipeStreams.scala @@ -9,7 +9,7 @@ import java.io.{IOException, InputStream, OutputStream} * somewhat cleaned up as a single object rather than two loose objects you have * to connect together. */ -private[mill] class PipeStreams(val bufferSize: Int = 1024) { pipe => +class PipeStreams(val bufferSize: Int = 1024) { pipe => private var closedByWriter = false @volatile private var closedByReader = false diff --git a/core/internal/src/mill/internal/PrefixLogger.scala b/core/internal/src/mill/internal/PrefixLogger.scala index 98625f923818..3dc28936660f 100644 --- a/core/internal/src/mill/internal/PrefixLogger.scala +++ b/core/internal/src/mill/internal/PrefixLogger.scala @@ -18,7 +18,7 @@ import java.io.PrintStream * * [$parentKeys-$key0] $message */ -private[mill] class PrefixLogger( +class PrefixLogger( val logger0: Logger, key0: Seq[String], override val keySuffix: String = "", @@ -28,7 +28,7 @@ private[mill] class PrefixLogger( // above the output of every command that gets run so we can see who the output belongs to noPrefix: Boolean = false ) extends Logger { - private[mill] override val logKey = logger0.logKey ++ key0 + override val logKey = logger0.logKey ++ key0 assert(key0.forall(_.nonEmpty)) val linePrefix: String = @@ -50,7 +50,7 @@ private[mill] class PrefixLogger( logger0.streams.in ) - private[mill] override val unprefixedStreams = new SystemStreams( + override val unprefixedStreams = new SystemStreams( logger0.unprefixedStreams.out, logger0.unprefixedStreams.err, logger0.unprefixedStreams.in diff --git a/core/internal/src/mill/internal/PromptLogger.scala b/core/internal/src/mill/internal/PromptLogger.scala index 8040837460e3..76c92876ef6e 100644 --- a/core/internal/src/mill/internal/PromptLogger.scala +++ b/core/internal/src/mill/internal/PromptLogger.scala @@ -16,7 +16,7 @@ import java.io.* * [[streams]] are *not* synchronized, and instead goes into a [[PipeStreams]] * buffer to be read out and handled asynchronously. */ -private[mill] class PromptLogger( +class PromptLogger( colored: Boolean, enableTicker: Boolean, infoColor: fansi.Attrs, @@ -107,15 +107,15 @@ private[mill] class PromptLogger( object prompt extends Logger.Prompt { - private[mill] def beginChromeProfileEntry(text: String): Unit = { + def beginChromeProfileEntry(text: String): Unit = { logBeginChromeProfileEntry(text, System.nanoTime()) } - private[mill] def endChromeProfileEntry(): Unit = { + def endChromeProfileEntry(): Unit = { logEndChromeProfileEntry(System.nanoTime()) } - override private[mill] def logBeginChromeProfileEntry(message: String, nanoTime: Long) = { + override def logBeginChromeProfileEntry(message: String, nanoTime: Long) = { chromeProfileLogger.logBegin( message, "job", @@ -124,7 +124,7 @@ private[mill] class PromptLogger( ) } - override private[mill] def logEndChromeProfileEntry(nanoTime: Long) = { + override def logEndChromeProfileEntry(nanoTime: Long) = { chromeProfileLogger.logEnd( nanoTime / 1000, threadNumberer.getThreadId(Thread.currentThread()) @@ -176,10 +176,10 @@ private[mill] class PromptLogger( seenIdentifiers(key) = (keySuffix, message) } - private[mill] override def withPromptPaused[T](t: => T): T = + override def withPromptPaused[T](t: => T): T = runningState.withPromptPaused0(true, t) - private[mill] override def withPromptUnpaused[T](t: => T): T = + override def withPromptUnpaused[T](t: => T): T = runningState.withPromptPaused0(false, t) def enableTicker = PromptLogger.this.enableTicker @@ -221,7 +221,7 @@ private[mill] class PromptLogger( def streams = streamManager.proxySystemStreams } -private[mill] object PromptLogger { +object PromptLogger { /** * Manages the paused/unpaused/stopped state of the prompt logger. Encapsulate in a separate diff --git a/core/internal/src/mill/internal/PromptLoggerUtil.scala b/core/internal/src/mill/internal/PromptLoggerUtil.scala index 993d53453877..e4c703dec91d 100644 --- a/core/internal/src/mill/internal/PromptLoggerUtil.scala +++ b/core/internal/src/mill/internal/PromptLoggerUtil.scala @@ -5,15 +5,15 @@ import scala.annotation.switch private object PromptLoggerUtil { - private[mill] val defaultTermWidth = 99 - private[mill] val defaultTermHeight = 25 + val defaultTermWidth = 99 + val defaultTermHeight = 25 /** * How often to update the multiline status prompt on the terminal. * Too frequent is bad because it causes a lot of visual noise, * but too infrequent results in latency. 10 times per second seems reasonable */ - private[mill] val promptUpdateIntervalMillis = 100 + val promptUpdateIntervalMillis = 100 /** * How often to update the multiline status prompt in non-interactive scenarios, @@ -23,7 +23,7 @@ private object PromptLoggerUtil { * the logs, but we still want to print it occasionally so people can debug stuck * background or CI jobs and see what tasks it is running when stuck */ - private[mill] val nonInteractivePromptUpdateIntervalMillis = 60000 + val nonInteractivePromptUpdateIntervalMillis = 60000 /** * Add some extra latency delay to the process of removing an entry from the status @@ -41,14 +41,14 @@ private object PromptLoggerUtil { */ val statusRemovalRemoveDelayMillis = 2000 - private[mill] case class StatusEntry(text: String, startTimeMillis: Long, detail: String = "") + case class StatusEntry(text: String, startTimeMillis: Long, detail: String = "") /** * Represents a line in the prompt. Stores up to two separate [[StatusEntry]]s, because * we want to buffer up status transitions to debounce them. Which status entry is currently * shown depends on the [[beginTransitionTime]] and other heuristics */ - private[mill] case class Status( + case class Status( next: Option[StatusEntry], beginTransitionTime: Long, prev: Option[StatusEntry] @@ -59,7 +59,7 @@ private object PromptLoggerUtil { * and down via `\n` to have a "fresh" line. This only should get called to clear the prompt, so * the cursor is already at the left-most column, which '\n' will not change. */ - private[mill] val clearScreenToEndBytes: Array[Byte] = + val clearScreenToEndBytes: Array[Byte] = (AnsiNav.clearScreen(0) + AnsiNav.up(1) + "\n").getBytes def spaceNonEmpty(s: String) = if (s.isEmpty) "" else s" $s" @@ -207,7 +207,7 @@ private object PromptLoggerUtil { ??? } - private[mill] val seqStringOrdering = new Ordering[Seq[String]] { + val seqStringOrdering = new Ordering[Seq[String]] { def compare(xs: Seq[String], ys: Seq[String]): Int = { val iter = xs.iterator.zip(ys) while (iter.nonEmpty) { diff --git a/core/internal/src/mill/internal/ProxyLogger.scala b/core/internal/src/mill/internal/ProxyLogger.scala index 8337f34b966a..01e5203e51ab 100644 --- a/core/internal/src/mill/internal/ProxyLogger.scala +++ b/core/internal/src/mill/internal/ProxyLogger.scala @@ -6,7 +6,7 @@ import mill.api.{Logger, SystemStreams} * A Logger that forwards all logging to another Logger. Intended to be * used as a base class for wrappers that modify logging behavior. */ -private[mill] class ProxyLogger(logger: Logger) extends Logger { +class ProxyLogger(logger: Logger) extends Logger { override def toString: String = s"ProxyLogger($logger)" lazy val streams = logger.streams @@ -19,6 +19,6 @@ private[mill] class ProxyLogger(logger: Logger) extends Logger { def prompt = logger.prompt - private[mill] override def logKey: Seq[String] = logger.logKey - private[mill] override def unprefixedStreams: SystemStreams = logger.unprefixedStreams + override def logKey: Seq[String] = logger.logKey + override def unprefixedStreams: SystemStreams = logger.unprefixedStreams } diff --git a/core/internal/src/mill/internal/SimpleLogger.scala b/core/internal/src/mill/internal/SimpleLogger.scala index f6da51b5fb20..3a3d3ad21fca 100644 --- a/core/internal/src/mill/internal/SimpleLogger.scala +++ b/core/internal/src/mill/internal/SimpleLogger.scala @@ -4,7 +4,7 @@ import mill.api.{SystemStreams, Logger} import java.io.PrintStream -private[mill] class SimpleLogger( +class SimpleLogger( override val unprefixedStreams: SystemStreams, override val logKey: Seq[String], debugEnabled: Boolean diff --git a/core/internal/src/mill/internal/SpanningForest.scala b/core/internal/src/mill/internal/SpanningForest.scala index 602961f4766e..3bdc8c67a046 100644 --- a/core/internal/src/mill/internal/SpanningForest.scala +++ b/core/internal/src/mill/internal/SpanningForest.scala @@ -12,7 +12,7 @@ import scala.collection.mutable * Returns the forest as a [[Node]] structure with the top-level node containing * the roots of the forest */ -private[mill] object SpanningForest { +object SpanningForest { def graphMapToIndices[T]( vertices: Iterable[T], diff --git a/core/internal/src/mill/internal/Tarjans.scala b/core/internal/src/mill/internal/Tarjans.scala index 4d43685d8008..8bbc4a95648d 100644 --- a/core/internal/src/mill/internal/Tarjans.scala +++ b/core/internal/src/mill/internal/Tarjans.scala @@ -4,7 +4,7 @@ import scala.collection.mutable // Adapted from // https://github.com/indy256/codelibrary/blob/c52247216258e84aac442a23273b7d8306ef757b/java/src/SCCTarjan.java -private[mill] object Tarjans { +object Tarjans { def apply(graph: IndexedSeq[Array[Int]]): Array[Array[Int]] = { val n = graph.length val visited = new Array[Boolean](n) diff --git a/core/internal/src/mill/internal/Util.scala b/core/internal/src/mill/internal/Util.scala index 13edb91e4dff..5f2bd86ad26c 100644 --- a/core/internal/src/mill/internal/Util.scala +++ b/core/internal/src/mill/internal/Util.scala @@ -2,7 +2,7 @@ package mill.internal import scala.reflect.NameTransformer.encode -private[mill] object Util { +object Util { val alphaKeywords: Set[String] = Set( "abstract", diff --git a/core/resolve/src/mill/resolve/ParseArgs.scala b/core/resolve/src/mill/resolve/ParseArgs.scala index 208a6a0c1ab0..347dd3873821 100644 --- a/core/resolve/src/mill/resolve/ParseArgs.scala +++ b/core/resolve/src/mill/resolve/ParseArgs.scala @@ -7,7 +7,7 @@ import mill.api.{Segment, Segments, SelectMode} import scala.annotation.tailrec -private[mill] object ParseArgs { +object ParseArgs { type TasksWithParams = (Seq[(Option[Segments], Option[Segments])], Seq[String]) diff --git a/core/resolve/src/mill/resolve/Resolve.scala b/core/resolve/src/mill/resolve/Resolve.scala index e29a9262f59c..ccec790c1cbd 100644 --- a/core/resolve/src/mill/resolve/Resolve.scala +++ b/core/resolve/src/mill/resolve/Resolve.scala @@ -14,9 +14,9 @@ import mill.api.{ import mill.api.Result import mill.resolve.ResolveCore.makeResultException -private[mill] object Resolve { +object Resolve { object Segments extends Resolve[Segments] { - private[mill] def handleResolved( + def handleResolved( rootModule: RootModule0, resolved: Seq[Resolved], args: Seq[String], @@ -29,11 +29,11 @@ private[mill] object Resolve { Result.Success(resolved.map(_.segments)) } - private[mill] override def deduplicate(items: List[Segments]): List[Segments] = items.distinct + override def deduplicate(items: List[Segments]): List[Segments] = items.distinct } object Raw extends Resolve[Resolved] { - private[mill] def handleResolved( + def handleResolved( rootModule: RootModule0, resolved: Seq[Resolved], args: Seq[String], @@ -46,11 +46,11 @@ private[mill] object Resolve { Result.Success(resolved) } - private[mill] override def deduplicate(items: List[Resolved]): List[Resolved] = items.distinct + override def deduplicate(items: List[Resolved]): List[Resolved] = items.distinct } object Inspect extends Resolve[Either[Module, Task.Named[Any]]] { - private[mill] def handleResolved( + def handleResolved( rootModule: RootModule0, resolved: Seq[Resolved], args: Seq[String], @@ -145,7 +145,7 @@ private[mill] object Resolve { } } - private[mill] def handleResolved( + def handleResolved( rootModule: RootModule0, resolved: Seq[Resolved], args: Seq[String], @@ -173,7 +173,7 @@ private[mill] object Resolve { ) } - private[mill] override def deduplicate(items: List[Task.Named[Any]]): List[Task.Named[Any]] = + override def deduplicate(items: List[Task.Named[Any]]): List[Task.Named[Any]] = items.distinctBy(_.ctx.segments) } @@ -288,8 +288,8 @@ private[mill] object Resolve { } } -private[mill] trait Resolve[T] { - private[mill] def handleResolved( +trait Resolve[T] { + def handleResolved( rootModule: RootModule0, resolved: Seq[Resolved], args: Seq[String], @@ -310,7 +310,7 @@ private[mill] trait Resolve[T] { resolve0(rootModule, scriptArgs, selectMode, allowPositionalCommandArgs, resolveToModuleTasks) } - private[mill] def resolve0( + def resolve0( rootModule: RootModule0, scriptArgs: Seq[String], selectMode: SelectMode, @@ -342,7 +342,7 @@ private[mill] trait Resolve[T] { resolvedGroups.map(_.flatten.toList).map(deduplicate) } - private[mill] def resolveNonEmptyAndHandle( + def resolveNonEmptyAndHandle( args: Seq[String], rootModule: RootModule0, sel: Segments, @@ -398,9 +398,9 @@ private[mill] trait Resolve[T] { } } - private[mill] def deduplicate(items: List[T]): List[T] = items + def deduplicate(items: List[T]): List[T] = items - private[mill] def resolveRootModule( + def resolveRootModule( rootModule: RootModule0, scopedSel: Option[Segments] ): Result[RootModule0] = { From 627288eba802df58b11b0ce498b229f24d8ae793 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 11 Sep 2025 04:07:42 +0000 Subject: [PATCH 2/2] [autofix.ci] apply automated fixes --- core/eval/src/mill/eval/EvaluatorImpl.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/eval/src/mill/eval/EvaluatorImpl.scala b/core/eval/src/mill/eval/EvaluatorImpl.scala index 53b1f87dfbbe..317538676663 100644 --- a/core/eval/src/mill/eval/EvaluatorImpl.scala +++ b/core/eval/src/mill/eval/EvaluatorImpl.scala @@ -21,10 +21,10 @@ import mill.resolve.Resolve * As well as [[evaluate]] which does all of these phases one after another */ -final class EvaluatorImpl ( +final class EvaluatorImpl( val allowPositionalCommandArgs: Boolean, val selectiveExecution: Boolean = false, - val execution: Execution + val execution: Execution ) extends Evaluator { def workspace = execution.workspace