From 261aebcfa2c0b057da3d164b826523c865cc44d3 Mon Sep 17 00:00:00 2001 From: Alexandre Archambault Date: Tue, 11 Apr 2017 15:10:04 +0200 Subject: [PATCH] Ensure unidoc generation works fine with sbt-coursier --- .../src/main/scala-2.10/coursier/ToSbt.scala | 16 ++++++++-------- .../src/sbt-test/sbt-coursier/unidoc/build.sbt | 5 +++++ .../sbt-coursier/unidoc/project/plugins.sbt | 13 +++++++++++++ .../sbt-coursier/unidoc/src/main/scala/Foo.scala | 3 +++ .../src/sbt-test/sbt-coursier/unidoc/test | 1 + 5 files changed, 30 insertions(+), 8 deletions(-) create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/unidoc/build.sbt create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/unidoc/project/plugins.sbt create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/unidoc/src/main/scala/Foo.scala create mode 100644 sbt-coursier/src/sbt-test/sbt-coursier/unidoc/test diff --git a/sbt-coursier/src/main/scala-2.10/coursier/ToSbt.scala b/sbt-coursier/src/main/scala-2.10/coursier/ToSbt.scala index a4a401e62..5e3e5e33e 100644 --- a/sbt-coursier/src/main/scala-2.10/coursier/ToSbt.scala +++ b/sbt-coursier/src/main/scala-2.10/coursier/ToSbt.scala @@ -8,16 +8,16 @@ import sbt._ object ToSbt { - def moduleId(dependency: Dependency): sbt.ModuleID = + def moduleId(dependency: Dependency, extraProperties: Seq[(String, String)]): sbt.ModuleID = sbt.ModuleID( dependency.module.organization, dependency.module.name, dependency.version, configurations = Some(dependency.configuration), - extraAttributes = dependency.module.attributes + extraAttributes = dependency.module.attributes ++ extraProperties ) - def artifact(module: Module, artifact: Artifact): sbt.Artifact = + def artifact(module: Module, artifact: Artifact, extraProperties: Seq[(String, String)]): sbt.Artifact = sbt.Artifact( module.name, // FIXME Get these two from publications @@ -28,7 +28,7 @@ object ToSbt { .orElse(MavenSource.typeDefaultClassifierOpt(artifact.attributes.`type`)), Nil, Some(url(artifact.url)), - Map.empty + module.attributes ++ extraProperties ) def moduleReport( @@ -40,11 +40,11 @@ object ToSbt { val sbtArtifacts = artifacts.collect { case (artifact, Some(file)) => - (ToSbt.artifact(dependency.module, artifact), file) + (ToSbt.artifact(dependency.module, artifact, project.properties), file) } val sbtMissingArtifacts = artifacts.collect { case (artifact, None) => - ToSbt.artifact(dependency.module, artifact) + ToSbt.artifact(dependency.module, artifact, project.properties) } val publicationDate = project.info.publication.map { dt => @@ -54,7 +54,7 @@ object ToSbt { val callers = dependees.map { case (dependee, dependeeProj) => new Caller( - ToSbt.moduleId(dependee), + ToSbt.moduleId(dependee, dependeeProj.properties), dependeeProj.configurations.keys.toVector, dependee.module.attributes ++ dependeeProj.properties, // FIXME Set better values here @@ -66,7 +66,7 @@ object ToSbt { } new sbt.ModuleReport( - module = ToSbt.moduleId(dependency), + module = ToSbt.moduleId(dependency, project.properties), artifacts = sbtArtifacts, missingArtifacts = sbtMissingArtifacts, status = None, diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/build.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/build.sbt new file mode 100644 index 000000000..3aa46422f --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/build.sbt @@ -0,0 +1,5 @@ +scalaVersion := "2.12.1" +scalacOptions += "-Xfatal-warnings" // required for the test + +enablePlugins(ScalaUnidocPlugin) +autoAPIMappings := true diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/project/plugins.sbt b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/project/plugins.sbt new file mode 100644 index 000000000..debe75f50 --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/project/plugins.sbt @@ -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-unidoc" % "0.4.0") diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/src/main/scala/Foo.scala b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/src/main/scala/Foo.scala new file mode 100644 index 000000000..b5ba8323e --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/src/main/scala/Foo.scala @@ -0,0 +1,3 @@ + +/** Default instances for Scala's [[scala.concurrent.Future Future]]. */ +class Foo diff --git a/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/test b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/test new file mode 100644 index 000000000..7439923b4 --- /dev/null +++ b/sbt-coursier/src/sbt-test/sbt-coursier/unidoc/test @@ -0,0 +1 @@ +> unidoc