From 7ba07dbf700fefb7d386509bca877de792c94cb3 Mon Sep 17 00:00:00 2001 From: Boxiang Zhu Date: Fri, 29 Jul 2022 14:04:20 +0800 Subject: [PATCH] feat: Add doc base frame Add doc base frame Change-Id: Id0a4168873232ef7feedaf1e1c1b6ed2b69a8f17 --- .dockerignore | 2 + .gitignore | 2 + .zuul.yaml | 3 + doc/README.rst | 33 ++++ doc/ext/__init__.py | 0 doc/requirements.txt | 12 ++ doc/source/admin/index.rst | 6 + doc/source/cli/index.rst | 19 +++ doc/source/conf.py | 235 +++++++++++++++++++++++++++++ doc/source/configuration/index.rst | 6 + doc/source/contributor/index.rst | 34 +++++ doc/source/images/.placeholder | 0 doc/source/index.rst | 94 ++++++++++++ doc/source/install/index.rst | 6 + doc/source/reference/index.rst | 19 +++ tox.ini | 20 +++ 16 files changed, 491 insertions(+) create mode 100644 doc/README.rst create mode 100644 doc/ext/__init__.py create mode 100644 doc/requirements.txt create mode 100644 doc/source/admin/index.rst create mode 100644 doc/source/cli/index.rst create mode 100644 doc/source/conf.py create mode 100644 doc/source/configuration/index.rst create mode 100644 doc/source/contributor/index.rst create mode 100644 doc/source/images/.placeholder create mode 100644 doc/source/index.rst create mode 100644 doc/source/install/index.rst create mode 100644 doc/source/reference/index.rst diff --git a/.dockerignore b/.dockerignore index 20dc7ea..e11058c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -73,6 +73,8 @@ tmp/ test_results.html nginx.conf **/mypy-report/ +**/doc/build +**/doc/source/_static # MAC OS .DS_Store diff --git a/.gitignore b/.gitignore index c234cff..34003fc 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,8 @@ test_results.html skyline-console-* nginx.conf mypy-report/ +doc/build +doc/source/_static # MAC OS .DS_Store diff --git a/.zuul.yaml b/.zuul.yaml index 69df211..7f3e272 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -44,6 +44,9 @@ tox_envlist: pep8 - project: + templates: + - release-notes-jobs-python3 + - publish-openstack-docs-pti check: jobs: - skyline-tox-py38: diff --git a/doc/README.rst b/doc/README.rst new file mode 100644 index 0000000..233e93b --- /dev/null +++ b/doc/README.rst @@ -0,0 +1,33 @@ +================================== +Skyline APIServer Development Docs +================================== + +Files under this directory tree are used for generating the documentation +for the skyline-apiserver source code. + +Developer documentation is built to: +https://docs.openstack.org/skyline-apiserver/latest/ + +Tools +===== + +Sphinx + The Python Sphinx package is used to generate the documentation output. + Information on Sphinx, including formatting information for RST source + files, can be found in the `Sphinx online documentation + `_. + +Graphviz + Some of the diagrams are generated using the ``dot`` language + from Graphviz. See the `Graphviz documentation `_ + for Graphviz and dot language usage information. + + +Building Documentation +====================== + +Doc builds are performed using tox with the ``docs`` target:: + + % cd .. + % tox -e docs + diff --git a/doc/ext/__init__.py b/doc/ext/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/doc/requirements.txt b/doc/requirements.txt new file mode 100644 index 0000000..e7fb3d0 --- /dev/null +++ b/doc/requirements.txt @@ -0,0 +1,12 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. + +openstackdocstheme>=2.2.1 # Apache-2.0 +reno>=3.1.0 # Apache-2.0 +doc8>=0.6.0 # Apache-2.0 +sphinx>=2.0.0,!=2.1.0 # BSD +os-api-ref>=1.4.0 # Apache-2.0 +ddt>=1.0.1 # MIT +fixtures>=3.0.0 # Apache-2.0/BSD +oslotest>=3.2.0 # Apache-2.0 diff --git a/doc/source/admin/index.rst b/doc/source/admin/index.rst new file mode 100644 index 0000000..90c0788 --- /dev/null +++ b/doc/source/admin/index.rst @@ -0,0 +1,6 @@ +=========== +Admin Guide +=========== + +.. toctree:: + :maxdepth: 1 diff --git a/doc/source/cli/index.rst b/doc/source/cli/index.rst new file mode 100644 index 0000000..b3d9905 --- /dev/null +++ b/doc/source/cli/index.rst @@ -0,0 +1,19 @@ +.. + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + + +Command Line Interface +---------------------- + +.. toctree:: + :maxdepth: 1 diff --git a/doc/source/conf.py b/doc/source/conf.py new file mode 100644 index 0000000..300f0b2 --- /dev/null +++ b/doc/source/conf.py @@ -0,0 +1,235 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# skyline-apiserver documentation build configuration file, created by +# sphinx-quickstart on Fri July 29 11:11:50 2022. +# +# This file is execfile()d with the current directory set +# to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys +import os + +# 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. +sys.path.insert(0, os.path.abspath('../../')) +sys.path.insert(0, os.path.abspath('../')) +sys.path.insert(0, os.path.abspath('./')) + +# -- General configuration ---------------------------------------------------- + +# 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.coverage', + 'sphinx.ext.ifconfig', + 'sphinx.ext.graphviz', + 'openstackdocstheme', + ] + +# openstackdocstheme options +openstackdocs_repo_name = 'openstack/skyline-apiserver' +openstackdocs_pdf_link = True +openstackdocs_bug_project = 'skyline-apiserver' +openstackdocs_bug_tag = 'docs' + +todo_include_todos = True + +# Add any paths that contain templates here, relative to this directory. +templates_path = [] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +# source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +copyright = '2022, Skyline APIServer developers' + + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# language = None + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +# today = '' +# Else, today_fmt is used as the format for a strftime call. +# today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use +# for all documents. +# default_role = None + +# 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 = False + +# 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 = 'native' + +# A list of ignored prefixes for module index sorting. +modindex_common_prefix = ['skyline-apiserver.'] + +# -- Options for man page output ---------------------------------------------- + +# Grouping the document tree for man pages. +# List of tuples 'sourcefile', 'target', u'title', u'Authors name', 'manual' + +# man_pages = [ +# ('cli/manila-manage', 'manila-manage', u'Cloud controller fabric', +# [u'OpenStack'], 1), +# ('cli/manila-status', 'manila-status', u'Cloud controller fabric', +# [u'OpenStack'], 1), +# ] + +# -- Options for HTML output -------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +html_theme = 'openstackdocs' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +html_theme_options = { + "show_other_versions": "True", +} + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +# html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +# html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +# html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +# html_favicon = None + +# 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'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +# html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +# html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +# html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +# html_additional_pages = {} + +# If false, no module index is generated. +# html_use_modindex = True + +# If false, no index is generated. +# html_use_index = True + +# If true, the index is split into individual pages for each letter. +# html_split_index = False + +# If true, links to the reST sources are added to the pages. +# html_show_sourcelink = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +# html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +# html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'SkylineAPIServerdoc' + + +# -- Options for LaTeX output ------------------------------------------------- + +# The paper size ('letter' or 'a4'). +# latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +# latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass +# [howto/manual]). +latex_documents = [ + ('index', 'SkylineAPIServerdoc.tex', u'Skyline APIServer Developer Documentation', + u'Skyline APIServer contributors', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +# latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +# latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +# latex_preamble = '' + +# Documents to append as an appendix to all manuals. +# latex_appendices = [] + +# If false, no module index is generated. +# latex_use_modindex = True + +latex_domain_indices = False + +latex_elements = { + 'makeindex': '', + 'printindex': '', + 'preamble': r'\setcounter{tocdepth}{3}', + 'maxlistdepth': 10, +} diff --git a/doc/source/configuration/index.rst b/doc/source/configuration/index.rst new file mode 100644 index 0000000..2ac2dc9 --- /dev/null +++ b/doc/source/configuration/index.rst @@ -0,0 +1,6 @@ +============= +Configuration +============= + +.. toctree:: + :maxdepth: 1 diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst new file mode 100644 index 0000000..2a9a416 --- /dev/null +++ b/doc/source/contributor/index.rst @@ -0,0 +1,34 @@ +.. + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + + +Contributor/Developer Guide +=========================== + +In this section you will find information helpful for contributing to skyline-apiserver. + + +Basic Information +----------------- + +.. toctree:: + :maxdepth: 1 + +.. only:: html + + Indices and tables + ------------------ + + * :ref:`genindex` + * :ref:`search` + diff --git a/doc/source/images/.placeholder b/doc/source/images/.placeholder new file mode 100644 index 0000000..e69de29 diff --git a/doc/source/index.rst b/doc/source/index.rst new file mode 100644 index 0000000..54a3a1d --- /dev/null +++ b/doc/source/index.rst @@ -0,0 +1,94 @@ +.. + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + + +============================================================ +OpenStack Modern Dashboard (Skyline APIServer) documentation +============================================================ + +What is Skyline APIServer? +-------------------------- + +Skyline APIServer is one part of the OpenStack Modern Dashboard for providing +restful api. + +For end users +------------- + +As an end user, we don't suggest you to use this Skyline APIServer directly. +Instead, you should use Skyline Dashboard(With Skyline Console). + +For operators +------------- + +Installing Skyline APIServer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. toctree:: + :maxdepth: 1 + + install/index + +Administrating Skyline APIServer +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Contents: + +.. toctree:: + :maxdepth: 1 + + admin/index + +Reference +~~~~~~~~~ + +Contents: + +.. toctree:: + :maxdepth: 1 + + configuration/index + cli/index + +Additional resources +~~~~~~~~~~~~~~~~~~~~ + + +For contributors +---------------- + + +.. toctree:: + :maxdepth: 1 + + contributor/index + +Additional reference +~~~~~~~~~~~~~~~~~~~~ + +Contents: + +.. toctree:: + :maxdepth: 1 + + reference/index + +.. only:: html + + Additional reference + ~~~~~~~~~~~~~~~~~~~~ + + Contents: + + * :ref:`genindex` + diff --git a/doc/source/install/index.rst b/doc/source/install/index.rst new file mode 100644 index 0000000..e78a304 --- /dev/null +++ b/doc/source/install/index.rst @@ -0,0 +1,6 @@ +===================== +Installation Tutorial +===================== + +.. toctree:: + :maxdepth: 1 diff --git a/doc/source/reference/index.rst b/doc/source/reference/index.rst new file mode 100644 index 0000000..12ad891 --- /dev/null +++ b/doc/source/reference/index.rst @@ -0,0 +1,19 @@ +.. + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain + a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. + + +Reference +--------- + +.. toctree:: + :maxdepth: 1 diff --git a/tox.ini b/tox.ini index 1a0f0e5..3aa9ca3 100644 --- a/tox.ini +++ b/tox.ini @@ -76,6 +76,26 @@ extras = commands = pytest +[testenv:docs] +deps = + -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} + -r{toxinidir}/requirements.txt + -r{toxinidir}/doc/requirements.txt +commands = + rm -rf doc/build + sphinx-build -W -b html doc/source doc/build/html + # Ignore D001 since we allow lines in excess of 79 characters. + doc8 --ignore D001 --ignore-path .tox --ignore-path .venv --ignore-path doc/build --ignore-path skyline_apiserver.egg-info -e .txt -e .rst -e .inc +allowlist_externals = rm + +[testenv:pdf-docs] +deps = {[testenv:docs]deps} +allowlist_externals = + make +commands = + sphinx-build -W -b latex doc/source doc/build/pdf + make -C doc/build/pdf + [testenv:releasenotes] description = Generate release notes.