blob: 84cc3f71803d5bf72479e0c9e6a96c719e46d030 [file]
#!/bin/bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
set -e
rm -rf build 2> /dev/null
rm -rf temp 2> /dev/null
mkdir temp
cp -rf source/* temp/
# Add user guide from published releases
rm -rf comet-0.13
rm -rf comet-0.14
rm -rf comet-0.15
rm -rf comet-0.16
python3 generate-versions.py
# Generate dynamic content (configs, compatibility matrices) for latest docs
# This runs GenerateDocs against the temp copy, not source files. Each supported Spark
# profile gets its own copy of the compatibility/expressions templates so that the
# generated content can differ per Spark version (some expressions are only registered
# through version-specific shims).
echo "Generating dynamic documentation content..."
cd ..
LATEST_USER_GUIDE="$(pwd)/docs/temp/user-guide/latest"
COMPAT_EXPR_DIR="${LATEST_USER_GUIDE}/compatibility/expressions"
TEMPLATE_DIR="${COMPAT_EXPR_DIR}/_category_template"
# Spark profiles for which we publish per-version compatibility pages. Add or remove
# entries here when adding/dropping support for a Spark version. Each entry must match
# both a Maven profile id (-P<profile>) and a source-tree subdirectory under
# docs/source/user-guide/latest/compatibility/expressions/.
SPARK_PROFILES=(spark-3.4 spark-3.5 spark-4.0 spark-4.1)
for profile in "${SPARK_PROFILES[@]}"; do
echo "Generating compatibility pages for ${profile}..."
mkdir -p "${COMPAT_EXPR_DIR}/${profile}"
cp "${TEMPLATE_DIR}"/*.md "${COMPAT_EXPR_DIR}/${profile}/"
./mvnw -q package -P${profile} -Pgenerate-docs -DskipTests -Dmaven.test.skip=true \
-Dexec.arguments="${LATEST_USER_GUIDE},${profile}"
done
# Templates aren't a real doc page; remove from the build input so Sphinx doesn't see them.
rm -rf "${TEMPLATE_DIR}"
cd docs
make SOURCEDIR=`pwd`/temp html