mirror of https://github.com/sbt/sbt.git
Merge pull request #712 from coursier/topic/update-report-exclusions
Write exclusions and transitiveness in sbt update reports, add sbt-shared module
This commit is contained in:
commit
617fe5cc3d
|
|
@ -18,8 +18,8 @@ build_script:
|
||||||
- sbt ++2.11.11 clean compile coreJVM/publishLocal cli/publishLocal
|
- sbt ++2.11.11 clean compile coreJVM/publishLocal cli/publishLocal
|
||||||
- sbt ++2.12.4 http-server/publishLocal
|
- sbt ++2.12.4 http-server/publishLocal
|
||||||
- sbt ++2.10.6 clean compile
|
- sbt ++2.10.6 clean compile
|
||||||
- sbt ++2.12.4 coreJVM/publishLocal cache/publishLocal extra/publishLocal # to make the scripted sbt 1.0 tests happy
|
- sbt ++2.12.4 coreJVM/publishLocal cache/publishLocal extra/publishLocal sbt-shared/publishLocal # to make the scripted sbt 1.0 tests happy
|
||||||
- sbt ++2.10.6 coreJVM/publishLocal cache/publishLocal extra/publishLocal # to make the scripted sbt 0.13 tests happy
|
- sbt ++2.10.6 coreJVM/publishLocal cache/publishLocal extra/publishLocal sbt-shared/publishLocal # to make the scripted sbt 0.13 tests happy
|
||||||
test_script:
|
test_script:
|
||||||
- ps: Start-Job -filepath .\scripts\start-it-auth-server.ps1 -ArgumentList $pwd
|
- ps: Start-Job -filepath .\scripts\start-it-auth-server.ps1 -ArgumentList $pwd
|
||||||
- ps: Start-Sleep -s 15 # wait for the first server to have downloaded its dependencies
|
- ps: Start-Sleep -s 15 # wait for the first server to have downloaded its dependencies
|
||||||
|
|
|
||||||
12
build.sbt
12
build.sbt
|
|
@ -217,8 +217,15 @@ lazy val doc = project
|
||||||
tutTargetDirectory := baseDirectory.in(LocalRootProject).value
|
tutTargetDirectory := baseDirectory.in(LocalRootProject).value
|
||||||
)
|
)
|
||||||
|
|
||||||
|
lazy val `sbt-shared` = project
|
||||||
|
.dependsOn(coreJvm, cache)
|
||||||
|
.settings(
|
||||||
|
plugin,
|
||||||
|
utest
|
||||||
|
)
|
||||||
|
|
||||||
lazy val `sbt-coursier` = project
|
lazy val `sbt-coursier` = project
|
||||||
.dependsOn(coreJvm, cache, extra)
|
.dependsOn(coreJvm, cache, extra, `sbt-shared`)
|
||||||
.settings(
|
.settings(
|
||||||
plugin,
|
plugin,
|
||||||
utest
|
utest
|
||||||
|
|
@ -307,6 +314,7 @@ lazy val jvm = project
|
||||||
bootstrap,
|
bootstrap,
|
||||||
extra,
|
extra,
|
||||||
cli,
|
cli,
|
||||||
|
`sbt-shared`,
|
||||||
`sbt-coursier`,
|
`sbt-coursier`,
|
||||||
`sbt-pgp-coursier`,
|
`sbt-pgp-coursier`,
|
||||||
`sbt-shading`,
|
`sbt-shading`,
|
||||||
|
|
@ -343,6 +351,7 @@ lazy val `sbt-plugins` = project
|
||||||
coreJvm,
|
coreJvm,
|
||||||
cache,
|
cache,
|
||||||
extra,
|
extra,
|
||||||
|
`sbt-shared`,
|
||||||
`sbt-coursier`,
|
`sbt-coursier`,
|
||||||
`sbt-pgp-coursier`,
|
`sbt-pgp-coursier`,
|
||||||
`sbt-shading`
|
`sbt-shading`
|
||||||
|
|
@ -366,6 +375,7 @@ lazy val coursier = project
|
||||||
bootstrap,
|
bootstrap,
|
||||||
extra,
|
extra,
|
||||||
cli,
|
cli,
|
||||||
|
`sbt-shared`,
|
||||||
`sbt-coursier`,
|
`sbt-coursier`,
|
||||||
`sbt-pgp-coursier`,
|
`sbt-pgp-coursier`,
|
||||||
`sbt-shading`,
|
`sbt-shading`,
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,9 @@ object Settings {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val sbt013Version = "0.13.8"
|
||||||
|
val sbt10Version = "1.0.2"
|
||||||
|
|
||||||
lazy val plugin =
|
lazy val plugin =
|
||||||
javaScalaPluginShared ++
|
javaScalaPluginShared ++
|
||||||
divertThingsPlugin ++
|
divertThingsPlugin ++
|
||||||
|
|
@ -205,8 +208,8 @@ object Settings {
|
||||||
scalaVersion := appConfiguration.value.provider.scalaProvider.version, // required with sbt 0.13.16-M1, to avoid cyclic references
|
scalaVersion := appConfiguration.value.provider.scalaProvider.version, // required with sbt 0.13.16-M1, to avoid cyclic references
|
||||||
sbtVersion := {
|
sbtVersion := {
|
||||||
scalaBinaryVersion.value match {
|
scalaBinaryVersion.value match {
|
||||||
case "2.10" => "0.13.8"
|
case "2.10" => sbt013Version
|
||||||
case "2.12" => "1.0.2"
|
case "2.12" => sbt10Version
|
||||||
case _ => sbtVersion.value
|
case _ => sbtVersion.value
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
|
||||||
|
import Compatibility._
|
||||||
|
|
||||||
|
lazy val noJbossInterceptorCheck = TaskKey[Unit]("noJbossInterceptorCheck")
|
||||||
|
|
||||||
|
noJbossInterceptorCheck := {
|
||||||
|
|
||||||
|
val log = streams.value.log
|
||||||
|
|
||||||
|
val configReport = updateSbtClassifiers.value
|
||||||
|
.configuration(Default)
|
||||||
|
.getOrElse {
|
||||||
|
throw new Exception(
|
||||||
|
"compile configuration not found in update report"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val artifacts = configReport
|
||||||
|
.modules
|
||||||
|
.flatMap(_.artifacts)
|
||||||
|
.map(_._1)
|
||||||
|
|
||||||
|
val jbossInterceptorArtifacts = artifacts
|
||||||
|
.filter { a =>
|
||||||
|
a.name.contains("jboss-interceptor")
|
||||||
|
}
|
||||||
|
|
||||||
|
for (a <- jbossInterceptorArtifacts)
|
||||||
|
log.error(s"Found jboss-interceptor artifact $a")
|
||||||
|
|
||||||
|
assert(jbossInterceptorArtifacts.isEmpty)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
val pluginVersion = sys.props.getOrElse(
|
||||||
|
"plugin.version",
|
||||||
|
throw new RuntimeException(
|
||||||
|
"""|The system property 'plugin.version' is not defined.
|
||||||
|
|Specify this property using the scriptedLaunchOpts -D.""".stripMargin
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
addSbtPlugin("io.get-coursier" % "sbt-coursier" % pluginVersion)
|
||||||
|
}
|
||||||
|
|
||||||
|
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.14.6")
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
val pluginVersion = sys.props.getOrElse(
|
||||||
|
"plugin.version",
|
||||||
|
throw new RuntimeException(
|
||||||
|
"""|The system property 'plugin.version' is not defined.
|
||||||
|
|Specify this property using the scriptedLaunchOpts -D.""".stripMargin
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
addSbtPlugin("io.get-coursier" % "sbt-coursier" % pluginVersion)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
object Compatibility {
|
||||||
|
|
||||||
|
implicit class UpdateReportOps(val rep: sbt.UpdateReport) extends AnyVal {
|
||||||
|
def configuration(conf: sbt.Configuration) =
|
||||||
|
rep.configuration(conf.name)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
object Compatibility
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
> noJbossInterceptorCheck
|
||||||
|
|
@ -23,6 +23,10 @@ object SbtCompatibility {
|
||||||
id.copy(configurations = configurations)
|
id.copy(configurations = configurations)
|
||||||
def withExtraAttributes(extraAttributes: Map[String, String]): sbt.ModuleID =
|
def withExtraAttributes(extraAttributes: Map[String, String]): sbt.ModuleID =
|
||||||
id.copy(extraAttributes = extraAttributes)
|
id.copy(extraAttributes = extraAttributes)
|
||||||
|
def withExclusions(exclusions: Seq[sbt.librarymanagement.InclExclRule]): sbt.ModuleID =
|
||||||
|
exclusions.foldLeft(id)((id0, rule) => id0.exclude(rule.org, rule.name))
|
||||||
|
def withIsTransitive(isTransitive: Boolean): sbt.ModuleID =
|
||||||
|
id.copy(isTransitive = isTransitive)
|
||||||
}
|
}
|
||||||
|
|
||||||
implicit class ArtifactOps(val artifact: sbt.Artifact) extends AnyVal {
|
implicit class ArtifactOps(val artifact: sbt.Artifact) extends AnyVal {
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
package sbt.librarymanagement
|
||||||
|
|
||||||
|
final case class InclExclRule(org: String = "*", name: String = "*") {
|
||||||
|
def withOrganization(org: String): InclExclRule =
|
||||||
|
copy(org = org)
|
||||||
|
def withName(name: String): InclExclRule =
|
||||||
|
copy(name = name)
|
||||||
|
}
|
||||||
|
|
@ -33,6 +33,18 @@ object ToSbt {
|
||||||
Some(dependency.configuration)
|
Some(dependency.configuration)
|
||||||
).withExtraAttributes(
|
).withExtraAttributes(
|
||||||
dependency.module.attributes ++ extraProperties
|
dependency.module.attributes ++ extraProperties
|
||||||
|
).withExclusions(
|
||||||
|
dependency
|
||||||
|
.exclusions
|
||||||
|
.toVector
|
||||||
|
.map {
|
||||||
|
case (org, name) =>
|
||||||
|
sbt.librarymanagement.InclExclRule()
|
||||||
|
.withOrganization(org)
|
||||||
|
.withName(name)
|
||||||
|
}
|
||||||
|
).withIsTransitive(
|
||||||
|
dependency.transitive
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ runSbtCoursierTests() {
|
||||||
}
|
}
|
||||||
|
|
||||||
runSbtShadingTests() {
|
runSbtShadingTests() {
|
||||||
sbt ++$SCALA_VERSION coreJVM/publishLocal cache/publishLocal extra/publishLocal sbt-coursier/publishLocal "sbt-shading/scripted sbt-shading/*"
|
sbt ++$SCALA_VERSION coreJVM/publishLocal cache/publishLocal extra/publishLocal sbt-shared/publishLocal sbt-coursier/publishLocal "sbt-shading/scripted sbt-shading/*"
|
||||||
if [ "$SCALA_VERSION" = "2.10" ]; then
|
if [ "$SCALA_VERSION" = "2.10" ]; then
|
||||||
sbt ++$SCALA_VERSION "sbt-shading/scripted sbt-shading-0.13/*"
|
sbt ++$SCALA_VERSION "sbt-shading/scripted sbt-shading-0.13/*"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue