summaryrefslogtreecommitdiff
path: root/core/src/main/scala
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-01-12 20:34:14 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-01-12 20:34:14 -0800
commitbb77d771809d380e6d498a01dd647ce69c061a52 (patch)
treea7db8bd24018e2f0f16e27e3bfea3dd218076bf6 /core/src/main/scala
parent9cca64627d31f078c565c6865a50ae558f567d8f (diff)
downloadmill-bb77d771809d380e6d498a01dd647ce69c061a52.tar.gz
mill-bb77d771809d380e6d498a01dd647ce69c061a52.tar.bz2
mill-bb77d771809d380e6d498a01dd647ce69c061a52.zip
Add some doccomments
Diffstat (limited to 'core/src/main/scala')
-rw-r--r--core/src/main/scala/mill/define/Cross.scala10
-rw-r--r--core/src/main/scala/mill/define/Module.scala9
-rw-r--r--core/src/main/scala/mill/define/Task.scala7
3 files changed, 26 insertions, 0 deletions
diff --git a/core/src/main/scala/mill/define/Cross.scala b/core/src/main/scala/mill/define/Cross.scala
index 2dd4d2fe..e7d0d843 100644
--- a/core/src/main/scala/mill/define/Cross.scala
+++ b/core/src/main/scala/mill/define/Cross.scala
@@ -32,6 +32,16 @@ object Cross{
}
}
+/**
+ * Models "cross-builds": sets of duplicate builds which differ only in the
+ * value of one or more "case" variables whose values are determined at runtime.
+ * Used via:
+ *
+ * object foo extends Cross[FooModule]("bar", "baz", "qux")
+ * class FooModule(v: String) extends Module{
+ * ...
+ * }
+ */
class Cross[T](cases: Any*)
(implicit ci: Cross.Factory[T],
val ctx: Module.Ctx){
diff --git a/core/src/main/scala/mill/define/Module.scala b/core/src/main/scala/mill/define/Module.scala
index db1d511a..c9240fa0 100644
--- a/core/src/main/scala/mill/define/Module.scala
+++ b/core/src/main/scala/mill/define/Module.scala
@@ -12,6 +12,15 @@ object Segment{
}
case class BasePath(value: Path)
+
+/**
+ * Models a path with the Mill build hierarchy, e.g.
+ *
+ * amm.util[2.11].test.compile
+ *
+ * .-separated segments are [[Segment.Label]]s, while []-delimited
+ * segments are [[Segment.Cross]]s
+ */
case class Segments(value: Segment*){
def ++(other: Seq[Segment]): Segments = Segments(value ++ other:_*)
def ++(other: Segments): Segments = Segments(value ++ other.value:_*)
diff --git a/core/src/main/scala/mill/define/Task.scala b/core/src/main/scala/mill/define/Task.scala
index aa4d838a..eac64cd5 100644
--- a/core/src/main/scala/mill/define/Task.scala
+++ b/core/src/main/scala/mill/define/Task.scala
@@ -8,6 +8,13 @@ import upickle.default.{ReadWriter => RW, Reader => R, Writer => W}
import scala.language.experimental.macros
import scala.reflect.macros.blackbox.Context
+/**
+ * Models a single node in the Mill build graph, with a list of inputs and a
+ * single output of type [[T]].
+ *
+ * Generally not instantiated manually, but instead constructed via the
+ * [[Target.apply]] & similar macros.
+ */
abstract class Task[+T] extends Task.Ops[T] with Applyable[Task, T]{
/**
* What other Targets does this Target depend on?