
Our existing `api_version` decorator for microversions forces us to use "# noqa" if we have multiple microversions of a method in the same class, providing no way around this. This patch adds a way to avoid using noqa directive. Previously we would have: @wsgi.Controller.api_version("3.3") def my_api_method(self, req, id): .... method_1 ... @wsgi.Controller.api_version("3.4") # noqa def my_api_method(self, req, id): .... method_2 ... With this patch the second method does not require noqa anymore: @my_api_method.api_version("3.4") def my_api_method(self, req, id): .... method_2 ... Devref is updated to reflect this new change and to mention that it is the recommended way to do it. Change-Id: I46283b52cc6a347d5deb0f57a123eba4e01a3eb2 Closes-Bug: #1599806
Building the docs
Dependencies
- Sphinx
-
You'll need sphinx (the python one) and if you are using the virtualenv you'll need to install it in the virtualenv specifically so that it can load the cinder modules.
pip install Sphinx
- Graphviz
-
Some of the diagrams are generated using the
dot
language from Graphviz.sudo apt-get install graphviz
Use make
Just type make:
% make
Look in the Makefile for more targets.
Manually
Generate the code.rst file so that Sphinx will pull in our docstrings:
% ./generate_autodoc_index.sh > source/code.rst
Run `sphinx_build`:
% sphinx-build -b html source build/html
Use tox
The easiest way to build the docs and avoid dealing with all dependencies is to let tox prepare a virtualenv and run the build_sphinx target inside the virtualenv:
% cd ..
% tox -e docs
The docs have been built
Check out the build directory to find them. Yay!