From ed775042cceb61a0566502e1306ac3c70f4a6a5f Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Fri, 16 Oct 2015 12:03:05 +0100 Subject: [SPARK-11092] [DOCS] Add source links to scaladoc generation Modify the SBT build script to include GitHub source links for generated Scaladocs, on releases only (no snapshots). Author: Jakob Odersky Closes #9110 from jodersky/unidoc. --- project/SparkBuild.scala | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/project/SparkBuild.scala b/project/SparkBuild.scala index 1339980c38..8f0f310ddd 100644 --- a/project/SparkBuild.scala +++ b/project/SparkBuild.scala @@ -156,6 +156,10 @@ object SparkBuild extends PomBuild { javacOptions in Compile ++= Seq("-encoding", "UTF-8"), + scalacOptions in Compile ++= Seq( + "-sourcepath", (baseDirectory in ThisBuild).value.getAbsolutePath // Required for relative source links in scaladoc + ), + // Implements -Xfatal-warnings, ignoring deprecation warnings. // Code snippet taken from https://issues.scala-lang.org/browse/SI-8410. compile in Compile := { @@ -489,6 +493,8 @@ object Unidoc { .map(_.filterNot(_.getCanonicalPath.contains("org/apache/spark/sql/hive/test"))) } + val unidocSourceBase = settingKey[String]("Base URL of source links in Scaladoc.") + lazy val settings = scalaJavaUnidocSettings ++ Seq ( publish := {}, @@ -531,8 +537,19 @@ object Unidoc { "-noqualifier", "java.lang" ), - // Group similar methods together based on the @group annotation. - scalacOptions in (ScalaUnidoc, unidoc) ++= Seq("-groups") + // Use GitHub repository for Scaladoc source linke + unidocSourceBase := s"https://github.com/apache/spark/tree/v${version.value}", + + scalacOptions in (ScalaUnidoc, unidoc) ++= Seq( + "-groups" // Group similar methods together based on the @group annotation. + ) ++ ( + // Add links to sources when generating Scaladoc for a non-snapshot release + if (!isSnapshot.value) { + Opts.doc.sourceUrl(unidocSourceBase.value + "€{FILE_PATH}.scala") + } else { + Seq() + } + ) ) } -- cgit v1.2.3