Don't write version intervals in update reports (#12)

This commit is contained in:
Alexandre Archambault 2018-11-29 17:01:40 +01:00 committed by GitHub
parent 0fcacffc6b
commit 3987ba9af6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 55 additions and 6 deletions

View File

@ -27,12 +27,12 @@ object ToSbt {
}
}
val moduleId = caching[(Dependency, Map[String, String]), ModuleID] {
case (dependency, extraProperties) =>
val moduleId = caching[(Dependency, String, Map[String, String]), ModuleID] {
case (dependency, version, extraProperties) =>
sbt.librarymanagement.ModuleID(
dependency.module.organization.value,
dependency.module.name.value,
dependency.version
version
).withConfigurations(
Some(dependency.configuration.value)
).withExtraAttributes(
@ -88,7 +88,7 @@ object ToSbt {
val callers = dependees.map {
case (dependee, dependeeProj) =>
Caller(
ToSbt.moduleId(dependee, dependeeProj.properties.toMap),
ToSbt.moduleId(dependee, dependeeProj.version, dependeeProj.properties.toMap),
dependeeProj.configurations.keys.toVector.map(c => ConfigRef(c.value)),
dependee.module.attributes ++ dependeeProj.properties,
// FIXME Set better values here
@ -100,7 +100,7 @@ object ToSbt {
}
ModuleReport(
ToSbt.moduleId(dependency, project.properties.toMap),
ToSbt.moduleId(dependency, project.version, project.properties.toMap),
sbtArtifacts.toVector,
sbtMissingArtifacts.toVector
)
@ -236,7 +236,7 @@ object ToSbt {
// appears first in the update report, see https://github.com/coursier/coursier/issues/650
val dep = subRes.rootDependencies.head
val (_, proj) = subRes.projectCache(dep.moduleVersion)
val mod = ToSbt.moduleId(dep, proj.properties.toMap)
val mod = ToSbt.moduleId(dep, proj.version, proj.properties.toMap)
val (main, other) = reports.partition { r =>
r.module.organization == mod.organization &&
r.module.name == mod.name &&

View File

@ -0,0 +1,35 @@
libraryDependencies += "org.json4s" %% "json4s-native" % "[3.3.0,3.5.0)"
lazy val actualVersionCheck = taskKey[Unit]("")
actualVersionCheck := {
val log = streams.value.log
val configReport = update.value
.configuration(Compile)
.getOrElse {
sys.error("compile configuration not found in update report")
}
val modules = configReport
.modules
.map(_.module)
assert(modules.nonEmpty)
assert(modules.exists(_.name.startsWith("json4s-native")))
val wrongModules = modules.filter { m =>
val v = m.revision
v.contains("[") || v.contains("]") || v.contains("(") || v.contains(")")
}
if (wrongModules.nonEmpty) {
log.error("Found unexpected intervals in revisions")
for (m <- wrongModules)
log.error(s" ${m.organization}:${m.name}:${m.revision}")
sys.error("Found intervals in revisions")
}
}

View File

@ -0,0 +1,13 @@
addSbtPlugin {
val name = sys.props.getOrElse(
"plugin.name",
sys.error("plugin.name Java property not set")
)
val version = sys.props.getOrElse(
"plugin.version",
sys.error("plugin.version Java property not set")
)
"io.get-coursier" % name % version
}

View File

@ -0,0 +1 @@
> actualVersionCheck