Skip to content

Commit

Permalink
Merge pull request #1305 from alexarchambault/missing-ordered-depende…
Browse files Browse the repository at this point in the history
…ncies

Better config handling
  • Loading branch information
alexarchambault committed Aug 5, 2019
2 parents dfc7c40 + f0e156b commit 738be66
Show file tree
Hide file tree
Showing 51 changed files with 899 additions and 858 deletions.
Expand Up @@ -83,7 +83,8 @@ object AppArtifacts {
subRes,
desc.classifiers,
Some(desc.mainArtifacts),
Some(desc.artifactTypes)
Some(desc.artifactTypes),
classpathOrder = true
).map(_._3)
l.map { a =>
val f = artifactMap.get(a) match {
Expand Down
Expand Up @@ -221,7 +221,8 @@ object Bootstrap extends CaseApp[BootstrapOptions] {
subRes,
params.sharedLaunch.artifact.classifiers,
Option(params.sharedLaunch.artifact.mainArtifacts).map(x => x),
Option(params.sharedLaunch.artifact.artifactTypes)
Option(params.sharedLaunch.artifact.artifactTypes),
params.sharedLaunch.resolve.classpathOrder
).map(_._3)

val m0 = m.filter(a => !done(a.url)).map(a => a.url -> artifacts.getOrElse(a, sys.error("should not happen")))
Expand Down
9 changes: 6 additions & 3 deletions modules/cli/src/main/scala/coursier/cli/launch/Launch.scala
Expand Up @@ -200,7 +200,8 @@ object Launch extends CaseApp[LaunchOptions] {
files: Seq[(Artifact, File)],
sharedLoaderParams: SharedLoaderParams,
artifactParams: ArtifactParams,
extraJars: Seq[File]
extraJars: Seq[File],
classpathOrder: Boolean
): Seq[(Option[String], Array[File])] = {
val fileMap = files.toMap
val alreadyAdded = Set.empty[File] // unused???
Expand All @@ -211,7 +212,8 @@ object Launch extends CaseApp[LaunchOptions] {
subRes,
artifactParams.classifiers,
Option(artifactParams.mainArtifacts).map(x => x),
Option(artifactParams.artifactTypes)
Option(artifactParams.artifactTypes),
classpathOrder
).map(_._3)
val files0 = artifacts
.map(a => fileMap.getOrElse(a, sys.error("should not happen")))
Expand Down Expand Up @@ -314,7 +316,8 @@ object Launch extends CaseApp[LaunchOptions] {
files,
params.shared.sharedLoader,
params.shared.artifact,
params.shared.extraJars.map(_.toFile)
params.shared.extraJars.map(_.toFile),
params.shared.resolve.classpathOrder
)

val jcp =
Expand Down
Expand Up @@ -529,15 +529,12 @@ object Resolution {
keepOpt.fold(default) { keep =>
if (keep(config)) {
val depConfig =
if (actualConfig == Configuration.optional)
defaultConfiguration
else if (actualConfig == Configuration.test)
if (actualConfig == Configuration.test || actualConfig == Configuration.runtime)
Configuration.runtime
else
// really keeping the from.configuration, with its fallback config part
from.configuration
defaultConfiguration

Seq(dep.copy(configuration = depConfig))
Seq(dep.withConfiguration(depConfig))
} else
Nil
}
Expand Down Expand Up @@ -677,7 +674,7 @@ object Resolution {
mapDependencies,
extraProperties,
forceProperties,
Configuration.compile
Configuration.defaultCompile
)

def apply(): Resolution =
Expand All @@ -697,7 +694,7 @@ object Resolution {
None,
Nil,
Map.empty,
Configuration.compile
Configuration.defaultCompile
)

private def fallbackConfigIfNecessary(dep: Dependency, configs: Set[Configuration]): Dependency =
Expand Down
Expand Up @@ -272,7 +272,7 @@ object Artifacts {
classifiers: Set[Classifier],
mainArtifactsOpt: Option[Boolean],
artifactTypesOpt: Option[Set[Type]],
classpathOrder: Boolean = false
classpathOrder: Boolean
): Seq[(Dependency, Publication, Artifact)] = {

val mainArtifacts0 = mainArtifactsOpt.getOrElse(classifiers.isEmpty)
Expand Down
15 changes: 15 additions & 0 deletions modules/coursier/shared/src/test/scala/coursier/ResolveTests.scala
Expand Up @@ -709,5 +709,20 @@ object ResolveTests extends TestSuite {
val subRes = res.subset(Seq(json4s))
await(validateDependencies(subRes))
}

"config handling" - async {

// if config handling gets messed up, like the "default" config of some dependencies ends up being pulled
// where it shouldn't, this surfaces more easily here, as sbt-ci-release depends on other sbt plugins,
// only available on Ivy repositories and not having a configuration named "default".
val res = await {
resolve
.addDependencies(dep"com.geirsson:sbt-ci-release;scalaVersion=2.12;sbtVersion=1.0:1.2.6")
.addRepositories(Repositories.sbtPlugin("releases"))
.future()
}

await(validateDependencies(res))
}
}
}
Expand Up @@ -96,13 +96,7 @@ object TestHelpers extends PlatformTestHelpers {
maybeWriteTextResource(path, result0.mkString("\n"))
tryRead
}
).split('\n').toSeq.map { s =>
// hack not to have to edit / review lots of test fixtures
if (s.endsWith(":compile"))
s.stripSuffix(":compile") + ":default"
else
s
}.filter(_.nonEmpty)
).split('\n').toSeq.filter(_.nonEmpty)

for (((e, r), idx) <- expected.zip(result0).zipWithIndex if e != r)
println(s"Line ${idx + 1}:\n expected: $e\n got: $r")
Expand Down
2 changes: 1 addition & 1 deletion modules/tests/metadata
Submodule metadata updated 21 files
+22 −0 https/github.com/jitsi/jitsi-maven-repository/raw/master/releases/rusv/agafua-syslog/0.4/agafua-syslog-0.4.pom
+40 −0 ...po.scala-sbt.org/scalasbt/sbt-plugin-releases/com.dwijnand/sbt-dynver/scala_2.12/sbt_1.0/3.3.0/ivys/ivy.xml
+37 −0 https/repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.jsuereth/pgp-library_2.12/1.1.2/ivys/ivy.xml
+39 −0 .../repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.jsuereth/sbt-pgp/scala_2.12/sbt_1.0/1.1.2/ivys/ivy.xml
+38 −0 ...o.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-git/scala_2.12/sbt_1.0/1.0.0/ivys/ivy.xml
+62 −0 https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-core_2.12/0.3.0/gigahorse-core_2.12-0.3.0.pom
+57 −0 https/repo1.maven.org/maven2/com/eed3si9n/gigahorse-okhttp_2.12/0.3.0/gigahorse-okhttp_2.12-0.3.0.pom
+77 −0 https/repo1.maven.org/maven2/com/geirsson/sbt-ci-release_2.12_1.0/1.2.6/sbt-ci-release-1.2.6.pom
+171 −0 https/repo1.maven.org/maven2/com/googlecode/javaewah/JavaEWAH/1.1.6/JavaEWAH-1.1.6.pom
+111 −0 https/repo1.maven.org/maven2/com/jcraft/jsch/0.1.54/jsch-0.1.54.pom
+53 −0 https/repo1.maven.org/maven2/com/squareup/okhttp3/okhttp/3.7.0/okhttp-3.7.0.pom
+534 −0 https/repo1.maven.org/maven2/com/squareup/okhttp3/parent/3.7.0/parent-3.7.0.pom
+122 −0 https/repo1.maven.org/maven2/com/squareup/okio/okio-parent/1.12.0/okio-parent-1.12.0.pom
+53 −0 https/repo1.maven.org/maven2/com/squareup/okio/okio/1.12.0/okio-1.12.0.pom
+52 −0 https/repo1.maven.org/maven2/com/typesafe/config/1.2.0/config-1.2.0.pom
+54 −0 https/repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.12/0.2.2/ssl-config-core_2.12-0.2.2.pom
+45 −0 https/repo1.maven.org/maven2/org/bouncycastle/bcpg-jdk15on/1.51/bcpg-jdk15on-1.51.pom
+851 −0 .../eclipse/jgit/org.eclipse.jgit-parent/4.9.0.201710071750-r/org.eclipse.jgit-parent-4.9.0.201710071750-r.pom
+263 −0 ...org/maven2/org/eclipse/jgit/org.eclipse.jgit/4.9.0.201710071750-r/org.eclipse.jgit-4.9.0.201710071750-r.pom
+60 −0 ...g/maven2/org/scala-lang/modules/scala-parser-combinators_2.12/1.0.5/scala-parser-combinators_2.12-1.0.5.pom
+63 −0 https/repo1.maven.org/maven2/org/xerial/sbt/sbt-sonatype_2.12_1.0/2.3/sbt-sonatype-2.3.pom
@@ -1,10 +1,10 @@
com.android.support:support-annotations:25.3.1:compile
android.arch.lifecycle:common:1.0.0-alpha3:compile
android.arch.core:core:1.0.0-alpha3:compile
android.arch.lifecycle:runtime:1.0.0-alpha3:compile
com.android.support:support-compat:25.3.1:compile
com.android.support:support-media-compat:25.3.1:compile
com.android.support:support-core-ui:25.3.1:compile
com.android.support:support-core-utils:25.3.1:compile
com.android.support:support-fragment:25.3.1:compile
android.arch.lifecycle:extensions:1.0.0-alpha3:compile
com.android.support:support-annotations:25.3.1:default
android.arch.lifecycle:common:1.0.0-alpha3:default
android.arch.core:core:1.0.0-alpha3:default
android.arch.lifecycle:runtime:1.0.0-alpha3:default
com.android.support:support-compat:25.3.1:default
com.android.support:support-media-compat:25.3.1:default
com.android.support:support-core-ui:25.3.1:default
com.android.support:support-core-utils:25.3.1:default
com.android.support:support-fragment:25.3.1:default
android.arch.lifecycle:extensions:1.0.0-alpha3:default
@@ -1,4 +1,4 @@
org.bouncycastle:bcprov-jdk14:1.38:compile
org.bouncycastle:bcmail-jdk14:1.38:compile
org.bouncycastle:bctsp-jdk14:1.38:compile
bouncycastle:bctsp-jdk14:138:compile
org.bouncycastle:bcprov-jdk14:1.38:default
org.bouncycastle:bcmail-jdk14:1.38:default
org.bouncycastle:bctsp-jdk14:1.38:default
bouncycastle:bctsp-jdk14:138:default
@@ -1,26 +1,26 @@
org.scala-lang:scala-library:2.11.7:compile
org.scala-lang:scala-reflect:2.11.7:compile
org.scala-lang.modules:scala-xml_2.11:1.0.4:compile
org.scala-lang.modules:scala-parser-combinators_2.11:1.0.4:compile
org.scala-lang:scala-compiler:2.11.7:compile
org.tukaani:xz:1.5:compile
org.apache.commons:commons-compress:1.8:compile
commons-lang:commons-lang:2.6:compile
org.xerial.snappy:snappy-java:1.1.1.3:compile
commons-logging:commons-logging:1.0.4:compile
commons-codec:commons-codec:1.2:compile
commons-httpclient:commons-httpclient:3.1:compile
info.bliki.wiki:bliki-core:3.0.19:compile
org.mongodb:mongo-java-driver:2.12.3:compile
org.json4s:json4s-ast_2.11:3.2.9:compile
com.thoughtworks.paranamer:paranamer:2.6:compile
org.scala-lang:scalap:2.11.0:compile
org.json4s:json4s-core_2.11:3.2.9:compile
com.fasterxml.jackson.core:jackson-annotations:2.3.0:compile
com.fasterxml.jackson.core:jackson-core:2.3.1:compile
com.fasterxml.jackson.core:jackson-databind:2.3.1:compile
org.json4s:json4s-jackson_2.11:3.2.9:compile
org.jblas:jblas:1.2.3:compile
com.google.code.findbugs:jsr305:1.3.9:compile
com.google.guava:guava:12.0:compile
cc.factorie:factorie_2.11:1.2:compile
org.scala-lang:scala-library:2.11.7:default
org.scala-lang:scala-reflect:2.11.7:default
org.scala-lang.modules:scala-xml_2.11:1.0.4:default
org.scala-lang.modules:scala-parser-combinators_2.11:1.0.4:default
org.scala-lang:scala-compiler:2.11.7:default
org.tukaani:xz:1.5:default
org.apache.commons:commons-compress:1.8:default
commons-lang:commons-lang:2.6:default
org.xerial.snappy:snappy-java:1.1.1.3:default
commons-logging:commons-logging:1.0.4:default
commons-codec:commons-codec:1.2:default
commons-httpclient:commons-httpclient:3.1:default
info.bliki.wiki:bliki-core:3.0.19:default
org.mongodb:mongo-java-driver:2.12.3:default
org.json4s:json4s-ast_2.11:3.2.9:default
com.thoughtworks.paranamer:paranamer:2.6:default
org.scala-lang:scalap:2.11.0:default
org.json4s:json4s-core_2.11:3.2.9:default
com.fasterxml.jackson.core:jackson-annotations:2.3.0:default
com.fasterxml.jackson.core:jackson-core:2.3.1:default
com.fasterxml.jackson.core:jackson-databind:2.3.1:default
org.json4s:json4s-jackson_2.11:3.2.9:default
org.jblas:jblas:1.2.3:default
com.google.code.findbugs:jsr305:1.3.9:default
com.google.guava:guava:12.0:default
cc.factorie:factorie_2.11:1.2:default
@@ -1,2 +1,2 @@
org.scala-lang:scala-library:2.11.7:compile
com.chuusai:shapeless_2.11:2.2.5:compile
org.scala-lang:scala-library:2.11.7:default
com.chuusai:shapeless_2.11:2.2.5:default
@@ -1,2 +1,2 @@
org.scala-lang:scala-library:2.11.7:compile
com.chuusai:shapeless_2.11:2.2.5:compile
org.scala-lang:scala-library:2.11.7:default
com.chuusai:shapeless_2.11:2.2.5:default
@@ -0,0 +1,25 @@
com.dwijnand:sbt-dynver;sbtVersion=1.0;scalaVersion=2.12:3.3.0:compile
com.jcraft:jsch:0.1.54:default
com.googlecode.javaewah:JavaEWAH:1.1.6:default
org.apache.httpcomponents:httpcore:4.3.3:default
commons-logging:commons-logging:1.1.3:default
commons-codec:commons-codec:1.6:default
org.apache.httpcomponents:httpclient:4.3.6:default
org.slf4j:slf4j-api:1.7.25:default
org.eclipse.jgit:org.eclipse.jgit:4.9.0.201710071750-r:default
com.typesafe.sbt:sbt-git;sbtVersion=1.0;scalaVersion=2.12:1.0.0:compile
org.xerial.sbt:sbt-sonatype;sbtVersion=1.0;scalaVersion=2.12:2.3:default
org.scala-lang:scala-library:2.12.6:default
org.bouncycastle:bcprov-jdk15on:1.51:default
org.bouncycastle:bcpg-jdk15on:1.51:default
com.typesafe:config:1.2.0:default
org.scala-lang.modules:scala-parser-combinators_2.12:1.0.5:default
com.typesafe:ssl-config-core_2.12:0.2.2:default
org.reactivestreams:reactive-streams:1.0.0:default
com.eed3si9n:gigahorse-core_2.12:0.3.0:default
com.squareup.okio:okio:1.12.0:default
com.squareup.okhttp3:okhttp:3.7.0:default
com.eed3si9n:gigahorse-okhttp_2.12:0.3.0:default
com.jsuereth:pgp-library_2.12:1.1.2:compile
com.jsuereth:sbt-pgp;sbtVersion=1.0;scalaVersion=2.12:1.1.2:compile
com.geirsson:sbt-ci-release;sbtVersion=1.0;scalaVersion=2.12:1.2.6:default
@@ -1,10 +1,10 @@
org.scala-lang:scala-library:2.11.6:compile
org.scala-lang.modules:scala-parser-combinators_2.11:1.0.2:compile
org.scala-lang.modules:scala-xml_2.11:1.0.2:compile
org.scalaz:scalaz-core_2.11:7.1.1:compile
com.github.julien-truffaut:monocle-core_2.11:1.1.0:compile
org.scala-lang:scala-reflect:2.11.6:compile
com.github.julien-truffaut:monocle-macro_2.11:1.1.0:compile
io.argonaut:argonaut_2.11:6.1:compile
com.chuusai:shapeless_2.11:2.2.0:compile
com.github.alexarchambault:argonaut-shapeless_6.1_2.11:0.2.0:compile
org.scala-lang:scala-library:2.11.6:default
org.scala-lang.modules:scala-parser-combinators_2.11:1.0.2:default
org.scala-lang.modules:scala-xml_2.11:1.0.2:default
org.scalaz:scalaz-core_2.11:7.1.1:default
com.github.julien-truffaut:monocle-core_2.11:1.1.0:default
org.scala-lang:scala-reflect:2.11.6:default
com.github.julien-truffaut:monocle-macro_2.11:1.1.0:default
io.argonaut:argonaut_2.11:6.1:default
com.chuusai:shapeless_2.11:2.2.0:default
com.github.alexarchambault:argonaut-shapeless_6.1_2.11:0.2.0:default
@@ -1,18 +1,18 @@
net.sourceforge.f2j:arpack_combined_all:0.1:compile
com.github.fommil.netlib:core:1.1.2:compile
com.github.fommil:jniloader:1.1:compile
com.github.fommil.netlib:native_ref-java:1.1:compile
com.github.fommil.netlib:netlib-native_ref-osx-x86_64:1.1:compile
com.github.fommil.netlib:netlib-native_ref-linux-x86_64:1.1:compile
com.github.fommil.netlib:netlib-native_ref-linux-i686:1.1:compile
com.github.fommil.netlib:netlib-native_ref-win-x86_64:1.1:compile
com.github.fommil.netlib:netlib-native_ref-win-i686:1.1:compile
com.github.fommil.netlib:netlib-native_ref-linux-armhf:1.1:compile
com.github.fommil.netlib:native_system-java:1.1:compile
com.github.fommil.netlib:netlib-native_system-osx-x86_64:1.1:compile
com.github.fommil.netlib:netlib-native_system-linux-x86_64:1.1:compile
com.github.fommil.netlib:netlib-native_system-linux-i686:1.1:compile
com.github.fommil.netlib:netlib-native_system-linux-armhf:1.1:compile
com.github.fommil.netlib:netlib-native_system-win-x86_64:1.1:compile
com.github.fommil.netlib:netlib-native_system-win-i686:1.1:compile
com.github.fommil.netlib:all:1.1.2:compile
net.sourceforge.f2j:arpack_combined_all:0.1:default
com.github.fommil.netlib:core:1.1.2:default
com.github.fommil:jniloader:1.1:default
com.github.fommil.netlib:native_ref-java:1.1:default
com.github.fommil.netlib:netlib-native_ref-osx-x86_64:1.1:default
com.github.fommil.netlib:netlib-native_ref-linux-x86_64:1.1:default
com.github.fommil.netlib:netlib-native_ref-linux-i686:1.1:default
com.github.fommil.netlib:netlib-native_ref-win-x86_64:1.1:default
com.github.fommil.netlib:netlib-native_ref-win-i686:1.1:default
com.github.fommil.netlib:netlib-native_ref-linux-armhf:1.1:default
com.github.fommil.netlib:native_system-java:1.1:default
com.github.fommil.netlib:netlib-native_system-osx-x86_64:1.1:default
com.github.fommil.netlib:netlib-native_system-linux-x86_64:1.1:default
com.github.fommil.netlib:netlib-native_system-linux-i686:1.1:default
com.github.fommil.netlib:netlib-native_system-linux-armhf:1.1:default
com.github.fommil.netlib:netlib-native_system-win-x86_64:1.1:default
com.github.fommil.netlib:netlib-native_system-win-i686:1.1:default
com.github.fommil.netlib:all:1.1.2:default
@@ -1 +1 @@
com.googlecode.libphonenumber:libphonenumber:7.0.11:compile
com.googlecode.libphonenumber:libphonenumber:7.0.11:default
@@ -1 +1 @@
com.googlecode.libphonenumber:libphonenumber:7.0.11:compile
com.googlecode.libphonenumber:libphonenumber:7.0.11:default
@@ -1,3 +1,3 @@
com.nativelibs4java:ochafik-util:0.12:compile
net.java.dev.jna:jna:4.1.0:compile
com.nativelibs4java:jnaerator-runtime:0.12:compile
com.nativelibs4java:ochafik-util:0.12:default
net.java.dev.jna:jna:4.1.0:default
com.nativelibs4java:jnaerator-runtime:0.12:default
@@ -1 +1 @@
dk.brics.automaton:automaton:1.11-8:compile
dk.brics.automaton:automaton:1.11-8:default
@@ -1,5 +1,6 @@
net.sf.squirrel-sql.thirdparty-non-maven:java-cup:0.11a:compile
nz.ac.waikato.cms.weka:weka-stable:3.6.10:compile
de.bwaldvogel:liblinear:1.94:compile
edu.illinois.cs.cogcomp:LBJava:1.0.3:compile
net.sf.squirrel-sql.thirdparty-non-maven:java-cup:0.11a:default
nz.ac.waikato.cms.weka:weka-stable:3.6.10:default
de.bwaldvogel:liblinear:1.94:default
edu.illinois.cs.cogcomp:LBJava:1.0.3:default
edu.illinois.cs.cogcomp:illinois-pos:2.0.2:default
edu.illinois.cs.cogcomp:illinois-pos:2.0.2:compile

0 comments on commit 738be66

Please sign in to comment.