aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
authorHolden Karau <holden@us.ibm.com>2016-02-12 02:13:06 -0800
committerXiangrui Meng <meng@databricks.com>2016-02-12 02:13:06 -0800
commit64515e5fbfd694d06fdbc28040fce7baf90a32aa (patch)
treea32964b46a055cb373d240b1980b04fdf58e3b5c /dev
parenta183dda6ab597e5b7ead58bbaa696f836b16e524 (diff)
downloadspark-64515e5fbfd694d06fdbc28040fce7baf90a32aa.tar.gz
spark-64515e5fbfd694d06fdbc28040fce7baf90a32aa.tar.bz2
spark-64515e5fbfd694d06fdbc28040fce7baf90a32aa.zip
[SPARK-13154][PYTHON] Add linting for pydocs
We should have lint rules using sphinx to automatically catch the pydoc issues that are sometimes introduced. Right now ./dev/lint-python will skip building the docs if sphinx isn't present - but it might make sense to fail hard - just a matter of if we want to insist all PySpark developers have sphinx present. Author: Holden Karau <holden@us.ibm.com> Closes #11109 from holdenk/SPARK-13154-add-pydoc-lint-for-docs.
Diffstat (limited to 'dev')
-rwxr-xr-xdev/lint-python24
1 files changed, 24 insertions, 0 deletions
diff --git a/dev/lint-python b/dev/lint-python
index 1765a07d2f..068337d273 100755
--- a/dev/lint-python
+++ b/dev/lint-python
@@ -24,6 +24,8 @@ PATHS_TO_CHECK="$PATHS_TO_CHECK ./dev/run-tests.py ./python/run-tests.py ./dev/r
PEP8_REPORT_PATH="$SPARK_ROOT_DIR/dev/pep8-report.txt"
PYLINT_REPORT_PATH="$SPARK_ROOT_DIR/dev/pylint-report.txt"
PYLINT_INSTALL_INFO="$SPARK_ROOT_DIR/dev/pylint-info.txt"
+SPHINXBUILD=${SPHINXBUILD:=sphinx-build}
+SPHINX_REPORT_PATH="$SPARK_ROOT_DIR/dev/sphinx-report.txt"
cd "$SPARK_ROOT_DIR"
@@ -96,6 +98,28 @@ fi
rm "$PEP8_REPORT_PATH"
+# Check that the documentation builds acceptably, skip check if sphinx is not installed.
+if hash "$SPHINXBUILD" 2> /dev/null; then
+ cd python/docs
+ make clean
+ # Treat warnings as errors so we stop correctly
+ SPHINXOPTS="-a -W" make html &> "$SPHINX_REPORT_PATH" || lint_status=1
+ if [ "$lint_status" -ne 0 ]; then
+ echo "pydoc checks failed."
+ cat "$SPHINX_REPORT_PATH"
+ echo "re-running make html to print full warning list"
+ make clean
+ SPHINXOPTS="-a" make html
+ else
+ echo "pydoc checks passed."
+ fi
+ rm "$SPHINX_REPORT_PATH"
+ cd ../..
+else
+ echo >&2 "The $SPHINXBUILD command was not found. Skipping pydoc checks for now"
+fi
+
+
# for to_be_checked in "$PATHS_TO_CHECK"
# do
# pylint --rcfile="$SPARK_ROOT_DIR/pylintrc" $to_be_checked >> "$PYLINT_REPORT_PATH"