mirror of
https://github.com/sbt/sbt.git
synced 2026-09-03 16:39:24 +02:00
Replace scopes with Ivy-like configuration
This commit is contained in:
@@ -44,7 +44,8 @@ object CentralTests extends TestSuite {
|
||||
def resolutionCheck(
|
||||
module: Module,
|
||||
version: String,
|
||||
extraRepo: Option[Repository] = None
|
||||
extraRepo: Option[Repository] = None,
|
||||
configuration: String = ""
|
||||
) =
|
||||
async {
|
||||
val expected =
|
||||
@@ -54,7 +55,7 @@ object CentralTests extends TestSuite {
|
||||
.split('\n')
|
||||
.toSeq
|
||||
|
||||
val dep = Dependency(module, version)
|
||||
val dep = Dependency(module, version, configuration = configuration)
|
||||
val res = await(resolve(Set(dep), extraRepo = extraRepo))
|
||||
|
||||
val result = res
|
||||
@@ -138,6 +139,7 @@ object CentralTests extends TestSuite {
|
||||
resolutionCheck(
|
||||
Module("com.github.fommil", "java-logging"),
|
||||
"1.2-SNAPSHOT",
|
||||
configuration = "runtime",
|
||||
extraRepo = Some(MavenRepository("https://oss.sonatype.org/content/repositories/public/"))
|
||||
)
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ object PomParsingTests extends TestSuite {
|
||||
</dependency>
|
||||
"""
|
||||
|
||||
val expected = \/-(Dependency(Module("comp", "lib"), "2.1", attributes = Attributes(classifier = "extra")))
|
||||
val expected = \/-("" -> Dependency(Module("comp", "lib"), "2.1", attributes = Attributes(classifier = "extra")))
|
||||
|
||||
val result = Pom.dependency(xmlParse(depNode).right.get)
|
||||
|
||||
@@ -90,7 +90,7 @@ object PomParsingTests extends TestSuite {
|
||||
None,
|
||||
Profile.Activation(Nil),
|
||||
Seq(
|
||||
Dependency(Module("comp", "lib"), "0.2")),
|
||||
"" -> Dependency(Module("comp", "lib"), "0.2")),
|
||||
Nil,
|
||||
Map.empty
|
||||
))
|
||||
@@ -122,7 +122,7 @@ object PomParsingTests extends TestSuite {
|
||||
Profile.Activation(Nil),
|
||||
Nil,
|
||||
Seq(
|
||||
Dependency(Module("comp", "lib"), "0.2", scope = Scope.Test)),
|
||||
"test" -> Dependency(Module("comp", "lib"), "0.2")),
|
||||
Map.empty
|
||||
))
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package coursier
|
||||
package test
|
||||
|
||||
import coursier.core.Repository
|
||||
import coursier.maven.MavenRepository
|
||||
import utest._
|
||||
import scala.async.Async.{ async, await }
|
||||
|
||||
@@ -27,69 +28,68 @@ object ResolutionTests extends TestSuite {
|
||||
Project(Module("acme", "config"), "1.3.0"),
|
||||
|
||||
Project(Module("acme", "play"), "2.4.0", Seq(
|
||||
Dependency(Module("acme", "play-json"), "2.4.0"))),
|
||||
"" -> Dependency(Module("acme", "play-json"), "2.4.0"))),
|
||||
|
||||
Project(Module("acme", "play-json"), "2.4.0"),
|
||||
|
||||
Project(Module("acme", "play"), "2.4.1",
|
||||
dependencies = Seq(
|
||||
Dependency(Module("acme", "play-json"), "${playJsonVersion}"),
|
||||
Dependency(Module("${project.groupId}", "${configName}"), "1.3.0")),
|
||||
"" -> Dependency(Module("acme", "play-json"), "${playJsonVersion}"),
|
||||
"" -> Dependency(Module("${project.groupId}", "${configName}"), "1.3.0")),
|
||||
properties = Map(
|
||||
"playJsonVersion" -> "2.4.0",
|
||||
"configName" -> "config")),
|
||||
|
||||
Project(Module("acme", "play-extra-no-config"), "2.4.1",
|
||||
Seq(
|
||||
Dependency(Module("acme", "play"), "2.4.1",
|
||||
"" -> Dependency(Module("acme", "play"), "2.4.1",
|
||||
exclusions = Set(("acme", "config"))))),
|
||||
|
||||
Project(Module("acme", "play-extra-no-config-no"), "2.4.1",
|
||||
Seq(
|
||||
Dependency(Module("acme", "play"), "2.4.1",
|
||||
"" -> Dependency(Module("acme", "play"), "2.4.1",
|
||||
exclusions = Set(("*", "config"))))),
|
||||
|
||||
Project(Module("hudsucker", "mail"), "10.0",
|
||||
Seq(
|
||||
Dependency(Module("${project.groupId}", "test-util"), "${project.version}",
|
||||
scope = Scope.Test))),
|
||||
"test" -> Dependency(Module("${project.groupId}", "test-util"), "${project.version}"))),
|
||||
|
||||
Project(Module("hudsucker", "test-util"), "10.0"),
|
||||
|
||||
Project(Module("se.ikea", "parent"), "18.0",
|
||||
dependencyManagement = Seq(
|
||||
Dependency(Module("acme", "play"), "2.4.0",
|
||||
"" -> Dependency(Module("acme", "play"), "2.4.0",
|
||||
exclusions = Set(("acme", "play-json"))))),
|
||||
|
||||
Project(Module("se.ikea", "billy"), "18.0",
|
||||
dependencies = Seq(
|
||||
Dependency(Module("acme", "play"), "")),
|
||||
"" -> Dependency(Module("acme", "play"), "")),
|
||||
parent = Some(Module("se.ikea", "parent"), "18.0")),
|
||||
|
||||
Project(Module("org.gnome", "parent"), "7.0",
|
||||
Seq(
|
||||
Dependency(Module("org.gnu", "glib"), "13.4"))),
|
||||
"" -> Dependency(Module("org.gnu", "glib"), "13.4"))),
|
||||
|
||||
Project(Module("org.gnome", "panel-legacy"), "7.0",
|
||||
dependencies = Seq(
|
||||
Dependency(Module("org.gnome", "desktop"), "${project.version}")),
|
||||
"" -> Dependency(Module("org.gnome", "desktop"), "${project.version}")),
|
||||
parent = Some(Module("org.gnome", "parent"), "7.0")),
|
||||
|
||||
Project(Module("gov.nsa", "secure-pgp"), "10.0",
|
||||
Seq(
|
||||
Dependency(Module("gov.nsa", "crypto"), "536.89"))),
|
||||
"" -> Dependency(Module("gov.nsa", "crypto"), "536.89"))),
|
||||
|
||||
Project(Module("com.mailapp", "mail-client"), "2.1",
|
||||
dependencies = Seq(
|
||||
Dependency(Module("gov.nsa", "secure-pgp"), "10.0",
|
||||
"" -> Dependency(Module("gov.nsa", "secure-pgp"), "10.0",
|
||||
exclusions = Set(("*", "${crypto.name}")))),
|
||||
properties = Map("crypto.name" -> "crypto", "dummy" -> "2")),
|
||||
|
||||
Project(Module("com.thoughtworks.paranamer", "paranamer-parent"), "2.6",
|
||||
dependencies = Seq(
|
||||
Dependency(Module("junit", "junit"), "")),
|
||||
"" -> Dependency(Module("junit", "junit"), "")),
|
||||
dependencyManagement = Seq(
|
||||
Dependency(Module("junit", "junit"), "4.11", scope = Scope.Test))),
|
||||
"test" -> Dependency(Module("junit", "junit"), "4.11"))),
|
||||
|
||||
Project(Module("com.thoughtworks.paranamer", "paranamer"), "2.6",
|
||||
parent = Some(Module("com.thoughtworks.paranamer", "paranamer-parent"), "2.6")),
|
||||
@@ -97,33 +97,33 @@ object ResolutionTests extends TestSuite {
|
||||
Project(Module("com.github.dummy", "libb"), "0.3.3",
|
||||
profiles = Seq(
|
||||
Profile("default", activeByDefault = Some(true), dependencies = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
"" -> Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
|
||||
Project(Module("com.github.dummy", "libb"), "0.4.2",
|
||||
dependencies = Seq(
|
||||
Dependency(Module("org.scalaverification", "scala-verification"), "1.12.4")),
|
||||
"" -> Dependency(Module("org.scalaverification", "scala-verification"), "1.12.4")),
|
||||
profiles = Seq(
|
||||
Profile("default", activeByDefault = Some(true), dependencies = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"),
|
||||
Dependency(Module("org.scalaverification", "scala-verification"), "1.12.4", scope = Scope.Test))))),
|
||||
"" -> Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"),
|
||||
"test" -> Dependency(Module("org.scalaverification", "scala-verification"), "1.12.4"))))),
|
||||
|
||||
Project(Module("com.github.dummy", "libb"), "0.5.3",
|
||||
properties = Map("special" -> "true"),
|
||||
profiles = Seq(
|
||||
Profile("default", activation = Profile.Activation(properties = Seq("special" -> None)), dependencies = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
"" -> Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
|
||||
Project(Module("com.github.dummy", "libb"), "0.5.4",
|
||||
properties = Map("special" -> "true"),
|
||||
profiles = Seq(
|
||||
Profile("default", activation = Profile.Activation(properties = Seq("special" -> Some("true"))), dependencies = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
"" -> Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
|
||||
Project(Module("com.github.dummy", "libb"), "0.5.5",
|
||||
properties = Map("special" -> "true"),
|
||||
profiles = Seq(
|
||||
Profile("default", activation = Profile.Activation(properties = Seq("special" -> Some("!false"))), dependencies = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
"" -> Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
|
||||
Project(Module("com.github.dummy", "libb-parent"), "0.5.6",
|
||||
properties = Map("special" -> "true")),
|
||||
@@ -133,39 +133,39 @@ object ResolutionTests extends TestSuite {
|
||||
properties = Map("special" -> "true"),
|
||||
profiles = Seq(
|
||||
Profile("default", activation = Profile.Activation(properties = Seq("special" -> Some("!false"))), dependencies = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
"" -> Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))))),
|
||||
|
||||
Project(Module("an-org", "a-name"), "1.0"),
|
||||
|
||||
Project(Module("an-org", "a-name"), "1.2"),
|
||||
|
||||
Project(Module("an-org", "a-lib"), "1.0",
|
||||
Seq(Dependency(Module("an-org", "a-name"), "1.0"))),
|
||||
Seq("" -> Dependency(Module("an-org", "a-name"), "1.0"))),
|
||||
|
||||
Project(Module("an-org", "a-lib"), "1.1"),
|
||||
|
||||
Project(Module("an-org", "a-lib"), "1.2",
|
||||
Seq(Dependency(Module("an-org", "a-name"), "1.2"))),
|
||||
Seq("" -> Dependency(Module("an-org", "a-name"), "1.2"))),
|
||||
|
||||
Project(Module("an-org", "another-lib"), "1.0",
|
||||
Seq(Dependency(Module("an-org", "a-name"), "1.0"))),
|
||||
Seq("" -> Dependency(Module("an-org", "a-name"), "1.0"))),
|
||||
|
||||
// Must bring transitively an-org:a-name, as an optional dependency
|
||||
Project(Module("an-org", "an-app"), "1.0",
|
||||
Seq(
|
||||
Dependency(Module("an-org", "a-lib"), "1.0", exclusions = Set(("an-org", "a-name"))),
|
||||
Dependency(Module("an-org", "another-lib"), "1.0", optional = true))),
|
||||
"" -> Dependency(Module("an-org", "a-lib"), "1.0", exclusions = Set(("an-org", "a-name"))),
|
||||
"" -> Dependency(Module("an-org", "another-lib"), "1.0", optional = true))),
|
||||
|
||||
Project(Module("an-org", "an-app"), "1.1",
|
||||
Seq(
|
||||
Dependency(Module("an-org", "a-lib"), "1.1"))),
|
||||
"" -> Dependency(Module("an-org", "a-lib"), "1.1"))),
|
||||
|
||||
Project(Module("an-org", "an-app"), "1.2",
|
||||
Seq(
|
||||
Dependency(Module("an-org", "a-lib"), "1.2")))
|
||||
"" -> Dependency(Module("an-org", "a-lib"), "1.2")))
|
||||
)
|
||||
|
||||
val projectsMap = projects.map(p => p.moduleVersion -> p).toMap
|
||||
val projectsMap = projects.map(p => p.moduleVersion -> p.copy(configurations = MavenRepository.defaultConfigurations)).toMap
|
||||
val testRepository = new TestRepository(projectsMap)
|
||||
|
||||
val repositories = Seq[Repository](
|
||||
@@ -308,8 +308,7 @@ object ResolutionTests extends TestSuite {
|
||||
async {
|
||||
val dep = Dependency(Module("hudsucker", "mail"), "10.0")
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -331,8 +330,7 @@ object ResolutionTests extends TestSuite {
|
||||
exclusions = Set(("acme", "play-json")))
|
||||
)
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -350,8 +348,7 @@ object ResolutionTests extends TestSuite {
|
||||
Dependency(Module("org.gnu", "glib"), "13.4"),
|
||||
Dependency(Module("org.gnome", "desktop"), "7.0"))
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -368,8 +365,7 @@ object ResolutionTests extends TestSuite {
|
||||
val trDeps = Seq(
|
||||
Dependency(Module("gov.nsa", "secure-pgp"), "10.0", exclusions = Set(("*", "crypto"))))
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -384,8 +380,7 @@ object ResolutionTests extends TestSuite {
|
||||
async {
|
||||
val dep = Dependency(Module("com.thoughtworks.paranamer", "paranamer"), "2.6")
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -402,8 +397,7 @@ object ResolutionTests extends TestSuite {
|
||||
val trDeps = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -422,8 +416,7 @@ object ResolutionTests extends TestSuite {
|
||||
val trDeps = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -444,8 +437,7 @@ object ResolutionTests extends TestSuite {
|
||||
val trDeps = Seq(
|
||||
Dependency(Module("org.escalier", "librairie-standard"), "2.11.6"))
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
Set(dep)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -466,7 +458,7 @@ object ResolutionTests extends TestSuite {
|
||||
Dependency(Module("an-org", "a-name"), "1.0", optional = true))
|
||||
val res = await(resolve0(
|
||||
Set(dep),
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
filter = Some(_ => true)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -489,7 +481,7 @@ object ResolutionTests extends TestSuite {
|
||||
Dependency(Module("an-org", "a-name"), "1.0", optional = true))
|
||||
val res = await(resolve0(
|
||||
deps,
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
filter = Some(_ => true)
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -511,8 +503,7 @@ object ResolutionTests extends TestSuite {
|
||||
|
||||
val res = await(resolve0(
|
||||
deps,
|
||||
forceVersions = depOverrides,
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
forceVersions = depOverrides
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -536,8 +527,7 @@ object ResolutionTests extends TestSuite {
|
||||
|
||||
val res = await(resolve0(
|
||||
deps,
|
||||
forceVersions = depOverrides,
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
forceVersions = depOverrides
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -563,8 +553,7 @@ object ResolutionTests extends TestSuite {
|
||||
|
||||
val res = await(resolve0(
|
||||
deps,
|
||||
forceVersions = depOverrides,
|
||||
filter = Some(_.scope == Scope.Compile)
|
||||
forceVersions = depOverrides
|
||||
)).copy(filter = None, projectCache = Map.empty, errorCache = Map.empty)
|
||||
|
||||
val expected = Resolution(
|
||||
@@ -585,9 +574,9 @@ object ResolutionTests extends TestSuite {
|
||||
'propertySubstitution{
|
||||
val res =
|
||||
core.Resolution.withProperties(
|
||||
Seq(Dependency(Module("a-company", "a-name"), "${a.property}")),
|
||||
Seq("" -> Dependency(Module("a-company", "a-name"), "${a.property}")),
|
||||
Map("a.property" -> "a-version"))
|
||||
val expected = Seq(Dependency(Module("a-company", "a-name"), "a-version"))
|
||||
val expected = Seq("" -> Dependency(Module("a-company", "a-name"), "a-version"))
|
||||
|
||||
assert(res == expected)
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package coursier
|
||||
package object test {
|
||||
|
||||
implicit class DependencyOps(val underlying: Dependency) extends AnyVal {
|
||||
def withCompileScope: Dependency = underlying.copy(scope = Scope.Compile)
|
||||
def withCompileScope: Dependency = underlying.copy(configuration = "compile")
|
||||
}
|
||||
|
||||
object Profile {
|
||||
@@ -16,8 +16,8 @@ package object test {
|
||||
def apply(id: String,
|
||||
activeByDefault: Option[Boolean] = None,
|
||||
activation: Activation = Activation(),
|
||||
dependencies: Seq[Dependency] = Nil,
|
||||
dependencyManagement: Seq[Dependency] = Nil,
|
||||
dependencies: Seq[(String, Dependency)] = Nil,
|
||||
dependencyManagement: Seq[(String, Dependency)] = Nil,
|
||||
properties: Map[String, String] = Map.empty) =
|
||||
core.Profile(id, activeByDefault, activation, dependencies, dependencyManagement, properties)
|
||||
}
|
||||
@@ -25,13 +25,15 @@ package object test {
|
||||
object Project {
|
||||
def apply(module: Module,
|
||||
version: String,
|
||||
dependencies: Seq[Dependency] = Seq.empty,
|
||||
dependencies: Seq[(String, Dependency)] = Seq.empty,
|
||||
parent: Option[ModuleVersion] = None,
|
||||
dependencyManagement: Seq[Dependency] = Seq.empty,
|
||||
dependencyManagement: Seq[(String, Dependency)] = Seq.empty,
|
||||
configurations: Map[String, Seq[String]] = Map.empty,
|
||||
properties: Map[String, String] = Map.empty,
|
||||
profiles: Seq[Profile] = Seq.empty,
|
||||
versions: Option[core.Versions] = None,
|
||||
snapshotVersioning: Option[core.SnapshotVersioning] = None): Project =
|
||||
core.Project(module, version, dependencies, parent, dependencyManagement, properties, profiles, versions, snapshotVersioning)
|
||||
snapshotVersioning: Option[core.SnapshotVersioning] = None
|
||||
): Project =
|
||||
core.Project(module, version, dependencies, parent, dependencyManagement, configurations, properties, profiles, versions, snapshotVersioning)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user