Skip to content

Commit e27ea2c

Browse files
Prefer defaultResolver().classpath over Lib.resolveDependencies (#4727)
Whenever possible, this tries to make modules defined in Mill use `CoursierModule#defaultResolver` or `CoursierModule#millResolver` to resolve dependencies, rather than calling lower level helpers like `Lib. resolveDependencies`. The former automatically take into account customizations of resolution defined on `CoursierModule` and `JavaModule` (`repositoriesTask`, `mapDependencies`, etc.), while these have to be passed manually to `Lib.resolveDependencies`. This helps when adding more parameters - these have to be passed to `defaultResolver` / `millResolver`, and that's it, rather than also having to inspect all calls to `Lib.resolveDependencies`, and passing the new parameter there too. This also tries to make resolution log to the task logger of the task requesting the resolution, rather than the logger of `CoursierModule#{defaultResolver,millResolver}`. Pull request: #4727
1 parent 29de0d6 commit e27ea2c

File tree

48 files changed

+190
-253
lines changed

Some content is hidden

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

48 files changed

+190
-253
lines changed

bsp/worker/src/mill/bsp/worker/MillBuildServer.scala

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ private class MillBuildServer(
293293
case m: JavaModule =>
294294
Task.Anon {
295295
(
296-
m.millResolver().resolveDeps(
296+
m.millResolver().classpath(
297297
Seq(
298298
m.coursierDependency.withConfiguration(coursier.core.Configuration.provided),
299299
m.coursierDependency
@@ -337,12 +337,14 @@ private class MillBuildServer(
337337
Task.Anon {
338338
(
339339
// full list of dependencies, including transitive ones
340-
m.millResolver().allDeps(
341-
Seq(
342-
m.coursierDependency.withConfiguration(coursier.core.Configuration.provided),
343-
m.coursierDependency
340+
m.millResolver()
341+
.resolution(
342+
Seq(
343+
m.coursierDependency.withConfiguration(coursier.core.Configuration.provided),
344+
m.coursierDependency
345+
)
344346
)
345-
),
347+
.orderedDependencies,
346348
m.unmanagedClasspath()
347349
)
348350
}

ci/mill-bootstrap.patch

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,20 @@ index 92bfb2c2f8f..9854c30dac1 100644
136136
}
137137

138138
trait MillPublishCrossScalaModule extends MillPublishJavaModule with CrossScalaModule
139+
@@ -746,10 +747,10 @@ trait BridgeModule extends MillPublishCrossScalaModule {
140+
)
141+
142+
def compilerBridgeSourceJars: T[Agg[PathRef]] = Task {
143+
- resolveDeps(
144+
- Task.Anon { compilerBridgeIvyDeps().map(bindDependency()) },
145+
+ defaultResolver().classpath(
146+
+ compilerBridgeIvyDeps(),
147+
sources = true
148+
- )()
149+
+ )
150+
}
151+
152+
def generatedSources = Task {
139153
diff --git a/contrib/package.mill b/contrib/package.mill
140154
index b68c27a1ef8..01a3e9da2c0 100644
141155
--- a/contrib/package.mill
@@ -596,12 +610,22 @@ diff --git a/main/package.mill b/main/package.mill
596610
index 73c8cd24f9c..362eac814cd 100644
597611
--- a/main/package.mill
598612
+++ b/main/package.mill
599-
@@ -80,7 +80,7 @@ object `package` extends RootModule with build.MillStableScalaModule with BuildI
600-
Some(Task.ctx()),
601-
dist.coursierCacheCustomizer()
613+
@@ -75,15 +75,10 @@ object `package` extends RootModule with build.MillStableScalaModule with BuildI
614+
}
615+
}().toMap
616+
617+
- val result = Lib.resolveDependenciesMetadataSafe(
618+
- repositories = dist.allRepositories(),
619+
- Seq(BoundDep(dist.coursierDependency, force = false)),
620+
- Some(dist.mapDependencies()),
621+
- dist.resolutionCustomizer(),
622+
- Some(Task.ctx()),
623+
- dist.coursierCacheCustomizer()
624+
+ val result = dist.millResolver().resolution(
625+
+ Seq(BoundDep(dist.coursierDependency, force = false))
602626
)
603627
- result.getOrThrow.orderedDependencies
604-
+ result.get.orderedDependencies
628+
+ result.orderedDependencies
605629
.map(dep => s"${dep.module.repr}:${dep.version}")
606630
.distinct
607631
.map(mod => internalToPublishedModuleMap.getOrElse(mod, mod))

contrib/bloop/src/mill/contrib/bloop/BloopImpl.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ class BloopImpl(
377377

378378
val millBuildDependencies: Task[List[BloopConfig.Module]] = Task.Anon {
379379

380-
val result = module.defaultResolver().getArtifacts(
380+
val result = module.defaultResolver().artifacts(
381381
BuildInfo.millAllDistDependencies
382382
.split(',')
383383
.filter(_.nonEmpty)

contrib/flyway/src/mill/contrib/flyway/FlywayModule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ trait FlywayModule extends JavaModule {
2929
def flywayDriverDeps: T[Seq[Dep]]
3030

3131
def jdbcClasspath = Task {
32-
defaultResolver().resolveDeps(flywayDriverDeps())
32+
defaultResolver().classpath(flywayDriverDeps())
3333
}
3434

3535
private def strToOptPair[A](key: String, v: String) =

contrib/jmh/src/mill/contrib/jmh/JmhModule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ trait JmhModule extends JavaModule {
104104
}
105105

106106
def generatorDeps = Task {
107-
defaultResolver().resolveDeps(
107+
defaultResolver().classpath(
108108
Seq(ivy"org.openjdk.jmh:jmh-generator-bytecode:${jmhGeneratorByteCodeVersion()}")
109109
)
110110
}

contrib/playlib/src/mill/playlib/RouterModule.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ trait RouterModule extends ScalaModule with Version {
4646
def generatorType: RouteCompilerType = RouteCompilerType.InjectedGenerator
4747

4848
def routerClasspath: T[Seq[PathRef]] = Task {
49-
defaultResolver().resolveDeps(
49+
defaultResolver().classpath(
5050
playMinorVersion() match {
5151
case "2.6" | "2.7" | "2.8" =>
5252
Seq(ivy"com.typesafe.play::routes-compiler:${playVersion()}")

contrib/playlib/src/mill/playlib/Static.scala

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import java.nio.file._
55
import java.nio.file.attribute.BasicFileAttributes
66
import java.util
77

8-
import mill.scalalib.{Lib, ScalaModule}
8+
import mill.scalalib.ScalaModule
99
import mill.{PathRef, Task}
1010

1111
trait Static extends ScalaModule {
@@ -49,15 +49,13 @@ trait Static extends ScalaModule {
4949
def webJarDeps = Task {
5050
ivyDeps()
5151
.filter(_.dep.module.organization.value == "org.webjars")
52-
.map(bindDependency())
5352
}
5453

5554
/**
5655
* jar files of web jars
5756
*/
5857
def webJars = Task {
59-
Lib.resolveDependencies(
60-
repositoriesTask(),
58+
defaultResolver().classpath(
6159
webJarDeps()
6260
)
6361
}

contrib/proguard/src/mill/contrib/proguard/Proguard.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ trait Proguard extends ScalaModule {
121121
* The location of the proguard jar files.
122122
*/
123123
def proguardClasspath: T[Seq[PathRef]] = Task {
124-
defaultResolver().resolveDeps(Seq(
124+
defaultResolver().classpath(Seq(
125125
ivy"com.guardsquare:proguard-base:${proguardVersion()}"
126126
))
127127
}

contrib/scalapblib/src/mill/contrib/scalapblib/ScalaPBModule.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package contrib.scalapblib
33

44
import coursier.core.Version
55
import mill.api.{PathRef}
6-
import mill.scalalib.Lib.resolveDependencies
76
import mill.scalalib._
87

98
import java.util.zip.ZipInputStream
@@ -76,10 +75,11 @@ trait ScalaPBModule extends ScalaModule {
7675
}
7776

7877
def scalaPBClasspath: T[Seq[PathRef]] = Task {
79-
resolveDependencies(
80-
repositoriesTask(),
78+
val scalaPBScalaVersion = "2.13.1"
79+
defaultResolver().classpath(
8180
Seq(ivy"com.thesamet.scalapb::scalapbc:${scalaPBVersion()}")
82-
.map(Lib.depToBoundDep(_, "2.13.1"))
81+
.map(Lib.depToBoundDep(_, scalaPBScalaVersion)),
82+
resolutionParamsMapOpt = Some(_.withScalaVersion(scalaPBScalaVersion))
8383
)
8484
}
8585

@@ -91,7 +91,7 @@ trait ScalaPBModule extends ScalaModule {
9191
}
9292

9393
def scalaPBProtoClasspath: T[Agg[PathRef]] = Task {
94-
millResolver().resolveDeps(
94+
millResolver().classpath(
9595
Seq(
9696
coursierDependency.withConfiguration(coursier.core.Configuration.provided),
9797
coursierDependency

contrib/scoverage/src/mill/contrib/scoverage/ScoverageModule.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ trait ScoverageModule extends ScalaModule { outer: ScalaModule =>
113113

114114
def scoverageToolsClasspath: T[Seq[PathRef]] = Task {
115115
scoverageReportWorkerClasspath() ++
116-
defaultResolver().resolveDeps(scoverageReporterIvyDeps())
116+
defaultResolver().classpath(scoverageReporterIvyDeps())
117117
}
118118

119119
def scoverageClasspath: T[Seq[PathRef]] = Task {
120-
defaultResolver().resolveDeps(scoveragePluginDeps())
120+
defaultResolver().classpath(scoveragePluginDeps())
121121
}
122122

123123
def scoverageReportWorkerClasspath: T[Seq[PathRef]] = Task {
@@ -209,7 +209,7 @@ trait ScoverageModule extends ScalaModule { outer: ScalaModule =>
209209
val outerScoverageClassesPath = outer.scoverage.compile().classes
210210
(super.runClasspath().map { path =>
211211
if (outerClassesPath == path) outerScoverageClassesPath else path
212-
} ++ defaultResolver().resolveDeps(outer.scoverageRuntimeDeps())).distinct
212+
} ++ defaultResolver().classpath(outer.scoverageRuntimeDeps())).distinct
213213
}
214214
}
215215
}

0 commit comments

Comments
 (0)