diff --git a/notes/0.7.2.markdown b/notes/0.7.2.markdown new file mode 100644 index 000000000..da96a4007 --- /dev/null +++ b/notes/0.7.2.markdown @@ -0,0 +1,5 @@ +This is a maintenance release. Following issues have been fixed: + + * [#27](https://github.com/jrudolph/sbt-dependency-graph/issues/27): A dependency configured with + a version range was not properly associated with its dependant. + diff --git a/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala b/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala index 88fabf91e..f9aa49eaa 100644 --- a/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala +++ b/src/main/scala/net/virtualvoid/sbt/graph/IvyGraphMLDependencies.scala @@ -70,9 +70,9 @@ object IvyGraphMLDependencies extends App { buildGraph(buildDoc(ivyReportFile)) def buildGraph(doc: Document): ModuleGraph = { - def edgesForModule(id: ModuleId, revision: NodeSeq, rev: String): Seq[Edge] = + def edgesForModule(id: ModuleId, revision: NodeSeq): Seq[Edge] = for { - caller <- revision \ "caller" if caller.attribute("rev").get.text == rev + caller <- revision \ "caller" callerModule = moduleIdFromElement(caller, caller.attribute("callerrev").get.text) } yield (moduleIdFromElement(caller, caller.attribute("callerrev").get.text), id) @@ -85,7 +85,7 @@ object IvyGraphMLDependencies extends App { (revision \ "license").headOption.flatMap(_.attribute("name")).map(_.text), evictedByVersion = (revision \ "evicted-by").headOption.flatMap(_.attribute("rev").map(_.text)), error = revision.attribute("error").map(_.text)) - } yield (module, edgesForModule(moduleId, revision, rev)) + } yield (module, edgesForModule(moduleId, revision)) val (nodes, edges) = moduleEdges.unzip diff --git a/src/sbt-test/sbt-dependency-graph/ignoreScalaLibrary/build.sbt b/src/sbt-test/sbt-dependency-graph/ignoreScalaLibrary/build.sbt index 8242b5850..025703043 100644 --- a/src/sbt-test/sbt-dependency-graph/ignoreScalaLibrary/build.sbt +++ b/src/sbt-test/sbt-dependency-graph/ignoreScalaLibrary/build.sbt @@ -16,6 +16,7 @@ TaskKey[Unit]("check") <<= (ivyReport in Test, asciiTree in Test) map { (report, | +-ch.qos.logback:logback-classic:1.0.7 | | +-ch.qos.logback:logback-core:1.0.7 | | +-org.slf4j:slf4j-api:1.6.6 (evicted by: 1.7.2) + | | +-org.slf4j:slf4j-api:1.7.2 | | | +-org.slf4j:slf4j-api:1.7.2 | """.stripMargin diff --git a/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/build.sbt b/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/build.sbt new file mode 100644 index 000000000..19030bcf6 --- /dev/null +++ b/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/build.sbt @@ -0,0 +1,24 @@ +import net.virtualvoid.sbt.graph.Plugin._ + +graphSettings + +scalaVersion := "2.9.2" + +libraryDependencies ++= Seq( + "com.codahale" % "jerkson_2.9.1" % "0.5.0" +) + +TaskKey[Unit]("check") <<= (ivyReport in Test, asciiTree in Test) map { (report, graph) => + def sanitize(str: String): String = str.split('\n').drop(1).map(_.trim).mkString("\n") + val expectedGraph = + """default:default-dbc48d_2.9.2:0.1-SNAPSHOT [S] + | +-com.codahale:jerkson_2.9.1:0.5.0 [S] + | +-org.codehaus.jackson:jackson-core-asl:1.9.12 + | +-org.codehaus.jackson:jackson-mapper-asl:1.9.12 + | +-org.codehaus.jackson:jackson-core-asl:1.9.12 + | """.stripMargin + IO.writeLines(file("/tmp/blib"), sanitize(graph).split("\n")) + IO.writeLines(file("/tmp/blub"), sanitize(expectedGraph).split("\n")) + require(sanitize(graph) == sanitize(expectedGraph), "Graph for report %s was '\n%s' but should have been '\n%s'" format (report, sanitize(graph), sanitize(expectedGraph))) + () +} diff --git a/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/project/plugins.sbt b/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/project/plugins.sbt new file mode 100644 index 000000000..6edc33a27 --- /dev/null +++ b/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/project/plugins.sbt @@ -0,0 +1 @@ +addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.2-SNAPSHOT") diff --git a/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/test b/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/test new file mode 100644 index 000000000..a5912a391 --- /dev/null +++ b/src/sbt-test/sbt-dependency-graph/intervalRangedVersions/test @@ -0,0 +1 @@ +> check \ No newline at end of file diff --git a/src/sbt-test/sbt-dependency-graph/plugins.sbt b/src/sbt-test/sbt-dependency-graph/plugins.sbt index 33a40a085..6edc33a27 100644 --- a/src/sbt-test/sbt-dependency-graph/plugins.sbt +++ b/src/sbt-test/sbt-dependency-graph/plugins.sbt @@ -1 +1 @@ -addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.1-SNAPSHOT") \ No newline at end of file +addSbtPlugin("net.virtual-void" % "sbt-dependency-graph" % "0.7.2-SNAPSHOT")