Jump to: navigation, search

Difference between revisions of "Documentation/Builds"

(Build jobs and pom.xml)
 
(41 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 +
Read the new content in the [http://docs.openstack.org/contributor-guide/docs-builds.html Documentation Contributor Guide].
 +
 
{{OpenStack_Documentation_Navbar}}
 
{{OpenStack_Documentation_Navbar}}
 
== Documentation source and target locations (current) ==
 
 
In addition to this mapping, branches of the openstack-manuals and other repositories indicate where docs are published. For example, from stable/grizzly, doc source files are published to docs.openstack.org/grizzly and from the master branch, doc source files are published to docs.openstack.org/trunk by our lovely Jenkins butlers always at the ready.
 
 
=== Installation guides ===
 
{| class="wikitable sortable"
 
|-
 
! Document !! Source location !! Target location
 
|-
 
| Installation Guide for Debian 7.0 || https://github.com/openstack/openstack-manuals/tree/master/doc/install-guide || http://docs.openstack.org/trunk/install-guide/install/apt-debian/content/
 
|-
 
| Installation Guide for openSUSE and SUSE Linux Enterprise Server || https://github.com/openstack/openstack-manuals/tree/master/doc/install-guide || http://docs.openstack.org/trunk/install-guide/install/zypper/content/
 
|-
 
| Installation Guide for Red Hat Enterprise Linux, CentOS, and Fedora || https://github.com/openstack/openstack-manuals/tree/master/doc/install-guide || http://docs.openstack.org/trunk/install-guide/install/yum/content/
 
|-
 
| Installation Guide for Ubuntu 12.04 (LTS)  || https://github.com/openstack/openstack-manuals/tree/master/doc/install-guide || http://docs.openstack.org/trunk/install-guide/install/apt/content/
 
|-
 
|}
 
 
=== Configuration guides ===
 
{| class="wikitable sortable"
 
|-
 
! Document !! Source location !! Target location
 
|-
 
| Configuration Reference || https://github.com/openstack/openstack-manuals/tree/master/doc/config-reference || http://docs.openstack.org/trunk/config-reference/content/
 
|-
 
| Cloud Administrator Guide || https://github.com/openstack/openstack-manuals/tree/master/doc/admin-guide-cloud || http://docs.openstack.org/admin-guide-cloud/content/
 
|-
 
| High Availability Guide || https://github.com/openstack/openstack-manuals/tree/master/doc/high-availability-guide || http://docs.openstack.org/trunk/high-availability-guide/content/index.html
 
|-
 
| Operations Guide || https://github.com/openstack/operations-guide || http://docs.openstack.org/trunk/openstack-ops/content/
 
|-
 
| Security Guide ||  https://github.com/openstack/openstack-manuals/tree/master/doc/security-guide || http://docs.openstack.org/trunk/security-guide/content
 
|-
 
| Virtual Machine Image Guide || https://github.com/openstack/openstack-manuals/tree/master/doc/src/docbkx/openstack-image || http://docs.openstack.org/trunk/openstack-image/content/
 
|}
 
 
=== Guides for using the OpenStack dashboard and command-line clients ===
 
{| class="wikitable sortable"
 
|-
 
! Document !! Source location !! Target location
 
|-
 
| API Quick Start || https://github.com/openstack/api-site/tree/master/api-quick-start || http://docs.openstack.org/api/quick-start/content/
 
|-
 
| End User Guide || https://github.com/openstack/openstack-manuals/tree/master/doc/user-guide || http://docs.openstack.org/user-guide/content/
 
|-
 
|Admin User Guide ||https://github.com/openstack/openstack-manuals/tree/master/doc/user-guide-admin || http://docs.openstack.org/user-guide-admin/content/
 
|-
 
| Command Line Interface Reference || https://github.com/openstack/openstack-manuals/tree/master/doc/cli-reference || http://docs.openstack.org/cli-reference/content/
 
|-
 
|}
 
 
=== Developer guides ===
 
{| class="wikitable sortable"
 
|-
 
! Document !! Source location !! Target location
 
|-
 
| API Reference || https://github.com/openstack/api-site/tree/master/api-ref || http://api.openstack.org/api-ref.html
 
|-
 
| Block Storage Service API v2 Reference || https://github.com/openstack/volume-api/tree/master/v2 || http://docs.openstack.org/api/openstack-block-storage/2.0/content/
 
|-
 
| Block Storage Service API v1 Reference || https://github.com/openstack/volume-api/tree/master/v1 || N/A
 
|-
 
| Compute API v2 and Extensions Reference || https://github.com/openstack/compute-api || http://docs.openstack.org/api/openstack-compute/2/content/
 
|-
 
| Identity Service API v2.0 Reference || https://github.com/openstack/identity-api || http://docs.openstack.org/api/openstack-identity-service/2.0/content/
 
|-
 
| Networking API v2.0 Reference || https://github.com/openstack/netconn-api || http://docs.openstack.org/api/openstack-network/2.0/content/
 
|-
 
| Image Service API v2 Reference || https://github.com/openstack/image-api/tree/master/openstack-image-service-api/src/markdown|| http://docs.openstack.org/api/openstack-image-service/2.0/content/
 
|-
 
| Image Service API v1 Reference || https://github.com/openstack/image-api/tree/master/openstack-image-service-api/src/docbkx || http://docs.openstack.org/api/openstack-image-service/1.1/content/
 
|-
 
| Object Storage API v1 Reference || https://github.com/openstack/object-api || http://docs.openstack.org/api/openstack-object-storage/1.0/content/
 
|}
 
 
=== Contributor guides ===
 
{| class="wikitable sortable"
 
|-
 
! Document !! Source location !! Target location
 
|-
 
| Python Developer Documentation || https://github.com/openstack/<project>/tree/master/doc/source/, such as https://github.com/openstack/nova/tree/master/doc/source || http://docs.openstack.org/developer/openstack-projects.html
 
|-
 
| Language Bindings and Python Clients || https://github.com/openstack/python-<project>client/tree/master/doc/source/, such as https://github.com/openstack/python-novaclient/tree/master/doc/source || http://docs.openstack.org/developer/language-bindings.html
 
|-
 
| OpenStack Project Infrastructure || https://github.com/openstack-infra/config/tree/master/doc/source || http://ci.openstack.org/
 
|-
 
| Tempest Testing Project || https://github.com/openstack/tempest/tree/master/doc/source || http://docs.openstack.org/developer/tempest/
 
|}
 
 
== Build jobs and pom.xml ==
 
 
The build jobs for documentation are stored in the github.com/openstack-infra/config repository. The modules/openstack_project/files/zuul/layout.yaml file and the modules/openstack_project/files/jenkins_job_builder/config/manuals.yaml,  modules/openstack_project/files/jenkins_job_builder/config/manuals-jobs.yaml or api-docs.yaml file contain the Jenkins build jobs that build to the docs.openstack.org and api.openstack.org sites, copying built files via FTP. An example patch is here: https://review.openstack.org/#/c/36102/3 for adding a completely new document build.
 
 
The build jobs build the books for the branches listed below.
 
 
The book files, including the pom.xml files, live in the following github.com/openstack/ repositories:
 
 
* openstack-manuals repository includes:
 
** admin-guide-cloud (1): master
 
** cli-guide (1): master
 
** config-reference (1): havana, master
 
** glossary (1): master
 
** high-availabilty-guide (1): master
 
** image-guide (1): master
 
** install-guide (4 variants): havana, master
 
** security-guide (1): master
 
** training-guides (1): master
 
** user-guide (1): master
 
** user-guide-admin (1): master
 
* operations-guide (1)
 
 
API docs
 
* api-site (no branches for API docs):
 
** api-quick-start (1)
 
** api-reference (1)
 
* compute-api (3)
 
* image-api (2)
 
* object-api (1)
 
* netconn-api (2)
 
* volume-api (1)
 
* identity-api (2)
 
 
 
Total: 15 (ops) +13 (api) =28 books build with jobs, 24 pom.xml files get built
 
 
== Maven Plugin ==
 
 
The Maven Plugin is updated periodically with features we may want to incorporate in the OpenStack build process. Specifically 1.8.0 is what we use for Grizzly documentation as it contains features designed to make life easier. These changes also required some changes in pom.xml for each book. All these changes have been incorporated so this is information to describe the settings in pom.xml. A major new feature of this version of the plugin is that images are automatically handled for you. This saves two steps and adds a level of validation.
 
 
You no longer have to add a postProcess section to your pom.xml configuration to copy image files into the webhelp output directory unless you want to do a clean up step of deleting the renamed directory.
 
 
Instead, these settings tell the build where to place the built files.
 
 
  <targetDirectory>${basedir}/target/docbkx/webhelp/admin-guide-cloud<targetDirectory>
 
  <webhelpDirname>/</webhelpDirname>
 
  <pdfFilenameBase>bk-admin-guide-cloud-latest</pdfFilenameBase>
 
 
The clouddocs-maven-plugin automatically detects which images you use in your document and copies them to the output directory. When you use .svg graphics, you do not have to create a .png version. Now, when you generate web help, the clouddocs-maven-plugin automatically converts the .svg to a .png file and uses it instead. You want to ensure all images have the <figure> tag and use contentwidth="6in" as an attribute on the <imageobject>. The system also checks for the availability of images before proceeding with the build, but you may still see "Figure not found" errors that you can safely ignore.
 
 
When you generate web help, by default the plugin now automatically generates a PDF and puts it in the webhelp directory, so links will no longer break to the PDF. You can also remove any pdf processing instructions from the book file itself.
 
 
=== SNAPSHOT builds ===
 
 
To build with the latest SNAPSHOT version of the plugin, do the following:
 
 
# Clone the clouddocs-maven-plugin: git clone https://git.openstack.org/stackforge/clouddocs-maven-plugin
 
# cd into the repo: cd clouddocs-maven-plugin
 
# Build the plugin: mvn clean install
 
# Edit your document's pom.xml file to depend on the current snapshot version of the plugin. E.g. 1.12.1-SNAPSHOT
 
# Build the document: mvn clean generate-sources
 
 
== Markdown and DocBook ==
 
 
When a source file is markdown, the Jenkins jobs converts it to DocBook then builds with the Maven plugin.
 
 
The basic script is:
 
 
pandoc -f markdown -t docbook -s ${FILEPATH} |  xsltproc -o - /usr/share/xml/docbook/stylesheet/docbook5/db4-upgrade.xsl - |  xmllint  --format - | sed -e "s,<article,<chapter xml:id=\"$FILENAME\"," | sed -e 's,</article>,</chapter>,' > ${DIRPATH}/$FILENAME.xml
 
 
Then, run <code>mvn clean generate-sources</code> on the resulting <code>FILENAME.xml</code> file.
 
 
Typically the best route would be to create a Jenkins slave since it'll have all the dependencies. However if you don't want to set up your own Jenkins setup, these are the packages that have to be installed on an Ubuntu server that does the doc build:
 
 
* <code>asciidoc</code>
 
* <code>xsltproc</code>
 
* <code>docbook-xml</code>
 
* <code>docbook5-xml</code>
 
* <code>docbook-xsl</code>
 
* <code>sgml-data</code>
 
  
 
----
 
----
 
[[Category:Documentation]]
 
[[Category:Documentation]]

Latest revision as of 19:20, 26 October 2015

Read the new content in the Documentation Contributor Guide.