Add sphinxmark to packages that require manual installation when not using tox. Add note that the sphinxmark dep Pillow may require installation of external C libraries on some systems. Change-Id: I7a001eddeb83a30017fd292cb0cb313b89b2df07
6.5 KiB
Building documentation
Building output locally
The openstack-manuals project uses a tox.ini file with specific sections that run jobs using the Tox tool, a virtualenv-based automation of test activities.
Tox prerequisites and installation
Install the prerequisites for Tox:
On Ubuntu or Debian:
# apt-get install gcc gettext python-dev libxml2-dev libxslt1-dev \ zlib1g-dev
You may need to use
pip install
for some packages.On RHEL or CentOS including Fedora:
# yum install gcc python-devel libxml2-devel libxslt-devel
On openSUSE or SUSE Linux Enterprise:
# zypper install gcc python-devel libxml2-devel libxslt-devel
Install python-tox:
# pip install tox
Build workflow
Once Tox is installed and configured, execute tox -e <jobname>
to
run a particular job:
To build all docs, open your local openstack-manuals project and run:
$ tox -e checkbuild
To build a specific guide, add the guide folder name to the
tox -e build
command. For example:$ tox -e build -- contributor-guide
Note
This command does not work for the install-guide, as it contains conditional content. To build specific parts of the Installation tutorials, use the commands below:
$ tox -e install-guide-debconf $ tox -e install-guide-debian $ tox -e install-guide-obs $ tox -e install-guide-rdo $ tox -e install-guide-ubuntu
This runs the sphinx-build
command. When the build is finished,
it displays in the openstack-manuals/publish-docs
directory. You can open the .html
file in a browser to view
the resulting output.
If you do not want to use Tox, install the below prerequisites locally:
# pip install sphinx
# pip install openstackdocstheme
# pip install sphinxmark
Note
Sphinxmark uses the Pillow
module for creating PNG files. If you encounter
C module is not installed
errors when Sphinx loads the
sphinxmark extension, you may need to install some of the external
libraries for Pillow.
To get the .html
output locally, switch to the directory
containing a conf.py
and run:
$ sphinx-build /path/to/source/ path/to/build/
The RST source is built into HTML using Sphinx, so that it is displayed on the docs.openstack.org/<guide-name>. For example: http://docs.openstack.org/user-guide/.
Using Tox to check builds
As a part of the review process, Jenkins runs gating scripts to check that the patch is fine. Locally, you can use the Tox tool to ensure that a patch works. To check all books, run the following command from the base directory of repository:
$ tox
The following individual checks are also availableː
tox -e checkniceness
- to run the niceness tests (for example, to see extra whitespaces)tox -e checksyntax
- to run syntax checkstox -e checklang
- to check all the translated manualstox -e docs
- to build only RST-sourced manualstox -e checkbuild
- to build all the manuals. This will also generate a directorypublish-docs
that contains the built files for inspection.
Note
- The scripts are not written for Windows, but we encourage cross-platform work on our scripts.
- If Tox stops working, try
tox --recreate
to rebuild the environment.
Build an existing patch locally
To build a patch locally:
Change to the directory containing the appropriate repository:
- openstack-manuals
- security-doc
- api-site
For example:
$ cd openstack-manuals
Create a local branch that contains the particular patch.
$ git review -d PATCH_ID
Where the value of
PATCH_ID
is a Gerrit commit number. You can find this number on the patch link,https://review.openstack.org/#/c/PATCH_ID
.Build all the books that are affected by changes in the patch set:
$ tox -e checkbuild
Find the build result in
publish-docs/index.html
.
Build jobs
The build jobs for documentation are stored in the http://git.openstack.org/cgit/openstack-infra/project-config
repository. The zuul/layout.yaml
file and the
jenkins/jobs/manual-jobs.yaml
or
jenkins/jobs/api-jobs.yaml
file contain the Jenkins build
jobs that build to the docs.openstack.org and developer.openstack.org
sites, copying built files via FTP.
The release specific books are built for the currently supported branches (current and previous releases), development happens on the master branch. The continuously released books are only built on the master branch.
Like other projects, the documentation projects use a number of jobs that do automatic testing of patches.
The current jobs are:
- gate-openstack-manuals-tox-checkniceness
- gate-openstack-manuals-tox-doc-publish-checkbuild
- gate-openstack-manuals-tox-checklang
Checklang job
We only gate on manual/language combinations that are translated sufficiently. For example, in openstack-manuals this includes Japanese with the Security Guide, HA Guide and Install Guides.
- If an import from Zanata fails, we do not approve the import.
- If any other patch fails, the failure might get ignored.
- In any case of failure, a bug gets reported against the i18n project.
If you want to manually run this check on your local workstation you
can use the checklang environment (tox -e checklang
). To use this environment, you
first have to install the xml2po utility on your local
workstation. xml2po is part of the gnome-doc-utils and can be installed
with yum install gnome-doc-utils
(on RedHat-based
distributions), or zypper install xml2po
(on SUSE-based
distributions).