Skip to content

Commit 8ce13e2

Browse files
lihaoyilefou
authored andcommitted
Tweaks to .mill file codegen (com-lihaoyi#4815)
Small adjustments to bring them into line with vanilla `.scala` file semantics, and other cleanups, backported from com-lihaoyi#4745
1 parent 4b66c1d commit 8ce13e2

File tree

44 files changed

+92
-140
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+92
-140
lines changed

ci/mill-bootstrap.patch

+44-42
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
diff --git a/.github/workflows/autofix.yml b/.github/workflows/autofix.yml
2-
index ce356a24ebc..ab1cfeb53d2 100644
2+
index fff08f9d91e..4b869becf2c 100644
33
--- a/.github/workflows/autofix.yml
44
+++ b/.github/workflows/autofix.yml
5-
@@ -8,7 +8,6 @@ jobs:
6-
- uses: actions/checkout@v4
7-
5+
@@ -10,7 +10,6 @@ jobs:
6+
- uses: sbt/setup-sbt@v1
7+
88
- run: |
99
- ./mill __.fix + mill.javalib.palantirformat.PalantirFormatModule/ + mill.scalalib.scalafmt.ScalafmtModule/ + mill.kotlinlib.ktlint.KtlintModule/
1010
- ./mill --meta-level 1 mill.scalalib.scalafmt.ScalafmtModule/
1111
+ ./mill __.fix + mill.javalib.palantirformat.PalantirFormatModule/ + mill.scalalib.scalafmt.ScalafmtModule/scalafmt + mill.kotlinlib.ktlint.KtlintModule/
12-
12+
1313
- uses: autofix-ci/action@551dded8c6cc8a1054039c8bc0b8b48c51dfc6ef
1414
\ No newline at end of file
1515
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
16-
index 117431e4498..2c34746853a 100644
16+
index a09996c74d3..a04788e4f40 100644
1717
--- a/.github/workflows/run-tests.yml
1818
+++ b/.github/workflows/run-tests.yml
19-
@@ -261,5 +261,4 @@ jobs:
19+
@@ -301,5 +301,4 @@ jobs:
2020
java-version: '17'
2121
buildcmd: |
2222
set -eux
2323
- ./mill -i mill.scalalib.scalafmt.ScalafmtModule/checkFormatAll + __.mimaReportBinaryIssues + __.fix --check + mill.javalib.palantirformat.PalantirFormatModule/ --check + mill.kotlinlib.ktlint.KtlintModule/checkFormatAll
2424
- ./mill -i --meta-level 1 mill.scalalib.scalafmt.ScalafmtModule/checkFormatAll
2525
+ ./mill -i mill.scalalib.scalafmt.ScalafmtModule/scalafmt --check + __.mimaReportBinaryIssues + __.fix --check + mill.javalib.palantirformat.PalantirFormatModule/ --check + mill.kotlinlib.ktlint.KtlintModule/checkFormatAll
2626
diff --git a/build.mill b/build.mill
27-
index 92bfb2c2f8f..9854c30dac1 100644
27+
index 64b8f5e0ce9..1b7cb02d029 100644
2828
--- a/build.mill
2929
+++ b/build.mill
3030
@@ -1,16 +1,16 @@
@@ -48,7 +48,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
4848
import mill.T
4949
import mill.define.Cross
5050

51-
@@ -290,19 +290,19 @@ object Deps {
51+
@@ -292,19 +292,19 @@ object Deps {
5252
}
5353

5454
def millVersion: T[String] = Task.Input {
@@ -72,7 +72,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
7272
}
7373

7474
def millDownloadPrefix = Task {
75-
@@ -321,7 +321,7 @@ def millBinPlatform: T[String] = Task {
75+
@@ -323,7 +323,7 @@ def millBinPlatform: T[String] = Task {
7676
}
7777
}
7878

@@ -81,7 +81,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
8181

8282
def millJvmVersion = Task.Source(Task.workspace / ".mill-jvm-version")
8383

84-
@@ -471,7 +471,7 @@ trait MillPublishJavaModule extends MillJavaModule with PublishModule {
84+
@@ -473,7 +473,7 @@ trait MillPublishJavaModule extends MillJavaModule with PublishModule {
8585
/**
8686
* Some custom scala settings and test convenience
8787
*/
@@ -90,7 +90,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
9090
def scalaVersion = Deps.scalaVersion
9191
def scalapVersion: T[String] = Deps.scala2Version
9292
def scalafixScalaBinaryVersion = T {
93-
@@ -528,8 +528,8 @@ trait MillScalaModule extends ScalaModule with MillJavaModule with ScalafixModul
93+
@@ -530,8 +530,8 @@ trait MillScalaModule extends ScalaModule with MillJavaModule with ScalafixModul
9494
val binaryVersion = ZincWorkerUtil.scalaBinaryVersion(sv)
9595
val hasModuleDefs = binaryVersion == "2.13" || binaryVersion == "3"
9696
super.scalacPluginIvyDeps() ++
@@ -101,7 +101,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
101101
}
102102

103103
def mandatoryIvyDeps = T {
104-
@@ -537,13 +537,13 @@ trait MillScalaModule extends ScalaModule with MillJavaModule with ScalafixModul
104+
@@ -539,13 +539,13 @@ trait MillScalaModule extends ScalaModule with MillJavaModule with ScalafixModul
105105
val binaryVersion = ZincWorkerUtil.scalaBinaryVersion(sv)
106106
val hasModuleDefs = binaryVersion == "2.13" || binaryVersion == "3"
107107
super.mandatoryIvyDeps() ++
@@ -117,7 +117,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
117117
def scalafixConfig = T { Some(T.workspace / ".scalafix.conf") }
118118
def forkArgs = super.forkArgs() ++ outer.testArgs()
119119
def moduleDeps = outer.testModuleDeps
120-
@@ -583,7 +583,8 @@ trait MillBaseTestsModule extends TestModule {
120+
@@ -586,7 +586,8 @@ trait MillBaseTestsModule extends TestModule {
121121
trait MillPublishScalaModule extends MillScalaModule with MillPublishJavaModule
122122

123123
/** Publishable module which contains strictly handled API. */
@@ -127,7 +127,7 @@ index 92bfb2c2f8f..9854c30dac1 100644
127127
import com.github.lolgab.mill.mima._
128128
override def mimaBinaryIssueFilters: T[Seq[ProblemFilter]] = Seq(
129129
// (5x) MIMA doesn't properly ignore things which are nested inside other private things
130-
@@ -713,7 +714,7 @@ trait MillStableScalaModule extends MillPublishScalaModule with Mima {
130+
@@ -716,7 +717,7 @@ trait MillStableScalaModule extends MillPublishScalaModule with Mima {
131131
def skipPreviousVersions: T[Seq[String]] = T {
132132
T.log.info("Skipping mima for previous versions (!!1000s of errors due to Scala 3)")
133133
mimaPreviousVersions() // T(Seq.empty[String])
@@ -136,9 +136,9 @@ index 92bfb2c2f8f..9854c30dac1 100644
136136
}
137137

138138
trait MillPublishCrossScalaModule extends MillPublishJavaModule with CrossScalaModule
139-
@@ -746,10 +747,10 @@ trait BridgeModule extends MillPublishCrossScalaModule {
139+
@@ -749,10 +750,10 @@ trait BridgeModule extends MillPublishCrossScalaModule {
140140
)
141-
141+
142142
def compilerBridgeSourceJars: T[Agg[PathRef]] = Task {
143143
- resolveDeps(
144144
- Task.Anon { compilerBridgeIvyDeps().map(bindDependency()) },
@@ -148,10 +148,10 @@ index 92bfb2c2f8f..9854c30dac1 100644
148148
- )()
149149
+ )
150150
}
151-
151+
152152
def generatedSources = Task {
153153
diff --git a/contrib/package.mill b/contrib/package.mill
154-
index b68c27a1ef8..01a3e9da2c0 100644
154+
index cc7f38c2ec7..97356a39a96 100644
155155
--- a/contrib/package.mill
156156
+++ b/contrib/package.mill
157157
@@ -3,13 +3,12 @@ package build.contrib
@@ -228,7 +228,7 @@ index e49f218f4be..9d03aa073f3 100644
228228
def ivyDeps = Task {
229229
if (!caseName.contains("realistic") && !caseName.contains("sourcecode")) super.ivyDeps()
230230
diff --git a/dist/package.mill b/dist/package.mill
231-
index 515ed31025a..821d8fcc540 100644
231+
index fe1677bee26..5d50853b10b 100644
232232
--- a/dist/package.mill
233233
+++ b/dist/package.mill
234234
@@ -2,15 +2,14 @@ package build.dist
@@ -249,16 +249,16 @@ index 515ed31025a..821d8fcc540 100644
249249
case m: PublishModule if (m ne build.dist) && (m ne build.dist.native) => m
250250
}
251251
def moduleDeps = Seq(build.runner, build.idea, build.main.init)
252-
@@ -44,7 +43,7 @@ trait InstallModule extends build.MillPublishJavaModule {
253-
(os.home / ".cache/mill/download" / (build.millVersion() + batExt)).toString()
252+
@@ -46,7 +45,7 @@ trait InstallModule extends build.MillPublishJavaModule {
253+
(os.home / ".cache/mill/download" / (build.millVersion() + cacheBinarySuffix + batExt)).toString()
254254
)
255255
)()
256256
- Task.log.outputStream.println(path.toString())
257257
+ Task.log.streams.out.println(path.toString())
258258
PathRef(path)
259259
}
260260

261-
@@ -186,10 +185,10 @@ object `package` extends RootModule with InstallModule {
261+
@@ -188,10 +187,10 @@ object `package` extends RootModule with InstallModule {
262262
val wd = os.Path(wd0, Task.workspace)
263263
os.makeDir.all(wd)
264264
try {
@@ -272,7 +272,7 @@ index 515ed31025a..821d8fcc540 100644
272272
)
273273
mill.api.Result.Success(())
274274
} catch {
275-
@@ -234,7 +233,7 @@ object `package` extends RootModule with InstallModule {
275+
@@ -236,7 +235,7 @@ object `package` extends RootModule with InstallModule {
276276
def examplePathsWithArtifactName: Task[Seq[(os.Path, String)]] = Task.Anon {
277277
for {
278278
exampleMod <- build.example.exampleModules
@@ -281,15 +281,15 @@ index 515ed31025a..821d8fcc540 100644
281281
} yield {
282282
val example = path.subRelativeTo(Task.workspace)
283283
val artifactName = example.segments.mkString("-")
284-
@@ -264,6 +263,7 @@ object `package` extends RootModule with InstallModule {
284+
@@ -268,6 +267,7 @@ object `package` extends RootModule with InstallModule {
285285
}
286286

287287
def uploadToGithub(authKey: String) = Task.Command {
288288
+ /*
289289
val vcsState = VcsVersion.vcsState()
290290
val label = vcsState.copy(dirtyHash = None).format()
291291
if (label != build.millVersion()) sys.error("Modified mill version detected, aborting upload")
292-
@@ -280,7 +280,7 @@ object `package` extends RootModule with InstallModule {
292+
@@ -284,7 +284,7 @@ object `package` extends RootModule with InstallModule {
293293
headers = Seq("Authorization" -> ("token " + authKey))
294294
)
295295
}
@@ -298,7 +298,7 @@ index 515ed31025a..821d8fcc540 100644
298298
()
299299
}
300300

301-
@@ -317,7 +317,7 @@ object `package` extends RootModule with InstallModule {
301+
@@ -323,7 +323,7 @@ object `package` extends RootModule with InstallModule {
302302
out.write(os.read.bytes(assembly().path))
303303
}
304304

@@ -308,7 +308,7 @@ index 515ed31025a..821d8fcc540 100644
308308
PathRef(executable)
309309
}
310310
diff --git a/example/package.mill b/example/package.mill
311-
index a1e60b992d2..b5ae133427a 100644
311+
index 12ec7e60fdf..91ec73d01c3 100644
312312
--- a/example/package.mill
313313
+++ b/example/package.mill
314314
@@ -3,13 +3,12 @@ package build.example
@@ -326,7 +326,7 @@ index a1e60b992d2..b5ae133427a 100644
326326
import mill.contrib.buildinfo.BuildInfo
327327
import mill.T
328328
import mill.define.Cross
329-
@@ -18,116 +17,116 @@ import mill.define.Cross
329+
@@ -18,117 +17,117 @@ import mill.define.Cross
330330
import $meta._
331331

332332
object `package` extends RootModule with Module {
@@ -475,9 +475,11 @@ index a1e60b992d2..b5ae133427a 100644
475475
object large extends Module {
476476

477477
- object selective extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "selective"))
478-
- object multi extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "multi"))
478+
- object multifile extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "multifile"))
479+
- object multilang extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "multilang"))
479480
+ object selective extends Cross[ExampleCrossModule](build.listIn(moduleDir / "selective"))
480-
+ object multi extends Cross[ExampleCrossModule](build.listIn(moduleDir / "multi"))
481+
+ object multifile extends Cross[ExampleCrossModule](build.listIn(moduleDir / "multifile"))
482+
+ object multilang extends Cross[ExampleCrossModule](build.listIn(moduleDir / "multilang"))
481483
}
482484

483485
object extending extends Module {
@@ -502,7 +504,7 @@ index a1e60b992d2..b5ae133427a 100644
502504
case "1-test-suite" => line
503505
.replace(
504506
"mill bar.test bar.BarTests.hello",
505-
@@ -152,7 +151,7 @@ object `package` extends RootModule with Module {
507+
@@ -153,7 +152,7 @@ object `package` extends RootModule with Module {
506508
case "publishing" => Some(scalalib.publishing)
507509
case _ => None
508510
}
@@ -511,7 +513,7 @@ index a1e60b992d2..b5ae133427a 100644
511513
.flatMap(_.valuesToModules.get(List(crossValue)))
512514

513515
def testRepoRoot = Task {
514-
@@ -218,10 +217,10 @@ object `package` extends RootModule with Module {
516+
@@ -219,10 +218,10 @@ object `package` extends RootModule with Module {
515517

516518
trait ExampleCrossModule extends build.integration.IntegrationTestModule {
517519
// disable scalafix because these example modules don't have sources causing it to misbehave
@@ -524,7 +526,7 @@ index a1e60b992d2..b5ae133427a 100644
524526
def sources = Task {
525527
sources0()
526528
.flatMap(pathRef => os.walk(pathRef.path))
527-
@@ -250,7 +249,7 @@ object `package` extends RootModule with Module {
529+
@@ -251,7 +250,7 @@ object `package` extends RootModule with Module {
528530

529531
def rendered = Task {
530532
var seenCode = false
@@ -533,17 +535,17 @@ index a1e60b992d2..b5ae133427a 100644
533535
os.write(
534536
Task.dest / "example.adoc",
535537
parsed()
536-
@@ -308,7 +307,7 @@ $txt
537-
"gatling" -> ("gatling/gatling", "3870fda86e6bca005fbd53108c60a65db36279b6"),
538-
"arrow" -> ("arrow-kt/arrow", "bc9bf92cc98e01c21bdd2bf8640cf7db0f97204a")
538+
@@ -310,7 +309,7 @@ $txt
539+
"arrow" -> ("arrow-kt/arrow", "bc9bf92cc98e01c21bdd2bf8640cf7db0f97204a"),
540+
"ollama-js" -> ("ollama/ollama-js", "99293abe2c7c27ce7e76e8b4a98cae948f00058d")
539541
)
540542
- object thirdparty extends Cross[ThirdPartyModule](build.listIn(millSourcePath / "thirdparty"))
541543
+ object thirdparty extends Cross[ThirdPartyModule](build.listIn(moduleDir / "thirdparty"))
542544
trait ThirdPartyModule extends ExampleCrossModule {
543545
val (repoPath, repoHash) = repoInfo(crossValue)
544546
def repoSlug = repoPath.split("/").last
545547
diff --git a/integration/package.mill b/integration/package.mill
546-
index d57b7936add..ae4985f9102 100644
548+
index 7a8dcbbc774..db60a89a102 100644
547549
--- a/integration/package.mill
548550
+++ b/integration/package.mill
549551
@@ -3,13 +3,12 @@ package build.integration
@@ -584,7 +586,7 @@ index d57b7936add..ae4985f9102 100644
584586
def scalaVersion = build.Deps.scalaVersion
585587

586588
def forkEnv =
587-
@@ -86,15 +85,15 @@ object `package` extends RootModule {
589+
@@ -98,15 +97,15 @@ object `package` extends RootModule {
588590
}
589591
}
590592

@@ -607,7 +609,7 @@ index d57b7936add..ae4985f9102 100644
607609
override def moduleDeps = super[IntegrationTestModule].moduleDeps
608610
def forkEnv = super.forkEnv() ++ Seq(
609611
diff --git a/main/package.mill b/main/package.mill
610-
index 73c8cd24f9c..362eac814cd 100644
612+
index cb221c121e2..9b992abac9d 100644
611613
--- a/main/package.mill
612614
+++ b/main/package.mill
613615
@@ -75,15 +75,10 @@ object `package` extends RootModule with build.MillStableScalaModule with BuildI
@@ -663,10 +665,10 @@ index ee6663745f9..09b545ca7a5 100644
663665
def mandatoryIvyDeps = Agg.empty[Dep]
664666
def compileIvyDeps = super.mandatoryIvyDeps() ++ Agg(
665667
diff --git a/scalalib/package.mill b/scalalib/package.mill
666-
index df9a8c206ba..aa7da099928 100644
668+
index 7d04d040329..048fe96452e 100644
667669
--- a/scalalib/package.mill
668670
+++ b/scalalib/package.mill
669-
@@ -2,14 +2,13 @@ package build.scalalib
671+
@@ -3,14 +3,13 @@ import scala.util.Properties
670672
import scala.util.chaining._
671673
import coursier.maven.MavenRepository
672674
import mill._

example/large/multi/11-helper-files/build.mill renamed to example/large/multifile/11-helper-files/build.mill

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55
package build
66
import $packages._
77
import mill._, scalalib._
8-
import foo.versions
98

109
object `package` extends RootModule with MyModule {
1110
def forkEnv = Map(
1211
"MY_SCALA_VERSION" -> build.scalaVersion(),
13-
"MY_PROJECT_VERSION" -> versions.myProjectVersion
12+
"MY_PROJECT_VERSION" -> foo.myProjectVersion
1413
)
1514
}
1615

example/large/multi/11-helper-files/foo/package.mill renamed to example/large/multifile/12-helper-files-mill-scala/foo/package.mill.scala

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package build.foo
22
import mill._, scalalib._
3-
import versions.myProjectVersion
43
object `package` extends RootModule with build.MyModule {
54
def forkEnv = Map(
65
"MY_SCALA_VERSION" -> build.myScalaVersion,

example/package.mill

+2-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,8 @@ object `package` extends RootModule with Module {
113113
object large extends Module {
114114

115115
object selective extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "selective"))
116-
object multi extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "multi"))
116+
object multifile extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "multifile"))
117+
object multilang extends Cross[ExampleCrossModule](build.listIn(millSourcePath / "multilang"))
117118
}
118119

119120
object extending extends Module {
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package build
22
import mill._
33
import mill.scalalib._
4-
import build.bar
54
object foo extends ScalaModule {
6-
def scalaVersion = bar.myScalaVersion
5+
def scalaVersion = myScalaVersion
76
}
87

98
foo.noSuchMethod

integration/failure/compile-error/src/CompileErrorTests.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ object CompileErrorTests extends UtestIntegrationTestSuite {
2525
}
2626

2727
locally {
28-
assert(res.err.contains("""build.mill:9:5"""))
28+
assert(res.err.contains("""build.mill:8:5"""))
2929
assert(res.err.contains("""foo.noSuchMethod"""))
3030
assert(res.err.contains("""value noSuchMethod is not a member"""))
3131
}

integration/failure/root-module-compile-error/src/RootModuleCompileErrorTests.scala

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ object RootModuleCompileErrorTests extends UtestIntegrationTestSuite {
2626

2727
locally {
2828
// For now these error messages still show generated/mangled code; not ideal, but it'll do
29-
assert(res.err.replace('\\', '/').contains("""foo/package.mill:6:65"""))
29+
assert(res.err.replace('\\', '/').contains("""foo/package.mill:6:85"""))
3030
assert(res.err.contains("""Not found: type UnknownFooModule"""))
3131
assert(res.err.contains(
32-
"""abstract class package_ extends mill.main.SubfolderModule with UnknownFooModule {"""
32+
"""abstract class package_ extends mill.main.SubfolderModule(build.millDiscover) with UnknownFooModule {"""
3333
))
3434
assert(res.err.contains(
3535
""" ^^^^^^^^^^^^^^^^"""

integration/failure/subfolder-helper-module-collision/resources/build.mill

-2
This file was deleted.

integration/failure/subfolder-helper-module-collision/resources/sub.mill

-1
This file was deleted.

integration/failure/subfolder-helper-module-collision/resources/sub/package.mill

-4
This file was deleted.

integration/failure/subfolder-helper-module-collision/src/SubfolderHelperModuleCollisionTests.scala

-17
This file was deleted.

0 commit comments

Comments
 (0)