Browse Source

Use sphinx_celery to manage Sphinx

Ask Solem 9 years ago
parent
commit
8bc66b7640

+ 1 - 1
.gitignore

@@ -7,9 +7,9 @@ dist/
 *.egg-info
 *.egg
 *.egg/
-doc/__build/*
 build/
 .build/
+_build/
 pip-log.txt
 .directory
 erl_crash.dump

+ 7 - 7
CONTRIBUTING.rst

@@ -457,7 +457,7 @@ dependencies, so install these next:
     $ pip install -U -r requirements/default.txt
 
 After installing the dependencies required, you can now execute
-the test suite by calling ``nosetests``:
+the test suite by calling ``nosetests <nose>``:
 ::
 
     $ nosetests
@@ -472,7 +472,7 @@ Some useful options to ``nosetests`` are:
 
     Don't capture output
 
-* ``--nologcapture``
+* ``-nologcapture``
 
     Don't capture log output.
 
@@ -543,8 +543,7 @@ To run the tests for all supported Python versions simply execute:
 
     $ tox
 
-If you only want to test specific Python versions use the ``-e``
-option:
+Use the ``tox -e`` option if you only want to test specific Python versions:
 ::
 
     $ tox -e 2.7
@@ -563,11 +562,11 @@ build the docs by running:
 ::
 
     $ cd docs
-    $ rm -rf .build
+    $ rm -rf _build
     $ make html
 
 Make sure there are no errors or warnings in the build output.
-After building succeeds the documentation is available at ``.build/html``.
+After building succeeds the documentation is available at ``_build/html``.
 
 .. _contributing-verify:
 
@@ -1058,7 +1057,8 @@ and make a new version tag:
 Releasing
 ---------
 
-Commands to make a new public stable release::
+Commands to make a new public stable release:
+::
 
     $ make distcheck  # checks pep8, autodoc index, runs tests and more
     $ make dist  # NOTE: Runs git clean -xdf and removes files not in the repo.

+ 1 - 1
Makefile

@@ -1,7 +1,7 @@
 PROJ=celery
 PYTHON=python
 SPHINX_DIR="docs/"
-SPHINX_BUILDDIR="${SPHINX_DIR}/.build"
+SPHINX_BUILDDIR="${SPHINX_DIR}/_build"
 README="README.rst"
 CONTRIBUTING="CONTRIBUTING.rst"
 CONFIGREF_SRC="docs/configuration.rst"

+ 10 - 5
README.rst

@@ -215,11 +215,13 @@ Installation
 You can install Celery either via the Python Package Index (PyPI)
 or from source.
 
-To install using `pip`,::
+To install using `pip`,:
+::
 
     $ pip install -U Celery
 
-To install using `easy_install`,::
+To install using `easy_install`,:
+::
 
     $ easy_install -U Celery
 
@@ -330,7 +332,8 @@ Downloading and installing from source
 Download the latest version of Celery from
 http://pypi.python.org/pypi/celery/
 
-You can install it by doing the following,::
+You can install it by doing the following,:
+::
 
     $ tar xvfz celery-0.0.0.tar.gz
     $ cd celery-0.0.0
@@ -349,15 +352,17 @@ With pip
 ~~~~~~~~
 
 The Celery development version also requires the development
-versions of ``kombu``, ``amqp`` and ``billiard``.
+versions of ``kombu``, ``amqp``, ``billiard`` and ``vine``.
 
 You can install the latest snapshot of these using the following
-pip commands::
+pip commands:
+::
 
     $ pip install https://github.com/celery/celery/zipball/master#egg=celery
     $ pip install https://github.com/celery/billiard/zipball/master#egg=billiard
     $ pip install https://github.com/celery/py-amqp/zipball/master#egg=amqp
     $ pip install https://github.com/celery/kombu/zipball/master#egg=kombu
+    $ pip install https://github.com/celery/vine/zipball/master#egg=vine
 
 With git
 ~~~~~~~~

+ 0 - 21
docs/.templates/page.html

@@ -1,21 +0,0 @@
-{% extends "layout.html" %}
-{% block body %}
-<div class="deck">
-
-    {% if version == "4.0" %}
-        <p class="developmentversion">
-        This document is for Celery's development version, which can be
-        significantly different from previous releases. Get old docs here:
-
-        <a href="http://docs.celeryproject.org/en/latest/{{ pagename }}{{ file_suffix }}">3.1</a>.
-        </p>
-    {% else %}
-        <p>
-        This document describes the current stable version of Celery ({{ version }}). For development docs,
-        <a href="http://docs.celeryproject.org/en/master/{{ pagename }}{{ file_suffix }}">go here</a>.
-        </p>
-    {% endif %}
-
-</div>
-    {{ body }}
-{% endblock %}

File diff suppressed because it is too large
+ 0 - 7
docs/.templates/sidebarlogo.html


+ 181 - 39
docs/Makefile

@@ -1,81 +1,223 @@
 # Makefile for Sphinx documentation
 #
 
-# You can set these variables from the command-line.
+# You can set these variables from the command line.
 SPHINXOPTS    =
 SPHINXBUILD   = sphinx-build
 PAPER         =
+BUILDDIR      = _build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+	$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
 
 # Internal variables.
 PAPEROPT_a4     = -D latex_paper_size=a4
 PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS   = -d .build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
-
-.PHONY: help clean html web pickle htmlhelp latex changes linkcheck
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
 
+.PHONY: help
 help:
 	@echo "Please use \`make <target>' where <target> is one of"
-	@echo "  html      to make standalone HTML files"
-	@echo "  pickle    to make pickle files"
-	@echo "  json      to make JSON 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 "  changes   to make an overview over all changed/added/deprecated items"
-	@echo "  linkcheck to check all external links for integrity"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  applehelp  to make an Apple Help Book"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  epub3      to make an epub3"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  texinfo    to make Texinfo files"
+	@echo "  info       to make Texinfo files and run them through makeinfo"
+	@echo "  gettext    to make PO message catalogs"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  xml        to make Docutils-native XML files"
+	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+	@echo "  coverage   to run coverage check of the documentation (if enabled)"
 
+.PHONY: clean
 clean:
-	-rm -rf .build/*
+	rm -rf $(BUILDDIR)/*
 
+.PHONY: html
 html:
-	mkdir -p .build/html .build/doctrees
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) .build/html
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
 	@echo
-	@echo "Build finished. The HTML pages are in .build/html."
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
 
-coverage:
-	mkdir -p .build/coverage .build/doctrees
-	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) .build/coverage
+.PHONY: dirhtml
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
 	@echo
-	@echo "Build finished."
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
 
+.PHONY: singlehtml
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+.PHONY: pickle
 pickle:
-	mkdir -p .build/pickle .build/doctrees
-	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) .build/pickle
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
 	@echo
 	@echo "Build finished; now you can process the pickle files."
 
-web: pickle
-
+.PHONY: json
 json:
-	mkdir -p .build/json .build/doctrees
-	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) .build/json
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
 	@echo
 	@echo "Build finished; now you can process the JSON files."
 
+.PHONY: htmlhelp
 htmlhelp:
-	mkdir -p .build/htmlhelp .build/doctrees
-	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) .build/htmlhelp
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
 	@echo
 	@echo "Build finished; now you can run HTML Help Workshop with the" \
-	      ".hhp project file in .build/htmlhelp."
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+.PHONY: qthelp
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PROJ.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PROJ.qhc"
+
+.PHONY: applehelp
+applehelp:
+	$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
+	@echo
+	@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
+	@echo "N.B. You won't be able to view it unless you put it in" \
+	      "~/Library/Documentation/Help or install it in your application" \
+	      "bundle."
+
+.PHONY: devhelp
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/PROJ"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/PROJ"
+	@echo "# devhelp"
+
+.PHONY: epub
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+.PHONY: epub3
+epub3:
+	$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
+	@echo
+	@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
 
+.PHONY: latex
 latex:
-	mkdir -p .build/latex .build/doctrees
-	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) .build/latex
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
 	@echo
-	@echo "Build finished; the LaTeX files are in .build/latex."
-	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
-	      "run these through (pdf)latex."
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
 
+.PHONY: latexpdf
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+.PHONY: latexpdfja
+latexpdfja:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through platex and dvipdfmx..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+.PHONY: text
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+.PHONY: man
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+.PHONY: texinfo
+texinfo:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo
+	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+	@echo "Run \`make' in that directory to run these through makeinfo" \
+	      "(use \`make info' here to do that automatically)."
+
+.PHONY: info
+info:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo "Running Texinfo files through makeinfo..."
+	make -C $(BUILDDIR)/texinfo info
+	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+.PHONY: gettext
+gettext:
+	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+	@echo
+	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+.PHONY: changes
 changes:
-	mkdir -p .build/changes .build/doctrees
-	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) .build/changes
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
 	@echo
-	@echo "The overview file is in .build/changes."
+	@echo "The overview file is in $(BUILDDIR)/changes."
 
+.PHONY: linkcheck
 linkcheck:
-	mkdir -p .build/linkcheck .build/doctrees
-	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) .build/linkcheck
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
 	@echo
 	@echo "Link check complete; look for any errors in the above output " \
-	      "or in .build/linkcheck/output.txt."
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+.PHONY: doctest
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
+
+.PHONY: coverage
+coverage:
+	$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
+	@echo "Testing of coverage in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/coverage/python.txt."
+
+.PHONY: xml
+xml:
+	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+	@echo
+	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+.PHONY: pseudoxml
+pseudoxml:
+	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+	@echo
+	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."

+ 0 - 10
docs/_ext/celerydocs.py

@@ -142,11 +142,6 @@ def maybe_resolve_abbreviations(app, env, node, contnode):
 def setup(app):
     app.connect(b'missing-reference', maybe_resolve_abbreviations)
 
-    app.add_crossref_type(
-        directivename=b'setting',
-        rolename=b'setting',
-        indextemplate=b'pair: %s; setting',
-    )
     app.add_crossref_type(
         directivename=b'sig',
         rolename=b'sig',
@@ -162,11 +157,6 @@ def setup(app):
         rolename=b'control',
         indextemplate=b'pair: %s; control',
     )
-    app.add_crossref_type(
-        directivename=b'signal',
-        rolename=b'signal',
-        indextemplate=b'pair: %s; signal',
-    )
     app.add_crossref_type(
         directivename=b'event',
         rolename=b'event',

+ 0 - 110
docs/_ext/githubsphinx.py

@@ -1,110 +0,0 @@
-"""Stolen from sphinxcontrib-issuetracker.
-
-Had to modify this as the original will make one Github API request
-per issue, which is not at all needed if we just want to link to issues.
-
-"""
-from __future__ import absolute_import, unicode_literals
-
-import re
-import sys
-
-from collections import namedtuple
-
-from docutils import nodes
-from docutils.transforms import Transform
-from sphinx.roles import XRefRole
-from sphinx.addnodes import pending_xref
-
-URL = 'https://github.com/{project}/issues/{issue_id}'
-
-Issue = namedtuple('Issue', ('id', 'title', 'url'))
-
-if sys.version_info[0] == 3:
-    str_t = text_t = str
-else:
-    str_t = basestring
-    text_t = unicode
-
-
-class IssueRole(XRefRole):
-    innernodeclass = nodes.inline
-
-
-class Issues(Transform):
-    default_priority = 999
-
-    def apply(self):
-        config = self.document.settings.env.config
-        github_project = config.github_project
-        issue_pattern = config.github_issue_pattern
-        if isinstance(issue_pattern, str_t):
-            issue_pattern = re.compile(issue_pattern)
-        for node in self.document.traverse(nodes.Text):
-            parent = node.parent
-            if isinstance(parent, (nodes.literal, nodes.FixedTextElement)):
-                continue
-            text = text_t(node)
-            new_nodes = []
-            last_issue_ref_end = 0
-            for match in issue_pattern.finditer(text):
-                head = text[last_issue_ref_end:match.start()]
-                if head:
-                    new_nodes.append(nodes.Text(head))
-                last_issue_ref_end = match.end()
-                issuetext = match.group(0)
-                issue_id = match.group(1)
-                refnode = pending_xref()
-                refnode['reftarget'] = issue_id
-                refnode['reftype'] = 'issue'
-                refnode['github_project'] = github_project
-                reftitle = issuetext
-                refnode.append(nodes.inline(
-                    issuetext, reftitle, classes=['xref', 'issue']))
-                new_nodes.append(refnode)
-            if not new_nodes:
-                continue
-            tail = text[last_issue_ref_end:]
-            if tail:
-                new_nodes.append(nodes.Text(tail))
-            parent.replace(node, new_nodes)
-
-
-def make_issue_reference(issue, content_node):
-    reference = nodes.reference()
-    reference['refuri'] = issue.url
-    if issue.title:
-        reference['reftitle'] = issue.title
-    reference.append(content_node)
-    return reference
-
-
-def resolve_issue_reference(app, env, node, contnode):
-    if node['reftype'] != 'issue':
-        return
-    issue_id = node['reftarget']
-    project = node['github_project']
-
-    issue = Issue(issue_id, None, URL.format(project=project,
-                                             issue_id=issue_id))
-    conttext = text_t(contnode[0])
-    formatted_conttext = nodes.Text(conttext.format(issue=issue))
-    formatted_contnode = nodes.inline(conttext, formatted_conttext,
-                                      classes=contnode['classes'])
-    return make_issue_reference(issue, formatted_contnode)
-
-
-def init_transformer(app):
-    app.add_transform(Issues)
-
-
-def setup(app):
-    app.require_sphinx('1.0')
-    app.add_role('issue', IssueRole())
-
-    app.add_config_value('github_project', None, 'env')
-    app.add_config_value('github_issue_pattern',
-                         re.compile(r'[Ii]ssue #(\d+)'), 'env')
-
-    app.connect(str('builder-inited'), init_transformer)
-    app.connect(str('missing-reference'), resolve_issue_reference)

+ 0 - 0
docs/.static/.keep → docs/_static/.keep


+ 0 - 3
docs/.templates/sidebarintro.html → docs/_templates/sidebardonations.html

@@ -1,6 +1,3 @@
-<p class="logo"><a href="{{ pathto(master_doc) }}">
-  <img class="logo" src="http://cloud.github.com/downloads/celery/celery/celery_128.png" alt="Logo"/>
-</a></p>
 <div id="donate">
     <b>Donations welcome:</b>
     <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">

+ 0 - 401
docs/_theme/celery/static/celery.css_t

@@ -1,401 +0,0 @@
-/*
- * celery.css_t
- * ~~~~~~~~~~~~
- *
- * :copyright: Copyright 2010 by Armin Ronacher.
- * :license: BSD, see LICENSE for details.
- */
-
-{% set page_width = 940 %}
-{% set sidebar_width = 220 %}
-{% set body_font_stack = 'Optima, Segoe, "Segoe UI", Candara, Calibri, Arial, sans-serif' %}
-{% set headline_font_stack = 'Futura, "Trebuchet MS", Arial, sans-serif' %}
-{% set code_font_stack = "'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace" %}
-
-@import url("basic.css");
-
-/* -- page layout ----------------------------------------------------------- */
-
-body {
-    font-family: {{ body_font_stack }};
-    font-size: 17px;
-    background-color: white;
-    color: #000;
-    margin: 30px 0 0 0;
-    padding: 0;
-}
-
-div.document {
-    width: {{ page_width }}px;
-    margin: 0 auto;
-}
-
-div.deck {
-    font-size: 18px;
-}
-
-p.developmentversion {
-    color: red;
-}
-
-div.related {
-    width: {{ page_width - 20 }}px;
-    padding: 5px 10px;
-    background: #F2FCEE;
-    margin: 15px auto 15px auto;
-}
-
-div.documentwrapper {
-    float: left;
-    width: 100%;
-}
-
-div.bodywrapper {
-    margin: 0 0 0 {{ sidebar_width }}px;
-}
-
-div.sphinxsidebar {
-    width: {{ sidebar_width }}px;
-}
-
-hr {
-    border: 1px solid #B1B4B6;
-}
-
-div.body {
-    background-color: #ffffff;
-    color: #3E4349;
-    padding: 0 30px 0 30px;
-}
-
-img.celerylogo {
-    padding: 0 0 10px 10px;
-    float: right;
-}
-
-div.footer {
-    width: {{ page_width - 15 }}px;
-    margin: 10px auto 30px auto;
-    padding-right: 15px;
-    font-size: 14px;
-    color: #888;
-    text-align: right;
-}
-
-div.footer a {
-    color: #888;
-}
-
-div.sphinxsidebar a {
-    color: #444;
-    text-decoration: none;
-    border-bottom: 1px dashed #DCF0D5;
-}
-
-div.sphinxsidebar a:hover {
-    border-bottom: 1px solid #999;
-}
-
-div.sphinxsidebar {
-    font-size: 14px;
-    line-height: 1.5;
-}
-
-div.sphinxsidebarwrapper {
-    padding: 7px 10px;
-}
-
-div.sphinxsidebarwrapper p.logo {
-    padding: 0 0 20px 0;
-    margin: 0;
-}
-
-div.sphinxsidebar h3,
-div.sphinxsidebar h4 {
-    font-family: {{ headline_font_stack }};
-    color: #444;
-    font-size: 24px;
-    font-weight: normal;
-    margin: 0 0 5px 0;
-    padding: 0;
-}
-
-div.sphinxsidebar h4 {
-    font-size: 20px;
-}
-
-div.sphinxsidebar h3 a {
-    color: #444;
-}
-
-div.sphinxsidebar p.logo a,
-div.sphinxsidebar h3 a,
-div.sphinxsidebar p.logo a:hover,
-div.sphinxsidebar h3 a:hover {
-    border: none;
-}
-
-div.sphinxsidebar p {
-    color: #555;
-    margin: 10px 0;
-}
-
-div.sphinxsidebar ul {
-    margin: 10px 0;
-    padding: 0;
-    color: #000;
-}
-
-div.sphinxsidebar input {
-    border: 1px solid #ccc;
-    font-family: {{ body_font_stack }};
-    font-size: 1em;
-}
-
-/* -- body styles ----------------------------------------------------------- */
-
-a {
-    color: #348613;
-    text-decoration: underline;
-}
-
-a:hover {
-    color: #59B833;
-    text-decoration: underline;
-}
-
-div.body h1,
-div.body h2,
-div.body h3,
-div.body h4,
-div.body h5,
-div.body h6 {
-    font-family: {{ headline_font_stack }};
-    font-weight: normal;
-    margin: 30px 0px 10px 0px;
-    padding: 0;
-}
-
-div.body h1 { margin-top: 0; padding-top: 0; font-size: 200%; }
-div.body h2 { font-size: 180%; }
-div.body h3 { font-size: 150%; }
-div.body h4 { font-size: 130%; }
-div.body h5 { font-size: 100%; }
-div.body h6 { font-size: 100%; }
-
-div.body h1 a.toc-backref,
-div.body h2 a.toc-backref,
-div.body h3 a.toc-backref,
-div.body h4 a.toc-backref,
-div.body h5 a.toc-backref,
-div.body h6 a.toc-backref {
-    color: inherit!important;
-    text-decoration: none;
-}
-
-a.headerlink {
-    color: #ddd;
-    padding: 0 4px;
-    text-decoration: none;
-}
-
-a.headerlink:hover {
-    color: #444;
-    background: #eaeaea;
-}
-
-div.body p, div.body dd, div.body li {
-    line-height: 1.4em;
-}
-
-div.admonition {
-    background: #fafafa;
-    margin: 20px -30px;
-    padding: 10px 30px;
-    border-top: 1px solid #ccc;
-    border-bottom: 1px solid #ccc;
-}
-
-div.admonition p.admonition-title {
-    font-family: {{ headline_font_stack }};
-    font-weight: normal;
-    font-size: 24px;
-    margin: 0 0 10px 0;
-    padding: 0;
-    line-height: 1;
-}
-
-div.admonition p.last {
-    margin-bottom: 0;
-}
-
-div.highlight{
-    background-color: white;
-}
-
-dt:target, .highlight {
-    background: #FAF3E8;
-}
-
-div.note {
-    background-color: #eee;
-    border: 1px solid #ccc;
-}
-
-div.seealso {
-    background-color: #ffc;
-    border: 1px solid #ff6;
-}
-
-div.topic {
-    background-color: #eee;
-}
-
-div.warning {
-    background-color: #ffe4e4;
-    border: 1px solid #f66;
-}
-
-p.admonition-title {
-    display: inline;
-}
-
-p.admonition-title:after {
-    content: ":";
-}
-
-pre, tt {
-    font-family: {{ code_font_stack }};
-    font-size: 0.9em;
-}
-
-img.screenshot {
-}
-
-tt.descname, tt.descclassname {
-    font-size: 0.95em;
-}
-
-tt.descname {
-    padding-right: 0.08em;
-}
-
-img.screenshot {
-    -moz-box-shadow: 2px 2px 4px #eee;
-    -webkit-box-shadow: 2px 2px 4px #eee;
-    box-shadow: 2px 2px 4px #eee;
-}
-
-table.docutils {
-    border: 1px solid #888;
-    -moz-box-shadow: 2px 2px 4px #eee;
-    -webkit-box-shadow: 2px 2px 4px #eee;
-    box-shadow: 2px 2px 4px #eee;
-}
-
-table.docutils td, table.docutils th {
-    border: 1px solid #888;
-    padding: 0.25em 0.7em;
-}
-
-table.field-list, table.footnote {
-    border: none;
-    -moz-box-shadow: none;
-    -webkit-box-shadow: none;
-    box-shadow: none;
-}
-
-table.footnote {
-    margin: 15px 0;
-    width: 100%;
-    border: 1px solid #eee;
-    background: #fdfdfd;
-    font-size: 0.9em;
-}
-
-table.footnote + table.footnote {
-    margin-top: -15px;
-    border-top: none;
-}
-
-table.field-list th {
-    padding: 0 0.8em 0 0;
-}
-
-table.field-list td {
-    padding: 0;
-}
-
-table.footnote td.label {
-    width: 0px;
-    padding: 0.3em 0 0.3em 0.5em;
-}
-
-table.footnote td {
-    padding: 0.3em 0.5em;
-}
-
-dl {
-    margin: 0;
-    padding: 0;
-}
-
-dl dd {
-    margin-left: 30px;
-}
-
-blockquote {
-    margin: 0 0 0 30px;
-    padding: 0;
-}
-
-ul {
-    margin: 10px 0 10px 30px;
-    padding: 0;
-}
-
-pre {
-    background: #F0FFEB;
-    padding: 7px 10px;
-    margin: 15px 0;
-    border: 1px solid #C7ECB8;
-    border-radius: 2px;
-    -moz-border-radius: 2px;
-    -webkit-border-radius: 2px;
-    line-height: 1.3em;
-}
-
-tt {
-    background: #F0FFEB;
-    color: #222;
-    /* padding: 1px 2px; */
-}
-
-tt.xref, a tt {
-    background: #F0FFEB;
-    border-bottom: 1px solid white;
-}
-
-a.reference {
-    text-decoration: none;
-    border-bottom: 1px dashed #DCF0D5;
-}
-
-a.reference:hover {
-    border-bottom: 1px solid #6D4100;
-}
-
-a.footnote-reference {
-    text-decoration: none;
-    font-size: 0.7em;
-    vertical-align: top;
-    border-bottom: 1px dashed #DCF0D5;
-}
-
-a.footnote-reference:hover {
-    border-bottom: 1px solid #6D4100;
-}
-
-a:hover tt {
-    background: #EEE;
-}

+ 0 - 5
docs/_theme/celery/theme.conf

@@ -1,5 +0,0 @@
-[theme]
-inherit = basic
-stylesheet = celery.css
-
-[options]

+ 22 - 168
docs/conf.py

@@ -1,171 +1,25 @@
 # -*- coding: utf-8 -*-
 from __future__ import absolute_import, unicode_literals
 
-import sys
-import os
-
-this = os.path.dirname(os.path.abspath(__file__))
-
-# If your extensions are in another directory, add it here. If the directory
-# is relative to the documentation root, use os.path.abspath to make it
-# absolute, like shown here.
-sys.path.insert(0, os.path.join(this, os.pardir))
-sys.path.append(os.path.join(this, '_ext'))
-import celery  # noqa
-
-# General configuration
-# ---------------------
-
-extensions = [
-    'sphinx.ext.autodoc',
-    'sphinx.ext.coverage',
-    'sphinx.ext.imgmath',
-    'sphinx.ext.viewcode',
-    'sphinx.ext.intersphinx',
-    'sphinxcontrib.cheeseshop',
-    'celery.contrib.sphinx',
-    'githubsphinx',
-    'celerydocs',
-]
-
-LINKCODE_URL = 'https://github.com/{proj}/tree/{branch}/{filename}.py'
-GITHUB_PROJECT = 'celery/celery'
-GITHUB_BRANCH = 'master'
-
-
-def linkcode_resolve(domain, info):
-    if domain != 'py' or not info['module']:
-        return
-    filename = info['module'].replace('.', '/')
-    return LINKCODE_URL.format(
-        proj=GITHUB_PROJECT,
-        branch=GITHUB_BRANCH,
-        filename=filename,
-    )
-
-html_show_sphinx = False
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['.templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = 'Celery'
-copyright = '2009-2016, Ask Solem & Contributors'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '.'.join(map(str, celery.VERSION[0:2]))
-# The full version, including alpha/beta/rc tags.
-release = celery.__version__
-
-exclude_trees = ['.build']
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-add_function_parentheses = True
-
-intersphinx_mapping = {
-    'python': ('http://docs.python.org/dev/', None),
-    'sphinx': ('http://www.sphinx-doc.org/en/stable/', None),
-    'kombu': ('http://kombu.readthedocs.org/en/master/', None),
-    'djcelery': ('http://django-celery.readthedocs.org/en/latest/', None),
-    'cyme': ('http://cyme.readthedocs.org/en/latest/', None),
-    'amqp': ('http://amqp.readthedocs.org/en/latest/', None),
-    'vine': ('http://vine.readthedocs.org/en/latest/', None),
-    'flower': ('http://flower.readthedocs.org/en/latest/', None),
-    'redis': ('http://redis-py.readthedocs.org/en/latest/', None),
-    'django': ('http://django.readthedocs.org/en/latest/', None),
-    'boto': ('http://boto.readthedocs.org/en/latest/', None),
-    'sqlalchemy': ('http://sqlalchemy.readthedocs.org/en/latest', None),
-    'kazoo': ('http://kazoo.readthedocs.org/en/latest/', None),
-    'pyzmq': ('http://pyzmq.readthedocs.org/en/latest/', None),
-    'msgpack': ('http://pythonhosted.org/msgpack-python/', None),
-    'riak': ('http://basho.github.io/riak-python-client/', None),
-    'pylibmc': ('http://sendapatch.se/projects/pylibmc/', None),
-    'eventlet': ('http://eventlet.net/doc/', None),
-    'gevent': ('http://gevent.org/', None),
-    'pyOpenSSL': ('http://pyopenssl.readthedocs.org/en/stable/', None),
-    'nose': ('http://nose.readthedocs.org/en/latest', None),
-    'tox': ('http://tox.readthedocs.org/en/latest', None),
-}
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'colorful'
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['.static']
-
-html_use_smartypants = True
-
-add_module_names = True
-highlight_language = 'python3'
-
-# If false, no module index is generated.
-html_use_modindex = True
-
-# If false, no index is generated.
-html_use_index = True
-
-latex_documents = [
-    ('index', 'Celery.tex', 'Celery Documentation',
-     'Ask Solem & Contributors', 'manual'),
-]
-
-html_theme = 'celery'
-html_theme_path = ['_theme']
-html_sidebars = {
-    'index': ['sidebarintro.html', 'sourcelink.html', 'searchbox.html'],
-    '**': ['sidebarlogo.html', 'relations.html',
-           'sourcelink.html', 'searchbox.html'],
-}
-
-# ## Issuetracker
-
-github_project = 'celery/celery'
-
-# -- Options for Epub output -------------------------------------------
-
-# Bibliographic Dublin Core info.
-epub_title = 'Celery Manual, Version {0}'.format(version)
-epub_author = 'Ask Solem'
-epub_publisher = 'Celery Project'
-epub_copyright = '2009-2014'
-
-# The language of the text. It defaults to the language option
-# or en if the language is not set.
-epub_language = 'en'
-
-# The scheme of the identifier. Typical schemes are ISBN or URL.
-epub_scheme = 'ISBN'
-
-# The unique identifier of the text. This can be a ISBN number
-# or the project homepage.
-epub_identifier = 'celeryproject.org'
-
-# A unique identification for the text.
-epub_uid = 'Celery Manual, Version {0}'.format(version)
-
-# ## HTML files that should be inserted before the pages created by sphinx.
-# ## The format is a list of tuples containing the path and title.
-# epub_pre_files = []
-
-# ## HTML files shat should be inserted after the pages created by sphinx.
-# ## The format is a list of tuples containing the path and title.
-# epub_post_files = []
-
-# A list of files that should not be packed into the epub file.
-epub_exclude_files = ['search.html']
-
-
-# The depth of the table of contents in toc.ncx.
-epub_tocdepth = 3
+from sphinx_celery import conf
+
+globals().update(conf.build_config(
+    'celery', __file__,
+    project='Celery',
+    version_dev='4.0',
+    version_stable='3.1',
+    canonical_url='http://docs.celeryproject.org',
+    webdomain='celeryproject.org',
+    github_project='celery/celery',
+    author='Ask Solem & contributors',
+    author_name='Ask Solem',
+    copyright='2009-2016',
+    publisher='Celery Project',
+    html_logo='images/celery_128.png',
+    html_favicon='images/favicon.ico',
+    html_prepend_sidebars=['sidebardonations.html'],
+    extra_extensions=[
+        'celery.contrib.sphinx',
+        'celerydocs',
+    ],
+))

+ 2 - 2
docs/contributing.rst

@@ -577,11 +577,11 @@ build the docs by running:
 .. code-block:: console
 
     $ cd docs
-    $ rm -rf .build
+    $ rm -rf _build
     $ make html
 
 Make sure there are no errors or warnings in the build output.
-After building succeeds the documentation is available at :file:`.build/html`.
+After building succeeds the documentation is available at :file:`_build/html`.
 
 .. _contributing-verify:
 

+ 1 - 1
docs/history/changelog-1.0.rst

@@ -1700,7 +1700,7 @@ arguments, so be sure to flush your task queue before you upgrade.
         $ cd docs
         $ make html
 
-  and the result will be in `docs/.build/html`.
+  and the result will be in `docs/_build/html`.
 
 .. _version-0.1.12:
 

BIN
docs/images/favicon.ico


+ 272 - 0
docs/make.bat

@@ -0,0 +1,272 @@
+@ECHO OFF
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set BUILDDIR=_build
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
+set I18NSPHINXOPTS=%SPHINXOPTS% .
+if NOT "%PAPER%" == "" (
+	set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
+	set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
+)
+
+if "%1" == "" goto help
+
+if "%1" == "help" (
+	:help
+	echo.Please use `make ^<target^>` where ^<target^> is one of
+	echo.  html       to make standalone HTML files
+	echo.  dirhtml    to make HTML files named index.html in directories
+	echo.  singlehtml to make a single large HTML file
+	echo.  pickle     to make pickle files
+	echo.  json       to make JSON files
+	echo.  htmlhelp   to make HTML files and a HTML help project
+	echo.  qthelp     to make HTML files and a qthelp project
+	echo.  devhelp    to make HTML files and a Devhelp project
+	echo.  epub       to make an epub
+	echo.  epub3      to make an epub3
+	echo.  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter
+	echo.  text       to make text files
+	echo.  man        to make manual pages
+	echo.  texinfo    to make Texinfo files
+	echo.  gettext    to make PO message catalogs
+	echo.  changes    to make an overview over all changed/added/deprecated items
+	echo.  xml        to make Docutils-native XML files
+	echo.  pseudoxml  to make pseudoxml-XML files for display purposes
+	echo.  linkcheck  to check all external links for integrity
+	echo.  doctest    to run all doctests embedded in the documentation if enabled
+	echo.  coverage   to run coverage check of the documentation if enabled
+	goto end
+)
+
+if "%1" == "clean" (
+	for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
+	del /q /s %BUILDDIR%\*
+	goto end
+)
+
+
+REM Check if sphinx-build is available and fallback to Python version if any
+%SPHINXBUILD% 1>NUL 2>NUL
+if errorlevel 9009 goto sphinx_python
+goto sphinx_ok
+
+:sphinx_python
+
+set SPHINXBUILD=python -m sphinx.__init__
+%SPHINXBUILD% 2> nul
+if errorlevel 9009 (
+	echo.
+	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+	echo.installed, then set the SPHINXBUILD environment variable to point
+	echo.to the full path of the 'sphinx-build' executable. Alternatively you
+	echo.may add the Sphinx directory to PATH.
+	echo.
+	echo.If you don't have Sphinx installed, grab it from
+	echo.http://sphinx-doc.org/
+	exit /b 1
+)
+
+:sphinx_ok
+
+
+if "%1" == "html" (
+	%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/html.
+	goto end
+)
+
+if "%1" == "dirhtml" (
+	%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
+	goto end
+)
+
+if "%1" == "singlehtml" (
+	%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
+	goto end
+)
+
+if "%1" == "pickle" (
+	%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can process the pickle files.
+	goto end
+)
+
+if "%1" == "json" (
+	%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can process the JSON files.
+	goto end
+)
+
+if "%1" == "htmlhelp" (
+	%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can run HTML Help Workshop with the ^
+.hhp project file in %BUILDDIR%/htmlhelp.
+	goto end
+)
+
+if "%1" == "qthelp" (
+	%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; now you can run "qcollectiongenerator" with the ^
+.qhcp project file in %BUILDDIR%/qthelp, like this:
+	echo.^> qcollectiongenerator %BUILDDIR%\qthelp\PROJ.qhcp
+	echo.To view the help file:
+	echo.^> assistant -collectionFile %BUILDDIR%\qthelp\PROJ.ghc
+	goto end
+)
+
+if "%1" == "devhelp" (
+	%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished.
+	goto end
+)
+
+if "%1" == "epub" (
+	%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The epub file is in %BUILDDIR%/epub.
+	goto end
+)
+
+if "%1" == "epub3" (
+	%SPHINXBUILD% -b epub3 %ALLSPHINXOPTS% %BUILDDIR%/epub3
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The epub3 file is in %BUILDDIR%/epub3.
+	goto end
+)
+
+if "%1" == "latex" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "latexpdf" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	cd %BUILDDIR%/latex
+	make all-pdf
+	cd %~dp0
+	echo.
+	echo.Build finished; the PDF files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "latexpdfja" (
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
+	cd %BUILDDIR%/latex
+	make all-pdf-ja
+	cd %~dp0
+	echo.
+	echo.Build finished; the PDF files are in %BUILDDIR%/latex.
+	goto end
+)
+
+if "%1" == "text" (
+	%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The text files are in %BUILDDIR%/text.
+	goto end
+)
+
+if "%1" == "man" (
+	%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The manual pages are in %BUILDDIR%/man.
+	goto end
+)
+
+if "%1" == "texinfo" (
+	%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
+	goto end
+)
+
+if "%1" == "gettext" (
+	%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
+	goto end
+)
+
+if "%1" == "changes" (
+	%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.The overview file is in %BUILDDIR%/changes.
+	goto end
+)
+
+if "%1" == "linkcheck" (
+	%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Link check complete; look for any errors in the above output ^
+or in %BUILDDIR%/linkcheck/output.txt.
+	goto end
+)
+
+if "%1" == "doctest" (
+	%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Testing of doctests in the sources finished, look at the ^
+results in %BUILDDIR%/doctest/output.txt.
+	goto end
+)
+
+if "%1" == "coverage" (
+	%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Testing of coverage in the sources finished, look at the ^
+results in %BUILDDIR%/coverage/python.txt.
+	goto end
+)
+
+if "%1" == "xml" (
+	%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The XML files are in %BUILDDIR%/xml.
+	goto end
+)
+
+if "%1" == "pseudoxml" (
+	%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
+	if errorlevel 1 exit /b 1
+	echo.
+	echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
+	goto end
+)
+
+:end

+ 1 - 2
requirements/docs.txt

@@ -1,4 +1,3 @@
-Sphinx>=1.4
-sphinxcontrib-cheeseshop
+sphinx_celery
 -r extras/sqlalchemy.txt
 -r dev.txt

+ 1 - 4
setup.cfg

@@ -3,12 +3,9 @@ where = celery/tests
 
 [build_sphinx]
 source-dir = docs/
-build-dir = docs/.build
+build-dir = docs/_build
 all_files = 1
 
-[upload_sphinx]
-upload-dir = docs/.build/html
-
 [bdist_rpm]
 requires = pytz >= 2011b
            billiard >= 3.3.0.17

+ 0 - 1
setup.py

@@ -144,7 +144,6 @@ with open(os.path.join(here, 'celery/__init__.py')) as meta_fh:
 
 # -*- Installation Requires -*-
 
-
 def strip_comments(l):
     return l.split('#', 1)[0].strip()
 

Some files were not shown because too many files changed in this diff