This repository contains tools used by the OpenStack Documentation project.
For more details, see the OpenStack Documentation wiki page.
Apache Maven must be installed to build the documentation.
To install Maven 3 for Ubuntu 12.04 and later, and Debian wheezy and later:
apt-get install maven
yum install maven3
This package needs a few external dependencies including lxml. If you do not have lxml installed, you can either install python-lxml or have it installed automatically and build from sources. To build lxml from sources, you need a C compiler and the xml and xslt development packages installed.
To install python-lxml, execute the following based on your distribution.
yum install python-lxml
zypper in python-lxml
apt-get install python-lxml
For building from source, install the dependencies of lxml.
zypper in libxslt-devel
apt-get install libxml2-dev libxslt-dev
The repository contains in the directory
os_doc_tools/resources a local copy of some RNG schema files so that they do not need to be downloaded each time for validation of XML and WADL files.
Please see the
README.txt in the directory for details on where these files come from.
If you run the
openstack-doc-test --check-build, it will copy all the books to the directory
publish-docs in the top-level directory of your repository.
By default, it outputs a directory with the same name as the directory where the pom.xml file lives in, such as admin-guide-cloud. You can also check the output of the build job for the name.
Some books need special treatment and there are three options you can set in the file
book- the name of a book that needs special treatment
target_dir- the path of subdirectory starting at
targetthat is the root for publishing
publish_dir- a new name to publish a book under
As an example, to publish the compute-api version 2 in the directory
book = openstack-compute-api-2 target_dir = target/docbkx/webhelp/api/openstack-compute/2 publish_dir = api/openstack-compute/2
Note that these options can be specified multiple times and should always be used this way. You do not need to set
publish_dir but if you set it, you need to use it every time.
Also note that these are optional settings, the logic in the tool is sufficient for many of the books.
openstack-doc-test: Output information about tested patch, special case entity files for book building. Remove special handling for high-availability-guide, it is not using asciidoc anymore. Fix handling of ignore-dir parameter.
openstack-auto-commands: Improved screen generation and swift subcommand xml output.
openstack-doc-test: Warn about non-breaking space, enhance -v output, special case building of localized high-availability guide, fix for building changed identity-api repository.
openstack-jsoncheckto check for niceness of JSON files and reformat them.
openstack-autohelp: Update the default parameters. The tables are generated in the doc/common/tables/ dir by default, and the git repository for the project being worked on is looked at in a sources/ dir by default.
extract_swift_flags: Correctly parses existing tables and improve the output to ease the tables edition.
openstack-generate-docbookhandles now the api-site project: Parameter --root gives root directory to use.
generatepot. They have been obsoleted in 0.7.
openstack-doc-test: Handle changes in api-site project, new option --print-unused-files.
openstack-autohelp: Handle keystone_authtoken options.
openstack-doc-testthat does not publish the www directory to the wrong location.
openstack-doc-testto handle changes in
api-siterepository: Do not publish wadls directory, *.fo files and add api-ref-guides PDF files to index file for docs-draft.
openstack-auto-commands: handle ironic, sahara; improve generated output.
Fixes for openstack-doc-test:
Fixes for autodoc-tools to sanitize values and handle projects.
Client version number is output by openstack-auto-commands.
Fixes for openstack-doc-test:
- Fix building of identity-api and image-api books.
- Add option --debug.
- Generate log file for each build.
- Do not install build-ha-guide.sh and markdown-docbook.sh in /usr/bin, use special scripts dir instead.
- Allow to configure the directory used under publish-doc
Our community welcomes all people interested in open source cloud computing, and encourages you to join the OpenStack Foundation. The best way to get involved with the community is to talk with others online or at a meetup and offer contributions through our processes, the OpenStack wiki, blogs, or on IRC at
We welcome all types of contributions, from blueprint designs to documentation to testing to deployment scripts.
If you would like to contribute to the development, you must follow the steps in the "If you're a developer, start here" section of this page:
Once those steps have been completed, changes to OpenStack should be submitted for review via the Gerrit tool, following the workflow documented at:
Pull requests submitted through GitHub will be ignored.
Bugs should be filed on Launchpad, not GitHub: