kiwi-el8/doc/source/conf.py
Marcus Schäfer 1d9ac070e8 Build schema documentation with Oxygen
Given there is a valid Oxygen license owned by the company
as described in https://www.oxygenxml.com/oxygen_scripting.html
the schema documentation can be created using Oxygen. This
commit allows building the schema docs with alternative
doc builders and in case of Oxygen would change the way the
schema docs are generated in the following way:

1. Install Oxygen and setup the license to activate the tool

2. Setup the KIWI development shell environment to export
   the schema_tool variable to point to the schemaDocumentation.sh
   script provided by the Oxygen installation

   export oxygen_tool=/path/to/Oxygen/schemaDocumentation.sh

3. In any case of a schema change manually call:

   tox -e schema

   This step was done before as part of the tox doc target
   but can't be done automatically because it would require
   a correctly licensed Oxygen installation in the travis
   environment. Thus the result data has to be part of the
   pull request

4. Build the documentation and review the result

   tox -e doc

5. Create the pull request
2017-06-29 10:38:45 +02:00

250 lines
6.6 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# kiwi documentation build configuration file, created by
# sphinx-quickstart on Fri Feb 5 11:03:18 2016.
#
import sys
from os.path import abspath, dirname, join, normpath
import shlex
import sphinx_rtd_theme
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
_path = normpath(join(dirname(__file__), "../.."))
sys.path.insert(0, _path)
# autodoc imports all from kiwi, thus we need the global log
from kiwi import logger
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.autosummary',
'sphinx.ext.extlinks',
'sphinx.ext.todo',
'sphinx.ext.ifconfig',
'sphinx.ext.viewcode',
'sphinxcontrib.spelling',
'sphinx.ext.autodoc'
]
docopt_ignore = [
'kiwi.cli',
'kiwi.tasks.system_build',
'kiwi.tasks.system_prepare',
'kiwi.tasks.system_update',
'kiwi.tasks.system_create',
'kiwi.tasks.result_list',
'kiwi.tasks.result_bundle',
'kiwi.tasks.image_resize',
'kiwi.tasks.image_info'
]
def remove_module_docstring(app, what, name, obj, options, lines):
if what == "module" and name in docopt_ignore:
del lines[:]
def setup(app):
app.connect("autodoc-process-docstring", remove_module_docstring)
app.add_stylesheet('css/custom.css')
spelling_lang = 'en_US'
spelling_show_suggestions = True
spelling_ignore_acronyms = True
spelling_ignore_importable_modules = True
spelling_ignore_python_builtins = True
spelling_ignore_pypi_package_names = True
spelling_word_list_filename = '.wordlists/spelling_wordlist.txt'
# Add any paths that contain templates here, relative to this directory.
templates_path = ['.templates']
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
source_encoding = 'utf-8-sig'
# The master toctree document.
master_doc = 'index'
default_role="py:obj"
# General information about the project.
project = u'kiwi'
copyright = u'2016, Marcus Schäfer'
author = u'Marcus Schäfer'
# 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 = u'9.7.4'
# The full version, including alpha/beta/rc tags.
release = version
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = 'en'
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
exclude_patterns = []
# If true, '()' will be appended to :func: etc. cross-reference text.
#add_function_parentheses = True
# If true, the current module name will be prepended to all description
# unit titles (such as .. function::).
#add_module_names = True
# If true, sectionauthor and moduleauthor directives will be shown in the
# output. They are ignored by default.
#show_authors = False
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
# A list of ignored prefixes for module index sorting.
#modindex_common_prefix = []
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = True
extlinks = {
'issue': ('https://github.com/SUSE/kiwi/issues/%s', '#'),
'pr': ('https://github.com/SUSE/kiwi/pull/%s', 'PR #'),
'ghkiwi': ('https://github.com/SUSE/kiwi/blob/master/%s', '')
}
autosummary_generate = True
# -- Options for HTML output ----------------------------------------------
#html_short_title = '%s-%s' % (project, version)
#html_last_updated_fmt = '%b %d, %Y'
#html_split_index = True
html_logo = '.images/kiwi-logo.png'
html_sidebars = {
'**': [
'localtoc.html', 'relations.html',
'about.html', 'searchbox.html',
]
}
html_theme = "sphinx_rtd_theme"
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
html_static_path = ['.static']
html_theme_options = {
'collapse_navigation': False,
'display_version': False
}
# -- Options for manual page output ---------------------------------------
# The man page toctree documents.
kiwi_doc = 'commands/kiwi'
result_list_doc = 'commands/result_list'
result_bundle_doc = 'commands/result_bundle'
system_prepare_doc = 'commands/system_prepare'
system_update_doc = 'commands/system_update'
system_build_doc = 'commands/system_build'
system_create_doc = 'commands/system_create'
image_resize_doc = 'commands/image_resize'
image_info_doc = 'commands/image_info'
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
(
kiwi_doc,
'kiwi', u'Creating Operating System Images',
[author],
2
),
(
result_list_doc,
'kiwi::result::list',
u'List build results',
[author],
2
),
(
result_bundle_doc,
'kiwi::result::bundle',
u'Bundle build results',
[author],
2
),
(
system_prepare_doc,
'kiwi::system::prepare',
u'Prepare image root system',
[author],
2
),
(
system_create_doc,
'kiwi::system::create',
u'Create image from prepared root system',
[author],
2
),
(
system_update_doc,
'kiwi::system::update',
u'Update/Upgrade image root system',
[author],
2
),
(
system_build_doc,
'kiwi::system::build',
u'Build image in combined prepare and create step',
[author],
2
),
(
image_resize_doc,
'kiwi::image::resize',
u'Resize disk images to new geometry',
[author],
2
),
(
image_info_doc,
'kiwi::image::info',
u'Provide detailed information about an image description',
[author],
2
)
]
# If true, show URL addresses after external links.
#man_show_urls = False