Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Carlisle <carlisle.b3d@gmail.com>2021-02-12 21:00:22 +0300
committerAaron Carlisle <carlisle.b3d@gmail.com>2021-02-12 21:14:43 +0300
commit95cba371903febe2f39a3c86eca264e0a688cd52 (patch)
tree3115859af2b48cbb7342a8fa9e33bae1ad1db770
parent432b758ae3d0fa623f7a728c11abdf8301213739 (diff)
Py Doc: Delete old deployment scripts
Now, the API docs are deployed via the new devops pipeline developed by James.
-rwxr-xr-xdoc/python_api/sphinx_doc_gen.sh156
-rwxr-xr-xdoc/python_api/sphinx_doc_update.py216
2 files changed, 0 insertions, 372 deletions
diff --git a/doc/python_api/sphinx_doc_gen.sh b/doc/python_api/sphinx_doc_gen.sh
deleted file mode 100755
index 26c3701f3e0..00000000000
--- a/doc/python_api/sphinx_doc_gen.sh
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/bin/sh
-# run from the blender source dir
-# bash doc/python_api/sphinx_doc_gen.sh
-# ssh upload means you need an account on the server
-
-# ----------------------------------------------------------------------------
-# Upload vars
-
-# disable for testing
-DO_UPLOAD=true
-DO_EXE_BLENDER=true
-DO_OUT_HTML=true
-DO_OUT_HTML_ZIP=true
-DO_OUT_PDF=false
-
-if [ -z $BLENDER_BIN ] ; then
- BLENDER_BIN="./blender.bin"
-fi
-
-if [ "$1" == "" ] ; then
- echo "Expected a single argument for the username on blender.org, skipping upload step!"
- DO_UPLOAD=false
-else
- SSH_USER=$1
- SSH_HOST=$SSH_USER"@blender.org"
- SSH_UPLOAD="/data/www/vhosts/www.blender.org/api" # blender_python_api_VERSION, added after
-fi
-
-
-# ----------------------------------------------------------------------------
-# Blender Version & Info
-
-# 'Blender 2.53 (sub 1) Build' --> '2_53_1' as a shell script.
-# "_".join(str(v) for v in bpy.app.version)
-# custom blender vars
-blender_srcdir=$(dirname -- $0)/../..
-blender_version_header="$blender_srcdir/source/blender/blenkernel/BKE_blender_version.h"
-blender_version=$(grep "BLENDER_VERSION\s" "$blender_version_header" | awk '{print $3}')
-blender_version_cycle=$(grep "BLENDER_VERSION_CYCLE\s" "$blender_version_header" | awk '{print $3}')
-unset blender_version_header
-
-BLENDER_VERSION=$(expr $blender_version / 100)_$(expr $blender_version % 100)
-
-SSH_UPLOAD_FULL=$SSH_UPLOAD/"blender_python_api_"$BLENDER_VERSION
-
-SPHINXBASE=doc/python_api
-
-SPHINX_WORKDIR="$(mktemp --directory --suffix=.sphinx)"
-
-
-# ----------------------------------------------------------------------------
-# Generate reStructuredText (blender/python only)
-
-if $DO_EXE_BLENDER ; then
- # Don't delete existing docs, now partial updates are used for quick builds.
- #
- # Disable ASAN error halt since it results in nonzero exit code on any minor issue.
- ASAN_OPTIONS=halt_on_error=0:${ASAN_OPTIONS} \
- $BLENDER_BIN \
- --background \
- -noaudio \
- --factory-startup \
- --python-exit-code 1 \
- --python $SPHINXBASE/sphinx_doc_gen.py \
- -- \
- --output=$SPHINX_WORKDIR
-
-
- if (($? != 0)) ; then
- echo "Generating documentation failed, aborting"
- exit 1
- fi
-fi
-
-# ----------------------------------------------------------------------------
-# Generate HTML (sphinx)
-
-if $DO_OUT_HTML ; then
- sphinx-build -b html -j auto $SPHINX_WORKDIR/sphinx-in $SPHINX_WORKDIR/sphinx-out
-
- # XXX, saves space on upload and zip, should move HTML outside
- # and zip up there, for now this is OK
- rm -rf sphinx-out/.doctrees
-
- # in case we have a zip already
- rm -f blender_python_reference_$BLENDER_VERSION.zip
-
- # ------------------------------------------------------------------------
- # ZIP the HTML dir for upload
-
- if $DO_OUT_HTML_ZIP ; then
- # lame, temp rename dir
- mv sphinx-out blender_python_reference_$BLENDER_VERSION
- zip -r -9 blender_python_reference_$BLENDER_VERSION.zip blender_python_reference_$BLENDER_VERSION
- mv blender_python_reference_$BLENDER_VERSION sphinx-out
- fi
-
- cd -
-fi
-
-
-# ----------------------------------------------------------------------------
-# Generate PDF (sphinx/laytex)
-
-if $DO_OUT_PDF ; then
- sphinx-build -n -b latex -j auto $SPHINX_WORKDIR/sphinx-in $SPHINX_WORKDIR/sphinx-out
- make -C $SPHINX_WORKDIR/sphinx-out
- mv $SPHINX_WORKDIR/sphinx-out/contents.pdf \
- $SPHINX_WORKDIR/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf
-fi
-
-# ----------------------------------------------------------------------------
-# Upload to blender servers, comment this section for testing
-
-if $DO_UPLOAD ; then
-
- ssh $SSH_USER@blender.org 'rm -rf '$SSH_UPLOAD_FULL'/*'
- rsync --progress -ave "ssh -p 22" $SPHINX_WORKDIR/sphinx-out/* $SSH_HOST:$SSH_UPLOAD_FULL/
-
- ## symlink the dir to a static URL
- #ssh $SSH_USER@blender.org 'rm '$SSH_UPLOAD'/250PythonDoc && ln -s '$SSH_UPLOAD_FULL' '$SSH_UPLOAD'/250PythonDoc'
- if [ "$blender_version_cycle" = "release" ] ; then
- ssh $SSH_USER@blender.org 'rm '$SSH_UPLOAD'/blender_python_api_current && ln -s '$SSH_UPLOAD_FULL' '$SSH_UPLOAD'/blender_python_api_current'
- fi
-
- # better redirect
- ssh $SSH_USER@blender.org 'echo "<html><head><title>Redirecting...</title><meta http-equiv=\"REFRESH\" content=\"0;url=../blender_python_api_'$BLENDER_VERSION'/\"></head><body>Redirecting...</body></html>" > '$SSH_UPLOAD'/250PythonDoc/index.html'
-
- # redirect for release only so wiki can point here
- if [ "$blender_version_cycle" = "release" ] ; then
- ssh $SSH_USER@blender.org 'echo "<html><head><title>Redirecting...</title><meta http-equiv=\"REFRESH\" content=\"0;url=../blender_python_api_'$BLENDER_VERSION'/\"></head><body>Redirecting...</body></html>" > '$SSH_UPLOAD'/blender_python_api/index.html'
- fi
-
- if $DO_OUT_PDF ; then
- # rename so local PDF has matching name.
- rsync --progress -ave "ssh -p 22" \
- $SPHINX_WORKDIR/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf \
- $SSH_HOST:$SSH_UPLOAD_FULL/blender_python_reference_$BLENDER_VERSION.pdf
- fi
-
- if $DO_OUT_HTML_ZIP ; then
- rsync --progress -ave "ssh -p 22" \
- $SPHINX_WORKDIR/blender_python_reference_$BLENDER_VERSION.zip \
- $SSH_HOST:$SSH_UPLOAD_FULL/blender_python_reference_$BLENDER_VERSION.zip
- fi
-
-fi
-
-
-# ----------------------------------------------------------------------------
-# Print some useful text
-
-echo ""
-echo "Finished! view the docs from: "
-if $DO_OUT_HTML ; then echo " html:" $SPHINX_WORKDIR/sphinx-out/index.html ; fi
-if $DO_OUT_PDF ; then echo " pdf:" $SPHINX_WORKDIR/sphinx-out/blender_python_reference_$BLENDER_VERSION.pdf ; fi
diff --git a/doc/python_api/sphinx_doc_update.py b/doc/python_api/sphinx_doc_update.py
deleted file mode 100755
index 71b49d4949d..00000000000
--- a/doc/python_api/sphinx_doc_update.py
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/usr/bin/env python3
-
-# ##### BEGIN GPL LICENSE BLOCK #####
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software Foundation,
-# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-# <pep8 compliant>
-
-"""
-This is a helper script to generate Blender Python API documentation (using Sphinx), and update server data using rsync.
-
-You'll need to specify your user login and password, obviously.
-
-Example usage:
-
- ./sphinx_doc_update.py --jobs 16 --mirror ../../../docs/remote_api_backup/ --source ../.. --blender ../../../build_cmake/bin/blender --user foobar --password barfoo
-
-"""
-
-import os
-import shutil
-import subprocess
-import sys
-import tempfile
-import zipfile
-
-
-DEFAULT_RSYNC_SERVER = "docs.blender.org"
-DEFAULT_RSYNC_ROOT = "/api/"
-DEFAULT_SYMLINK_ROOT = "/data/www/vhosts/docs.blender.org/api"
-
-
-def argparse_create():
- import argparse
- global __doc__
-
- # When --help or no args are given, print this help
- usage_text = __doc__
-
- parser = argparse.ArgumentParser(description=usage_text,
- formatter_class=argparse.RawDescriptionHelpFormatter)
-
- parser.add_argument(
- "--mirror", dest="mirror_dir",
- metavar='PATH', required=True,
- help="Path to local rsync mirror of api doc server")
- parser.add_argument(
- "--source", dest="source_dir",
- metavar='PATH', required=True,
- help="Path to Blender git repository")
- parser.add_argument(
- "--blender", dest="blender",
- metavar='PATH', required=True,
- help="Path to Blender executable")
- parser.add_argument(
- "--rsync-server", dest="rsync_server", default=DEFAULT_RSYNC_SERVER,
- metavar='RSYNCSERVER', type=str, required=False,
- help=("rsync server address"))
- parser.add_argument(
- "--rsync-root", dest="rsync_root", default=DEFAULT_RSYNC_ROOT,
- metavar='RSYNCROOT', type=str, required=False,
- help=("Root path of API doc on rsync server"))
- parser.add_argument(
- "--user", dest="user",
- metavar='USER', type=str, required=True,
- help=("User to login on rsync server"))
- parser.add_argument(
- "--password", dest="password",
- metavar='PASSWORD', type=str, required=True,
- help=("Password to login on rsync server"))
- parser.add_argument(
- "--jobs", dest="jobs_nr",
- metavar='NR', type=int, required=False, default=1,
- help="Number of sphinx building jobs to launch in parallel")
-
- return parser
-
-
-def main():
- # ----------
- # Parse Args
-
- args = argparse_create().parse_args()
-
- rsync_base = "rsync://%s@%s:%s" % (args.user, args.rsync_server, args.rsync_root)
-
- blenver = api_blenver = api_blenver_zip = ""
- api_name = ""
- branch = ""
- is_release = is_beta = False
-
- # I) Update local mirror using rsync.
- rsync_mirror_cmd = ("rsync", "--delete-after", "-avzz", rsync_base, args.mirror_dir)
- subprocess.run(rsync_mirror_cmd, env=dict(os.environ, RSYNC_PASSWORD=args.password))
-
- with tempfile.TemporaryDirectory() as tmp_dir:
- # II) Generate doc source in temp dir.
- doc_gen_cmd = (
- args.blender, "--background", "-noaudio", "--factory-startup", "--python-exit-code", "1",
- "--python", "%s/doc/python_api/sphinx_doc_gen.py" % args.source_dir, "--",
- "--output", tmp_dir
- )
- subprocess.run(doc_gen_cmd)
-
- # III) Get Blender version info.
- getver_file = os.path.join(tmp_dir, "blendver.txt")
- getver_script = (r"""import sys, bpy
-with open(sys.argv[-1], 'w') as f:
- is_release = bpy.app.version_cycle in {'rc', 'release'}
- is_beta = bpy.app.version_cycle in {'beta'}
- branch = bpy.app.build_branch.split()[0].decode()
- f.write('%d\n' % is_release)
- f.write('%d\n' % is_beta)
- f.write('%s\n' % branch)
- f.write('%d.%d\n' % (bpy.app.version[0], bpy.app.version[1]))
- f.write('%d.%d\n' % (bpy.app.version[0], bpy.app.version[1])
- if (is_release or is_beta) else '%s\n' % branch)
- f.write('%d_%d' % (bpy.app.version[0], bpy.app.version[1]))
-""")
- get_ver_cmd = (args.blender, "--background", "-noaudio", "--factory-startup", "--python-exit-code", "1",
- "--python-expr", getver_script, "--", getver_file)
- subprocess.run(get_ver_cmd)
- with open(getver_file) as f:
- is_release, is_beta, branch, blenver, api_blenver, api_blenver_zip = f.read().split("\n")
- is_release = bool(int(is_release))
- is_beta = bool(int(is_beta))
- os.remove(getver_file)
-
- # IV) Build doc.
- curr_dir = os.getcwd()
- os.chdir(tmp_dir)
- sphinx_cmd = ("sphinx-build", "-j", str(args.jobs_nr), "-b", "html", "sphinx-in", "sphinx-out")
- subprocess.run(sphinx_cmd)
- shutil.rmtree(os.path.join("sphinx-out", ".doctrees"))
- os.chdir(curr_dir)
-
- # V) Cleanup existing matching dir in server mirror (if any), and copy new doc.
- api_name = api_blenver
- api_dir = os.path.join(args.mirror_dir, api_name)
- if os.path.exists(api_dir):
- if os.path.islink(api_dir):
- os.remove(api_dir)
- else:
- shutil.rmtree(api_dir)
- os.rename(os.path.join(tmp_dir, "sphinx-out"), api_dir)
-
- # VI) Create zip archive.
- zip_name = "blender_python_reference_%s" % api_blenver_zip # We can't use 'release' postfix here...
- zip_path = os.path.join(args.mirror_dir, zip_name)
- with zipfile.ZipFile(zip_path, 'w') as zf:
- for dirname, _, filenames in os.walk(api_dir):
- for filename in filenames:
- filepath = os.path.join(dirname, filename)
- zip_filepath = os.path.join(zip_name, os.path.relpath(filepath, api_dir))
- zf.write(filepath, arcname=zip_filepath)
- os.rename(zip_path, os.path.join(api_dir, "%s.zip" % zip_name))
-
- # VII) Create symlinks and html redirects.
- if is_release:
- symlink = os.path.join(args.mirror_dir, "current")
- if os.path.exists(symlink):
- if os.path.islink(symlink):
- os.remove(symlink)
- else:
- shutil.rmtree(symlink)
- os.symlink("./%s" % api_name, symlink)
- with open(os.path.join(args.mirror_dir, "250PythonDoc/index.html"), 'w') as f:
- f.write("<html><head><title>Redirecting...</title><meta http-equiv=\"REFRESH\""
- "content=\"0;url=../%s/\"></head><body>Redirecting...</body></html>" % api_name)
- elif is_beta:
- # We do not have any particular symlink for that stage.
- pass
- elif branch == "master":
- # Also create a symlink from version number to actual master api doc.
- symlink = os.path.join(args.mirror_dir, blenver)
- if os.path.exists(symlink):
- if os.path.islink(symlink):
- os.remove(symlink)
- else:
- shutil.rmtree(symlink)
- os.symlink("./%s" % api_name, symlink)
- with open(os.path.join(args.mirror_dir, "blender_python_api/index.html"), 'w') as f:
- f.write("<html><head><title>Redirecting...</title><meta http-equiv=\"REFRESH\""
- "content=\"0;url=../%s/\"></head><body>Redirecting...</body></html>" % api_name)
-
- # VIII) Upload (first do a dry-run so user can ensure everything is OK).
- print("Doc generated in local mirror %s, please check it before uploading "
- "(hit [Enter] to continue, [Ctrl-C] to exit):" % api_dir)
- sys.stdin.read(1)
-
- rsync_mirror_cmd = ("rsync", "--dry-run", "--delete-after", "-avzz", args.mirror_dir, rsync_base)
- subprocess.run(rsync_mirror_cmd, env=dict(os.environ, RSYNC_PASSWORD=args.password))
-
- print("Rsync upload simulated, please check every thing is OK (hit [Enter] to continue, [Ctrl-C] to exit):")
- sys.stdin.read(1)
-
- rsync_mirror_cmd = ("rsync", "--delete-after", "-avzz", args.mirror_dir, rsync_base)
- subprocess.run(rsync_mirror_cmd, env=dict(os.environ, RSYNC_PASSWORD=args.password))
-
-
-if __name__ == "__main__":
- main()