Tweak updateSbtClassifiers handling in sbt-coursier

Running one resolution per config messed things up a bit…
This commit is contained in:
Alexandre Archambault 2020-05-18 23:03:37 +02:00
parent 3cd521c43c
commit 808f9a0d0f
5 changed files with 9 additions and 25 deletions

View File

@ -24,7 +24,7 @@ object ArtifactsTasks {
val resTask: sbt.Def.Initialize[sbt.Task[Seq[Resolution]]] =
if (withClassifiers && sbtClassifiers)
Def.task(Seq(coursierSbtClassifiersResolution.value))
Def.task(coursierSbtClassifiersResolutions.value.values.toVector)
else
Def.task(coursierResolutions.value.values.toVector)

View File

@ -30,7 +30,7 @@ object CoursierPlugin extends AutoPlugin {
val coursierParentProjectCache = Keys.coursierParentProjectCache
val coursierResolutions = Keys.coursierResolutions
val coursierSbtClassifiersResolution = Keys.coursierSbtClassifiersResolution
val coursierSbtClassifiersResolutions = Keys.coursierSbtClassifiersResolutions
val coursierDependencyTree = Keys.coursierDependencyTree
val coursierDependencyInverseTree = Keys.coursierDependencyInverseTree
@ -181,13 +181,13 @@ object CoursierPlugin extends AutoPlugin {
sys.error(s"Resolution for configuration $config not found")
)
},
coursierSbtClassifiersResolution := (Def.taskDyn {
coursierSbtClassifiersResolutions := (Def.taskDyn {
val missingOk = (updateConfiguration in updateSbtClassifiers).value.missingOk
ResolutionTasks.resolutionsTask(
sbtClassifiers = true,
missingOk = missingOk,
)
}).value.head._2
}).value
)
override lazy val buildSettings = super.buildSettings ++ Seq(

View File

@ -37,17 +37,9 @@ object DisplayTasks {
val resolutionsTask =
if (sbtClassifiers)
Def.task {
val currentProject = currentProjectTask.value
val classifiersRes = coursierSbtClassifiersResolution.value
currentProject
.configurations
.keysIterator
.map(config => ToCoursier.configuration(config) -> classifiersRes)
.toMap
}
coursierSbtClassifiersResolutions
else
Def.task(coursierResolutions.value)
coursierResolutions
Def.task {

View File

@ -33,7 +33,7 @@ object Keys {
private[coursier] val actualCoursierResolution = TaskKey[Resolution]("coursier-resolution")
val coursierSbtClassifiersResolution = TaskKey[Resolution]("coursier-sbt-classifiers-resolution")
val coursierSbtClassifiersResolutions = TaskKey[Map[Configuration, Resolution]]("coursier-sbt-classifiers-resolution")
val coursierDependencyTree = TaskKey[Unit](
"coursier-dependency-tree",

View File

@ -34,17 +34,9 @@ object UpdateTasks {
val resTask =
if (withClassifiers && sbtClassifiers)
Def.task {
val mod = coursierSbtClassifiersModule.value
val classifiersRes = coursierSbtClassifiersResolution.value
mod
.configurations
.iterator
.map(c => Configuration(c.name) -> classifiersRes)
.toMap
}
coursierSbtClassifiersResolutions
else
Def.task(coursierResolutions.value)
coursierResolutions
// we should be able to call .value on that one here, its conditions don't originate from other tasks
val artifactFilesOrErrors0Task =