diff options
author | Georg Brandl <georg@python.org> | 2010-03-13 10:12:39 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-03-13 10:12:39 (GMT) |
commit | 3446583976e2eed07d70778baa54c5dca97f9d3e (patch) | |
tree | efd55413b0f1edad6e0603a04f83eff6a3919273 /Doc | |
parent | eb6d43004134dc8b1c346b77abd1566b2d60b917 (diff) | |
download | cpython-3446583976e2eed07d70778baa54c5dca97f9d3e.zip cpython-3446583976e2eed07d70778baa54c5dca97f9d3e.tar.gz cpython-3446583976e2eed07d70778baa54c5dca97f9d3e.tar.bz2 |
Add Makefile targets for automatic doc build. Add script that will be used for daily build.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/Makefile | 41 | ||||
-rwxr-xr-x | Doc/tools/dailybuild.py | 81 |
2 files changed, 112 insertions, 10 deletions
diff --git a/Doc/Makefile b/Doc/Makefile index 31670ad..cdc97a3 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -14,20 +14,27 @@ DISTVERSION = $(shell $(PYTHON) tools/sphinxext/patchlevel.py) ALLSPHINXOPTS = -b $(BUILDER) -d build/doctrees -D latex_paper_size=$(PAPER) \ $(SPHINXOPTS) . build/$(BUILDER) $(SOURCES) -.PHONY: help checkout update build html htmlhelp clean coverage dist check +.PHONY: help checkout update build html htmlhelp latex text changes linkcheck \ + suspicious coverage doctest pydoc-topics htmlview clean dist check serve \ + autobuild-dev autobuild-stable help: @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make standalone HTML files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " text to make plain text files" - @echo " changes to make an overview over all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" + @echo " clean to remove build files" + @echo " update to update build tools" + @echo " html to make standalone HTML files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " text to make plain text files" + @echo " changes to make an overview over all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " coverage to check documentation coverage for library and C API" + @echo " doctest to run doctests in the documentation" + @echo " pydoc-topics to regenerate the pydoc topics file" + @echo " dist to create a \"dist\" directory with archived docs for download" @echo " suspicious to check for suspicious markup in output text" - @echo " coverage to check documentation coverage for library and C API" - @echo " dist to create a \"dist\" directory with archived docs for download" - @echo " serve to serve the documentation on the localhost (8000)" + @echo " check to run a check for frequent markup errors" + @echo " serve to serve the documentation on the localhost (8000)" # Note: if you update versions here, do the same in make.bat and README.txt checkout: @@ -153,3 +160,17 @@ check: serve: ../Tools/scripts/serve.py build/html + +# Targets for automatic doc build + +# for development releases: always build +autobuild-dev: + make update + make dist + +# for stable releases: only build if not in development mode +autobuild-stable: + @case $(DISTVERSION) in *[abc]*) \ + echo "Not building; not a release version."; exit 1;; \ + esac + @make autobuild-dev diff --git a/Doc/tools/dailybuild.py b/Doc/tools/dailybuild.py new file mode 100755 index 0000000..6291d90 --- /dev/null +++ b/Doc/tools/dailybuild.py @@ -0,0 +1,81 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +# Runs the daily build of the Python docs on dinsdale.python.org. +# +# Usages: +# +# dailybuild.py +# +# without any arguments builds docs for all branches configured in the global +# BRANCHES value. +# +# dailybuild.py [-d] <checkout> <target> +# +# builds one version, where <checkout> is an SVN checkout directory of the +# Python branch to build docs for, and <target> is the directory where the +# result should be placed. If -d is given, the docs are built even if the +# branch is in development mode (i.e. version contains a, b or c). +# +# This script is not run from the checkout, so if you want to change how the +# daily build is run, you must replace it on dinsdale. This is necessary, for +# example, after the release of a new minor version. +# +# 03/2010, Georg Brandl + +import os +import sys +import getopt + + +BUILDROOT = '/home/gbrandl/docbuild' +WWWROOT = '/data/ftp.python.org/pub/docs.python.org' + +BRANCHES = [ + # checkout, target, isdev + (BUILDROOT + '/python26', WWWROOT, False), + (BUILDROOT + '/python31', WWWROOT + '/py3k', False), + (BUILDROOT + '/python27', WWWROOT + '/dev', True), + (BUILDROOT + '/python32', WWWROOT + '/dev/py3k', True), +] + + +def build_one(checkout, target, isdev): + print 'Doc autobuild started in %s' % checkout + os.chdir(checkout) + print 'Running svn update' + os.system('svn update') + print 'Running make autobuild' + if os.WEXITSTATUS(os.system( + 'cd Doc; make autobuild-%s' % (isdev and 'dev' or 'stable'))) == 2: + print '*' * 80 + return + print 'Copying HTML files' + os.system('cp -a Doc/build/html/* %s' % target) + print 'Copying dist files' + os.system('cp -a Doc/dist %s/dist' % target) + print 'Finished' + print '=' * 80 + +def usage(): + print 'Usage:' + print ' %s' % sys.argv[0] + print 'or' + print ' %s [-d] <checkout> <target>' % sys.argv[0] + sys.exit(1) + + +if __name__ == '__main__': + try: + opts, args = getopt.getopt(sys.argv[1:], 'd') + except getopt.error: + usage() + if opts and not args: + usage() + if args: + if len(args) != 2: + usage() + build_one(args[0], args[1], bool(opts)) + else: + for branch in BRANCHES: + build_one(*branch) |