Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge from lihaoyi/mill #2

Merged
merged 96 commits into from
Mar 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
c738534
bump Ammonite version
lihaoyi Nov 18, 2018
3cc21b2
update-readme
lihaoyi Nov 19, 2018
2206994
Add Gitlab to VersionControl (#489)
leonardehrenfried Dec 7, 2018
5f77755
Added info about skipped mill server in `-i` cmdline option
lefou Dec 10, 2018
1996790
bump ammonite version
lihaoyi Dec 11, 2018
fbc49ea
fix tests
lihaoyi Dec 11, 2018
d0e1b57
Added note about experimental Evaluator commands
lefou Dec 12, 2018
ea7fceb
First pass at splitting out worker-api from mill core. (#504)
lihaoyi Dec 12, 2018
9ba4cb6
collapse boilerplate folder structure within src/ folders (#505)
lihaoyi Dec 13, 2018
33fa0c8
Bump Mill Scala version to 2.12.8 (#507)
lihaoyi-databricks Dec 13, 2018
d2dbfbf
Added doc to version target
lefou Dec 14, 2018
2935287
Fixed plugin usage docs for mill-osgi
lefou Dec 14, 2018
9cbcfa9
Discover - break overridesRoutes into fixed size chunks (#509)
kongo2002 Dec 15, 2018
ea36ea3
fix GenIdea to create required folders (#510)
dohrayme Dec 15, 2018
de175e6
Generalize Zinc Worker (#514)
lihaoyi Dec 19, 2018
b44fe27
bump zinc 1.2.1 -> 1.2.5
lihaoyi Dec 19, 2018
497f044
Merge branch 'master' into bump-zinc
lihaoyi Dec 19, 2018
2752dcf
bump Ammonite version
lihaoyi Dec 19, 2018
056cd88
Avoid unnecessary dependency downloading by providing fetches per cac…
gehnaphore Dec 20, 2018
eececd6
Fixed typo and added class link
lefou Dec 20, 2018
350a9a6
Added some docs to result type
lefou Dec 20, 2018
9fdf875
Detailed the difference between Failure and Exception
lefou Dec 20, 2018
868ac2f
Updated changelog
lefou Dec 21, 2018
54bb990
Introduced new failFast parameter to Evaluator with default `true`
lefou Dec 19, 2018
0cea8f6
Added cmdline option -k/--keep-going
lefou Dec 20, 2018
5eb4dca
Also added failFast test cases
lefou Dec 20, 2018
54b797c
Added changelog entry
lefou Dec 21, 2018
eb497a8
adding support for customizable constructor annotations, codec and "i…
Jan 4, 2019
4506537
Allow usage of ZincWorkerImpl without hashing files (#525)
lihaoyi-databricks Jan 10, 2019
fc005ca
Update ZincWorkerImpl.scala
lihaoyi Jan 10, 2019
12a2d08
More improvements to ZincWorkerImpl (#526)
lihaoyi-databricks Jan 11, 2019
738be72
Fixed GenIdea library path to use file:// if it is not a jar file (ot…
robby-phd Jan 14, 2019
1afeead
Fixed #511.
robby-phd Jan 16, 2019
b3efd5a
0.3.6
lihaoyi Jan 17, 2019
eed2be0
PublishModule: add --gpgKeyName flag (#530)
lxohi Jan 22, 2019
e97af00
Update readme.md
lihaoyi Jan 22, 2019
83ac3f9
Update readme.md
lihaoyi Jan 22, 2019
f6b0553
Added compiler-classpath properties to generated IntelliJ xml files (…
Jan 31, 2019
82331f1
Also export compileIvyDeps as provided scope
lefou Feb 7, 2019
dd0878d
Updated Changelog
lefou Feb 7, 2019
939965f
Fixed typo
mgenereu Feb 10, 2019
c21737f
Fixed typo
lefou Feb 10, 2019
6717415
Corrected Java example: sources -> allSources
lefou Feb 11, 2019
b9de3ec
Only hold weak references to classloaders in internal cache
lefou Feb 11, 2019
c29b678
Properly strip scaladoc end tags
lefou Feb 11, 2019
fc18309
Create a Play! module to compile the router
ggrossetie Jun 28, 2018
7dba8cb
Load/convert instances from classloader
ggrossetie Aug 31, 2018
dfa29d5
Keep twirllib module
ggrossetie Sep 3, 2018
ad5667c
Add playlib (we do not want to replace twirllib)
ggrossetie Sep 3, 2018
b095094
rebase on master
jeantil Feb 6, 2019
3fe65a9
Reworks the toplevel playlib module
jeantil Feb 11, 2019
0c879ca
Adds the api submodule
jeantil Feb 11, 2019
dfff4e0
Adds the specialized workers
jeantil Feb 11, 2019
529a5de
Updates the test of the play lib module
jeantil Feb 11, 2019
4d3fc08
Adjusts the main build file to match the new playlib module design
jeantil Feb 11, 2019
1afcfca
Documentation section for the Play! module
jeantil Feb 11, 2019
316fab2
switch to T.sources for the routesFiles setting
jeantil Feb 13, 2019
15ef8e7
update scaladoc to leverage list markers
jeantil Feb 14, 2019
b553dfc
better aligns RouterModule with mill's naming conventions
jeantil Feb 14, 2019
d1071b7
Added mill-jbake plugin
lefou Feb 17, 2019
f37b763
Also add main-api to build library paths
lefou Feb 11, 2019
306df49
Added log statement to BuildInfo generator
lefou Feb 18, 2019
3b07c2c
Moved BuildInfo into package mill.contrib.buildinfo
lefou Feb 18, 2019
90d29e5
Added proper imports to contrib module code snippets
lefou Feb 18, 2019
258523a
Version bump to more recent JBake version
lefou Feb 19, 2019
cbe9271
Documented some mill.api classes
lefou Feb 19, 2019
a9543ea
Splitted IO.scala to avoid cyclic references
lefou Feb 19, 2019
f7e75d0
Added mill-integrationtest plugin
lefou Feb 21, 2019
d306956
Search tests annotations also on inherited public methods
lefou Feb 22, 2019
032b763
Add FreeBSD installation instructions (#559)
0mp Feb 23, 2019
684f2b7
Fixed incorrect comment
lefou Feb 23, 2019
477a296
Added fixme
lefou Feb 24, 2019
d1d9d5f
Added support for typelevel scala libraries
lefou Feb 11, 2019
b19b5a4
Reviewed exitCode handling
lefou Feb 25, 2019
e94e732
Introduced JavaModule.docOptions to add extra (Java)Doc procesing opt…
lefou Feb 25, 2019
d1f1b6b
Renamed JavaModule.docOptions to javadocOptions
lefou Feb 26, 2019
66f31c8
Adds individual modules to configure mill to playframework's defaults
jeantil Feb 15, 2019
e480953
Tightens visibility of the internal workers
jeantil Feb 15, 2019
d721e56
Integrate Router module and add a trait to configure it for play
jeantil Feb 15, 2019
dc0a9d7
Cleanup useless play version mappings
jeantil Feb 15, 2019
0abad7b
Add trait to configure twirl integration for playframework
jeantil Feb 15, 2019
1b2e42c
Play modules : api only, full play and mono module project.
jeantil Feb 15, 2019
9da9053
Adds tests for the PlayModule and SingleModule
jeantil Feb 15, 2019
f8e0ef7
Adds test for PlayApi single module
jeantil Feb 22, 2019
d4dc4fa
Documents play module usage
jeantil Feb 25, 2019
dca05d7
fixes route compiler worker selector key
jeantil Feb 25, 2019
2cac5a3
Provides additionnal dependency keys for easier configuration
jeantil Feb 25, 2019
f5458e2
Reworks version specific keys and extraction
jeantil Feb 26, 2019
c448bd3
add static assets including WebJars
ajrnz Mar 2, 2019
3387177
Extracts static asset and webjar handling to a specific trait
jeantil Mar 2, 2019
2780582
Relaxes the visibility on the Twil trait.
jeantil Mar 3, 2019
981c4e1
Update ZincWorkerImpl.scala
molikto Mar 8, 2019
ff07ba9
Fixed some formatting issues in markdown files
lefou Mar 11, 2019
ef0537c
Add section to documentation about ivy classifiers
nvander1 Mar 2, 2019
d0ec907
Added changes to the MillClientMain to make it only use workers running
Mar 12, 2019
289f9e3
Properly respect JAVA_HOME env var
lefou Mar 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .appveyor.yml
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,15 @@ build_script:
cmd /C C:\mill\out\release\dest\mill.bat -i all main.test scalajslib.test)
- if [%COMPILER%]==[msys2] (
SET "PATH=%JAVA_HOME%\bin;C:\%MSYS2_DIR%\%MSYSTEM%\bin;C:\%MSYS2_DIR%\usr\bin;%PATH%" &&
C:\%MSYS2_DIR%\usr\bin\bash -lc 'os.makeDir.all -p /usr/local/bin' &&
C:\%MSYS2_DIR%\usr\bin\bash -lc 'mkdir -p /usr/local/bin' &&
C:\%MSYS2_DIR%\usr\bin\bash -lc "curl -Lo /usr/local/bin/mill %MILL_URL%" &&
C:\%MSYS2_DIR%\usr\bin\bash -lc 'chmod +x /usr/local/bin/mill' &&
C:\%MSYS2_DIR%\usr\bin\bash -lc "cd /c/mill && mill -i dev.assembly" &&
RD /S /Q %USERPROFILE%\.mill &&
C:\%MSYS2_DIR%\usr\bin\bash -lc "cd /c/mill && out/dev/assembly/dest/mill.bat -i all main.test scalajslib.test")
- if [%COMPILER%]==[cygwin] (
SET "PATH=%JAVA_HOME%\bin;C:\%CYGWIN_DIR%\bin;C:\%CYGWIN_DIR%\usr\bin;%PATH%" &&
C:\%CYGWIN_DIR%\bin\bash -lc 'os.makeDir.all -p /usr/local/bin' &&
C:\%CYGWIN_DIR%\bin\bash -lc 'mkdir -p /usr/local/bin' &&
C:\%CYGWIN_DIR%\bin\bash -lc "curl -Lo /usr/local/bin/mill %MILL_URL%" &&
C:\%CYGWIN_DIR%\bin\bash -lc 'sed -i '"'"'0,/-cp "\$0"/{s/-cp "\$0"/-cp `cygpath -w "\$0"`/}; 0,/-cp "\$0"/{s/-cp "\$0"/-cp `cygpath -w "\$0"`/}'"'"' /usr/local/bin/mill' &&
C:\%CYGWIN_DIR%\bin\bash -lc 'chmod +x /usr/local/bin/mill' &&
Expand Down
110 changes: 83 additions & 27 deletions build.sc
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import mill._
import mill.scalalib._
import publish._
import mill.modules.Jvm.createAssembly
import upickle.Js
trait MillPublishModule extends PublishModule{

def artifactName = "mill-" + super.artifactName()
Expand All @@ -27,15 +26,16 @@ trait MillPublishModule extends PublishModule{

def javacOptions = Seq("-source", "1.8", "-target", "1.8")
}

trait MillModule extends MillPublishModule with ScalaModule{ outer =>
def scalaVersion = T{ "2.12.6" }
trait MillApiModule extends MillPublishModule with ScalaModule{
def scalaVersion = T{ "2.12.8" }
def compileIvyDeps = Agg(ivy"com.lihaoyi::acyclic:0.1.7")
def scalacOptions = Seq("-P:acyclic:force")
def scalacPluginIvyDeps = Agg(ivy"com.lihaoyi::acyclic:0.1.7")
def repositories = super.repositories ++ Seq(
MavenRepository("https://oss.sonatype.org/content/repositories/releases")
)
}
trait MillModule extends MillApiModule{ outer =>
def scalacPluginClasspath =
super.scalacPluginClasspath() ++ Seq(main.moduledefs.jar())

Expand Down Expand Up @@ -78,17 +78,22 @@ object main extends MillModule {
Seq(PathRef(shared.generateCoreTestSources(T.ctx().dest)))
}
}

object api extends MillApiModule{
def ivyDeps = Agg(
ivy"com.lihaoyi::os-lib:0.2.6",
ivy"com.lihaoyi::upickle:0.7.1",
)
}
object core extends MillModule {
def moduleDeps = Seq(moduledefs)
def moduleDeps = Seq(moduledefs, api)

def compileIvyDeps = Agg(
ivy"org.scala-lang:scala-reflect:${scalaVersion()}"
)

def ivyDeps = Agg(
// Keep synchronized with ammonite in Versions.scala
ivy"com.lihaoyi:::ammonite:1.4.2",
ivy"com.lihaoyi:::ammonite:1.6.0",
// Necessary so we can share the JNA classes throughout the build process
ivy"net.java.dev.jna:jna:4.5.0",
ivy"net.java.dev.jna:jna-platform:4.5.0"
Expand All @@ -100,7 +105,7 @@ object main extends MillModule {
}

object moduledefs extends MillPublishModule with ScalaModule{
def scalaVersion = T{ "2.12.6" }
def scalaVersion = T{ "2.12.8" }
def ivyDeps = Agg(
ivy"org.scala-lang:scala-compiler:${scalaVersion()}",
ivy"com.lihaoyi::sourcecode:0.1.4",
Expand Down Expand Up @@ -135,7 +140,7 @@ object main extends MillModule {


object scalalib extends MillModule {
def moduleDeps = Seq(main)
def moduleDeps = Seq(main, scalalib.api)

def ivyDeps = Agg(
ivy"org.scala-sbt:test-interface:1.0"
Expand Down Expand Up @@ -173,23 +178,27 @@ object scalalib extends MillModule {
)
}
}
object worker extends MillModule{
def moduleDeps = Seq(main, scalalib)
object api extends MillApiModule{
def moduleDeps = Seq(main.api)
}
object worker extends MillApiModule{

def moduleDeps = Seq(scalalib.api)

def ivyDeps = Agg(
// Keep synchronized with zinc in Versions.scala
ivy"org.scala-sbt::zinc:1.2.1"
ivy"org.scala-sbt::zinc:1.3.0-M1"
)
def testArgs = Seq(
def testArgs = T{Seq(
"-DMILL_SCALA_WORKER=" + runClasspath().map(_.path).mkString(",")
)
)}
}
}


object scalajslib extends MillModule {

def moduleDeps = Seq(scalalib)
def moduleDeps = Seq(scalalib, scalajslib.api)

def testArgs = T{
val mapping = Map(
Expand All @@ -202,9 +211,12 @@ object scalajslib extends MillModule {
(for((k, v) <- mapping.toSeq) yield s"-D$k=$v")
}

object api extends MillApiModule{
def moduleDeps = Seq(main.core)
}
object worker extends Cross[WorkerModule]("0.6", "1.0")
class WorkerModule(scalajsBinary: String) extends MillModule{
def moduleDeps = Seq(scalajslib)
class WorkerModule(scalajsBinary: String) extends MillApiModule{
def moduleDeps = Seq(scalajslib.api)
def ivyDeps = scalajsBinary match {
case "0.6" =>
Agg(
Expand Down Expand Up @@ -233,6 +245,41 @@ object contrib extends MillModule {

object twirllib extends MillModule {
def moduleDeps = Seq(scalalib)
}

object playlib extends MillModule {
def moduleDeps = Seq(scalalib, twirllib, playlib.api)

def testArgs = T {
val mapping = Map(
"MILL_CONTRIB_PLAYLIB_ROUTECOMPILER_WORKER_2_6" -> worker("2.6").compile().classes.path,
"MILL_CONTRIB_PLAYLIB_ROUTECOMPILER_WORKER_2_7" -> worker("2.7").compile().classes.path
)

scalalib.worker.testArgs() ++
scalalib.backgroundwrapper.testArgs() ++
(for ((k, v) <- mapping.toSeq) yield s"-D$k=$v")
}

object api extends MillApiModule {
def moduleDeps = Seq(scalalib)
}
object worker extends Cross[WorkerModule]( "2.6", "2.7")

class WorkerModule(scalajsBinary: String) extends MillApiModule {
def moduleDeps = Seq(playlib.api)

def ivyDeps = scalajsBinary match {
case "2.6"=>
Agg(
ivy"com.typesafe.play::routes-compiler::2.6.0"
)
case "2.7" =>
Agg(
ivy"com.typesafe.play::routes-compiler::2.7.0"
)
}
}

}

Expand All @@ -258,7 +305,7 @@ object contrib extends MillModule {


object scalanativelib extends MillModule {
def moduleDeps = Seq(scalalib)
def moduleDeps = Seq(scalalib, scalanativelib.api)

def scalacOptions = Seq[String]() // disable -P:acyclic:force

Expand All @@ -274,11 +321,13 @@ object scalanativelib extends MillModule {
scalalib.backgroundwrapper.testArgs() ++
(for((k, v) <- mapping.toSeq) yield s"-D$k=$v")
}

object api extends MillApiModule{
def moduleDeps = Seq(main.core)
}
object worker extends Cross[WorkerModule]("0.3")
class WorkerModule(scalaNativeBinary: String) extends MillModule {
class WorkerModule(scalaNativeBinary: String) extends MillApiModule {
def scalaNativeVersion = T{ "0.3.8" }
def moduleDeps = Seq(scalanativelib)
def moduleDeps = Seq(scalanativelib.api)
def ivyDeps = scalaNativeBinary match {
case "0.3" =>
Agg(
Expand Down Expand Up @@ -338,9 +387,14 @@ def launcherScript(shellJvmArgs: Seq[String],
shellCommands = {
val jvmArgsStr = shellJvmArgs.mkString(" ")
def java(mainClass: String) =
s"""exec java $jvmArgsStr $$JAVA_OPTS -cp "${shellClassPath.mkString(":")}" $mainClass "$$@""""

s"""case "$$1" in
s"""exec $$JAVACMD $jvmArgsStr $$JAVA_OPTS -cp "${shellClassPath.mkString(":")}" $mainClass "$$@""""

s"""if [ -z "$$JAVA_HOME" ] ; then
| JAVACMD="java"
|else
| JAVACMD="$$JAVA_HOME/bin/java"
|fi
|case "$$1" in
| -i | --interactive )
| ${java("mill.MillMain")}
| ;;
Expand All @@ -352,9 +406,11 @@ def launcherScript(shellJvmArgs: Seq[String],
cmdCommands = {
val jvmArgsStr = cmdJvmArgs.mkString(" ")
def java(mainClass: String) =
s"""java $jvmArgsStr %JAVA_OPTS% -cp "${cmdClassPath.mkString(";")}" $mainClass %*"""
s""""%JAVACMD%" $jvmArgsStr %JAVA_OPTS% -cp "${cmdClassPath.mkString(";")}" $mainClass %*"""

s"""if "%1" == "-i" set _I_=true
s"""set "JAVACMD=java.exe"
|if not "%JAVA_HOME%"=="" set "JAVACMD=%JAVA_HOME%\\bin\\java.exe"
|if "%1" == "-i" set _I_=true
|if "%1" == "--interactive" set _I_=true
|if defined _I_ (
| ${java("mill.MillMain")}
Expand Down Expand Up @@ -521,7 +577,7 @@ def uploadToGithub(authKey: String) = T.command{
scalaj.http.Http("https://api.github.com/repos/lihaoyi/mill/releases")
.postData(
ujson.write(
Js.Obj(
ujson.Js.Obj(
"tag_name" -> releaseTag,
"name" -> releaseTag
)
Expand Down
6 changes: 3 additions & 3 deletions ci/shared.sc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def generateTarget(dir: Path) = {
val parameters = lowercases.zip(uppercases).map { case (lower, upper) => s"$lower: TT[$upper]" }.mkString(", ")
val body = uppercases.zipWithIndex.map { case (t, i) => s"args[$t]($i)" }.mkString(", ")

s"def zip[$typeArgs]($parameters) = makeT[($typeArgs)](Seq($zipArgs), (args: mill.util.Ctx) => ($body))"
s"def zip[$typeArgs]($parameters) = makeT[($typeArgs)](Seq($zipArgs), (args: mill.api.Ctx) => ($body))"
}

write(
Expand All @@ -50,7 +50,7 @@ def generateTarget(dir: Path) = {
|import scala.language.higherKinds
|trait TargetGenerated {
| type TT[+X]
| def makeT[X](inputs: Seq[TT[_]], evaluate: mill.util.Ctx => mill.eval.Result[X]): TT[X]
| def makeT[X](inputs: Seq[TT[_]], evaluate: mill.api.Ctx => mill.api.Result[X]): TT[X]
| ${(3 to 22).map(generate).mkString("\n")}
|}""".stripMargin
)
Expand All @@ -74,7 +74,7 @@ def generateEval(dir: Path) = {
s"""package mill.main
|import mill.eval.Evaluator
|import mill.define.Task
|import mill.util.Strict.Agg
|import mill.api.Strict.Agg
|class EvalGenerated(evaluator: Evaluator) {
| type TT[+X] = Task[X]
| ${(1 to 22).map(generate).mkString("\n")}
Expand Down
2 changes: 1 addition & 1 deletion ci/test-mill-0.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ set -eux
git clean -xdf

# Run tests
mill -i all {main,scalalib,scalajslib,contrib.twirllib,main.client,contrib.scalapblib}.test
mill -i all {main,scalalib,scalajslib,contrib.twirllib,contrib.playlib,main.client,contrib.scalapblib}.test
2 changes: 1 addition & 1 deletion ci/test-mill-bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ git clean -xdf
rm -rf ~/.mill

# Use second build to run tests using Mill
~/mill-2 -i all {main,scalalib,scalajslib,contrib.twirllib,contrib.scalapblib}.test
~/mill-2 -i all {main,scalalib,scalajslib,contrib.twirllib,contrib.playlib,contrib.scalapblib}.test
47 changes: 47 additions & 0 deletions contrib/buildinfo/src/BuildInfo.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package mill.contrib.buildinfo

import mill.T
import mill.define.Target
import mill.api.{Ctx, Logger, PathRef}
import mill.scalalib.ScalaModule

trait BuildInfo extends ScalaModule {

def buildInfoPackageName: Option[String] = None

def buildInfoObjectName: String = "BuildInfo"

def buildInfoMembers: T[Map[String, String]] = T {
Map.empty[String, String]
}

private def generateBuildInfo(members: Map[String, Any])(implicit dest: Ctx.Dest, log: Ctx.Log): Seq[PathRef] =
if (!members.isEmpty) {
val outputFile = dest.dest / "BuildInfo.scala"
val internalMembers =
members
.map {
case (name, value) => s""" def ${name} = "${value}""""
}
.mkString("\n")
log.log.debug(s"Generating object [${buildInfoPackageName.map(_ + ".").getOrElse("")}${buildInfoObjectName}] with [${members.size}] members to [${outputFile}]")
os.write(
outputFile,
s"""|${buildInfoPackageName.map(p => s"package ${p}").getOrElse("")}
|object ${buildInfoObjectName} {
|$internalMembers
|}""".stripMargin
)
Seq(PathRef(outputFile))
} else {
log.log.debug("No build info member defined, skipping code generation")
Seq.empty[PathRef]
}

def buildInfo = T {
generateBuildInfo(buildInfoMembers())
}

override def generatedSources: Target[Seq[PathRef]] = T { super.generatedSources() ++ buildInfo() }

}
4 changes: 4 additions & 0 deletions contrib/buildinfo/src/deprecated.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package mill.contrib

@deprecated("Moved to package mill.contrib.buildinfo", "0.3.7")
trait BuildInfo extends mill.contrib.buildinfo.BuildInfo
44 changes: 0 additions & 44 deletions contrib/buildinfo/src/mill/contrib/BuildInfo.scala

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package mill.contrib
package mill.contrib.buildinfo

import java.util.jar.JarFile
import mill._
import mill.define.Target
import mill.eval.Result._
import mill.api.Result._
import mill.eval.{Evaluator, Result}
import mill.modules.Assembly
import mill.scalalib.publish.VersionControl
Expand Down
Loading