diff options
Diffstat (limited to 'doc/usage/advanced/setuptools.rst')
-rw-r--r-- | doc/usage/advanced/setuptools.rst | 200 |
1 files changed, 200 insertions, 0 deletions
diff --git a/doc/usage/advanced/setuptools.rst b/doc/usage/advanced/setuptools.rst new file mode 100644 index 0000000..672d658 --- /dev/null +++ b/doc/usage/advanced/setuptools.rst @@ -0,0 +1,200 @@ +.. _setuptools: + +Setuptools integration +====================== + +Sphinx supports integration with setuptools and distutils through a custom +command - :class:`~sphinx.setup_command.BuildDoc`. + +.. deprecated:: 5.0 + + This feature will be removed in v7.0. + +Using setuptools integration +---------------------------- + +The Sphinx build can then be triggered from distutils, and some Sphinx +options can be set in ``setup.py`` or ``setup.cfg`` instead of Sphinx's own +configuration file. + +For instance, from ``setup.py``:: + + # this is only necessary when not using setuptools/distribute + from sphinx.setup_command import BuildDoc + cmdclass = {'build_sphinx': BuildDoc} + + name = 'My project' + version = '1.2' + release = '1.2.0' + setup( + name=name, + author='Bernard Montgomery', + version=release, + cmdclass=cmdclass, + # these are optional and override conf.py settings + command_options={ + 'build_sphinx': { + 'project': ('setup.py', name), + 'version': ('setup.py', version), + 'release': ('setup.py', release), + 'source_dir': ('setup.py', 'doc')}}, + ) + +.. note:: + + If you set Sphinx options directly in the ``setup()`` command, replace + hyphens in variable names with underscores. In the example above, + ``source-dir`` becomes ``source_dir``. + +Or add this section in ``setup.cfg``:: + + [build_sphinx] + project = 'My project' + version = 1.2 + release = 1.2.0 + source-dir = 'doc' + +Once configured, call this by calling the relevant command on ``setup.py``:: + + $ python setup.py build_sphinx + +Options for setuptools integration +---------------------------------- + +.. setuptools-confval:: fresh-env + + A boolean that determines whether the saved environment should be discarded + on build. Default is false. + + This can also be set by passing the `-E` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -E + +.. setuptools-confval:: all-files + + A boolean that determines whether all files should be built from scratch. + Default is false. + + This can also be set by passing the `-a` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -a + +.. setuptools-confval:: source-dir + + The target source directory. This can be relative to the ``setup.py`` or + ``setup.cfg`` file, or it can be absolute. It defaults to ``./doc`` or + ``./docs`` if either contains a file named ``conf.py`` (checking ``./doc`` + first); otherwise it defaults to the current directory. + + This can also be set by passing the `-s` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -s $SOURCE_DIR + +.. setuptools-confval:: build-dir + + The target build directory. This can be relative to the ``setup.py`` or + ``setup.cfg`` file, or it can be absolute. Default is ``./build/sphinx``. + +.. setuptools-confval:: config-dir + + Location of the configuration directory. This can be relative to the + ``setup.py`` or ``setup.cfg`` file, or it can be absolute. Default is to use + `source-dir`. + + This can also be set by passing the `-c` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -c $CONFIG_DIR + + .. versionadded:: 1.0 + +.. setuptools-confval:: builder + + The builder or list of builders to use. Default is ``html``. + + This can also be set by passing the `-b` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -b $BUILDER + + .. versionchanged:: 1.6 + This can now be a comma- or space-separated list of builders + +.. setuptools-confval:: warning-is-error + + A boolean that ensures Sphinx warnings will result in a failed build. + Default is false. + + This can also be set by passing the `-W` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -W + + .. versionadded:: 1.5 + +.. setuptools-confval:: project + + The documented project's name. Default is ``''``. + + .. versionadded:: 1.0 + +.. setuptools-confval:: version + + The short X.Y version. Default is ``''``. + + .. versionadded:: 1.0 + +.. setuptools-confval:: release + + The full version, including alpha/beta/rc tags. Default is ``''``. + + .. versionadded:: 1.0 + +.. setuptools-confval:: today + + How to format the current date, used as the replacement for ``|today|``. + Default is ``''``. + + .. versionadded:: 1.0 + +.. setuptools-confval:: link-index + + A boolean that ensures index.html will be linked to the root doc. Default + is false. + + This can also be set by passing the `-i` flag to ``setup.py``: + + .. code-block:: console + + $ python setup.py build_sphinx -i + + .. versionadded:: 1.0 + +.. setuptools-confval:: copyright + + The copyright string. Default is ``''``. + + .. versionadded:: 1.3 + +.. setuptools-confval:: nitpicky + + Run in nit-picky mode. Currently, this generates warnings for all missing + references. See the config value :confval:`nitpick_ignore` for a way to + exclude some references as "known missing". + + .. versionadded:: 1.8 + +.. setuptools-confval:: pdb + + A boolean to configure ``pdb`` on exception. Default is false. + + .. versionadded:: 1.5 |