aboutsummaryrefslogtreecommitdiff
path: root/docs/_plugins
diff options
context:
space:
mode:
authorMatei Zaharia <matei@databricks.com>2014-04-21 21:57:40 -0700
committerPatrick Wendell <pwendell@gmail.com>2014-04-21 21:57:40 -0700
commitfc7838470465474f777bd17791c1bb5f9c348521 (patch)
tree6809dfd66ebafa6dced2018585a3a1f9ba270d53 /docs/_plugins
parent04c37b6f749dc2418cc28c89964cdc687dfcbd51 (diff)
downloadspark-fc7838470465474f777bd17791c1bb5f9c348521.tar.gz
spark-fc7838470465474f777bd17791c1bb5f9c348521.tar.bz2
spark-fc7838470465474f777bd17791c1bb5f9c348521.zip
[SPARK-1439, SPARK-1440] Generate unified Scaladoc across projects and Javadocs
I used the sbt-unidoc plugin (https://github.com/sbt/sbt-unidoc) to create a unified Scaladoc of our public packages, and generate Javadocs as well. One limitation is that I haven't found an easy way to exclude packages in the Javadoc; there is a SBT task that identifies Java sources to run javadoc on, but it's been very difficult to modify it from outside to change what is set in the unidoc package. Some SBT-savvy people should help with this. The Javadoc site also lacks package-level descriptions and things like that, so we may want to look into that. We may decide not to post these right now if it's too limited compared to the Scala one. Example of the built doc site: http://people.csail.mit.edu/matei/spark-unified-docs/ Author: Matei Zaharia <matei@databricks.com> This patch had conflicts when merged, resolved by Committer: Patrick Wendell <pwendell@gmail.com> Closes #457 from mateiz/better-docs and squashes the following commits: a63d4a3 [Matei Zaharia] Skip Java/Scala API docs for Python package 5ea1f43 [Matei Zaharia] Fix links to Java classes in Java guide, fix some JS for scrolling to anchors on page load f05abc0 [Matei Zaharia] Don't include java.lang package names 995e992 [Matei Zaharia] Skip internal packages and class names with $ in JavaDoc a14a93c [Matei Zaharia] typo 76ce64d [Matei Zaharia] Add groups to Javadoc index page, and a first package-info.java ed6f994 [Matei Zaharia] Generate JavaDoc as well, add titles, update doc site to use unified docs acb993d [Matei Zaharia] Add Unidoc plugin for the projects we want Unidoced
Diffstat (limited to 'docs/_plugins')
-rw-r--r--docs/_plugins/copy_api_dirs.rb65
1 files changed, 33 insertions, 32 deletions
diff --git a/docs/_plugins/copy_api_dirs.rb b/docs/_plugins/copy_api_dirs.rb
index 05f0bd47a8..2dbbbf6feb 100644
--- a/docs/_plugins/copy_api_dirs.rb
+++ b/docs/_plugins/copy_api_dirs.rb
@@ -20,47 +20,48 @@ include FileUtils
if not (ENV['SKIP_API'] == '1' or ENV['SKIP_SCALADOC'] == '1')
# Build Scaladoc for Java/Scala
- core_projects = ["core", "examples", "repl", "bagel", "graphx", "streaming", "mllib"]
- external_projects = ["flume", "kafka", "mqtt", "twitter", "zeromq"]
- sql_projects = ["catalyst", "core", "hive"]
- projects = core_projects
- projects = projects + external_projects.map { |project_name| "external/" + project_name }
- projects = projects + sql_projects.map { |project_name| "sql/" + project_name }
-
- puts "Moving to project root and building scaladoc."
+ puts "Moving to project root and building API docs."
curr_dir = pwd
cd("..")
- puts "Running 'sbt/sbt doc hive/doc' from " + pwd + "; this may take a few minutes..."
- puts `sbt/sbt doc hive/doc`
+ puts "Running 'sbt/sbt compile unidoc' from " + pwd + "; this may take a few minutes..."
+ puts `sbt/sbt compile unidoc`
puts "Moving back into docs dir."
cd("docs")
- # Copy over the scaladoc from each project into the docs directory.
+ # Copy over the unified ScalaDoc for all projects to api/scala.
# This directory will be copied over to _site when `jekyll` command is run.
- projects.each do |project_name|
- source = "../" + project_name + "/target/scala-2.10/api"
- dest = "api/" + project_name
+ source = "../target/scala-2.10/unidoc"
+ dest = "api/scala"
+
+ puts "Making directory " + dest
+ mkdir_p dest
+
+ # From the rubydoc: cp_r('src', 'dest') makes src/dest, but this doesn't.
+ puts "cp -r " + source + "/. " + dest
+ cp_r(source + "/.", dest)
+
+ # Append custom JavaScript
+ js = File.readlines("./js/api-docs.js")
+ js_file = dest + "/lib/template.js"
+ File.open(js_file, 'a') { |f| f.write("\n" + js.join()) }
- puts "making directory " + dest
- mkdir_p dest
+ # Append custom CSS
+ css = File.readlines("./css/api-docs.css")
+ css_file = dest + "/lib/template.css"
+ File.open(css_file, 'a') { |f| f.write("\n" + css.join()) }
- # From the rubydoc: cp_r('src', 'dest') makes src/dest, but this doesn't.
- puts "cp -r " + source + "/. " + dest
- cp_r(source + "/.", dest)
+ # Copy over the unified JavaDoc for all projects to api/java.
+ source = "../target/javaunidoc"
+ dest = "api/java"
- # Append custom JavaScript
- js = File.readlines("./js/api-docs.js")
- js_file = dest + "/lib/template.js"
- File.open(js_file, 'a') { |f| f.write("\n" + js.join()) }
+ puts "Making directory " + dest
+ mkdir_p dest
- # Append custom CSS
- css = File.readlines("./css/api-docs.css")
- css_file = dest + "/lib/template.css"
- File.open(css_file, 'a') { |f| f.write("\n" + css.join()) }
- end
+ puts "cp -r " + source + "/. " + dest
+ cp_r(source + "/.", dest)
# Build Epydoc for Python
puts "Moving to python directory and building epydoc."
@@ -70,11 +71,11 @@ if not (ENV['SKIP_API'] == '1' or ENV['SKIP_SCALADOC'] == '1')
puts "Moving back into docs dir."
cd("../docs")
- puts "echo making directory pyspark"
- mkdir_p "pyspark"
+ puts "Making directory api/python"
+ mkdir_p "api/python"
- puts "cp -r ../python/docs/. api/pyspark"
- cp_r("../python/docs/.", "api/pyspark")
+ puts "cp -r ../python/docs/. api/python"
+ cp_r("../python/docs/.", "api/python")
cd("..")
end