blob: 896c23170c574d555f436a0039fb67484ebf1af5 [file] [log] [blame]
Rich Bennettd504dc82018-05-31 08:40:36 -04001.. This work is licensed under a Creative Commons Attribution 4.0
2.. International License. http://creativecommons.org/licenses/by/4.0
3.. Copyright 2017 AT&T Intellectual Property. All rights reserved.
Rich Bennettac93e0e2017-07-19 01:36:52 -04004
Rich Bennettac93e0e2017-07-19 01:36:52 -04005
Rich Bennett1da30462017-08-24 12:11:36 -04006Setting Up
7==========
jsseidelda2324a2017-09-15 10:43:14 -04008
Rich Bennetta9d6a442017-08-25 02:37:15 -04009Some initial set up is required to connect a project with
Rich Bennett1da30462017-08-24 12:11:36 -040010the master document structure and enable automated publishing of
Blaisonneau David2963ece2017-11-27 10:07:18 +010011changes as summarized in the following diagram and description below
Rich Bennett1da30462017-08-24 12:11:36 -040012below.
Rich Bennettac93e0e2017-07-19 01:36:52 -040013
Rich Bennett1da30462017-08-24 12:11:36 -040014.. seqdiag::
Rich Bennetta9d6a442017-08-25 02:37:15 -040015 :height: 700
16 :width: 1000
Rich Bennettac93e0e2017-07-19 01:36:52 -040017
Rich Bennett1da30462017-08-24 12:11:36 -040018 seqdiag {
Rich Bennett1da30462017-08-24 12:11:36 -040019 DA [label = "Doc Project\nAuthor/Committer", color=lightblue];
20 DR [label = "Doc Gerrit Repo" , color=pink];
21 PR [label = "Other Project\nGerrit Repo", color=pink ];
22 PA [label = "Other Project\nAuthor/Committer", color=lightblue];
Blaisonneau David2963ece2017-11-27 10:07:18 +010023
Rich Bennette4c42512017-09-06 08:07:22 -040024 PA -> DR [label = "Add project repo as\ngit submodule" ];
25 DR -> DA [label = "Review & Plan to\nIntegrate Content with\nTocTree Structure" ];
26 DR <-- DA [label = "Vote +2/Merge" ];
Blaisonneau David2963ece2017-11-27 10:07:18 +010027 PA <-- DR [label = "Merge Notification" ];
Rich Bennette4c42512017-09-06 08:07:22 -040028 PA -> PR [label = "Create in project repo\ntop level directory and index.rst" ];
Rich Bennett358472a2017-08-31 08:05:36 -040029 PR -> DA [label = "Add as Reviewer" ];
30 PR <-- DA [label = "Approve and Integrate" ];
31 PA <-- PR [label = "Merge" ];
Rich Bennett1da30462017-08-24 12:11:36 -040032 }
Blaisonneau David2963ece2017-11-27 10:07:18 +010033
Rich Bennette4c42512017-09-06 08:07:22 -040034Setup project repositories(s)
35-----------------------------
Rich Bennettd504dc82018-05-31 08:40:36 -040036These steps are performed for each project repository that
37provides documentation.
Rich Bennett1da30462017-08-24 12:11:36 -040038
Rich Bennett5baea462017-09-13 03:19:19 -040039First let's set two variables that will be used in the subsequent steps.
Rich Bennettd504dc82018-05-31 08:40:36 -040040Set *reponame* to the project repository you are setting up
41just as it appears in the **Project Name** column of
42the Gerrit projects page.
43Set *lfid* to your Linux Foundation identity that you use to
44login to gerrit or for git clone requests over ssh.
Rich Bennette4c42512017-09-06 08:07:22 -040045
46.. code-block:: bash
47
48 reponame=
49 lfid=
50
Rich Bennettd504dc82018-05-31 08:40:36 -040051The next step is to add a directory in the doc project where your
52project will be included as a submodule and at least one reference
53from the doc project to the documentation index in your repository.
Rich Bennett5baea462017-09-13 03:19:19 -040054The following sequence will do this over ssh.
55
56.. caution::
57
Rich Bennettd504dc82018-05-31 08:40:36 -040058 If your access network restricts ssh, you will need to use equivalent
59 git commands and HTTP Passwords as described `here <http://wiki.onap.org/x/X4AP>`_.
Blaisonneau David2963ece2017-11-27 10:07:18 +010060
Rich Bennett358472a2017-08-31 08:05:36 -040061.. code-block:: bash
62
Rich Bennette4c42512017-09-06 08:07:22 -040063 git clone ssh://$lfid@gerrit.onap.org:29418/doc
Rich Bennett358472a2017-08-31 08:05:36 -040064 cd doc
65 mkdir -p `dirname docs/submodules/$reponame`
Rich Bennett2360e212017-09-20 08:26:05 -040066 git submodule add ../$reponame docs/submodules/$reponame.git
Rich Bennette4c42512017-09-06 08:07:22 -040067 git submodule init docs/submodules/$reponame.git
68 git submodule update docs/submodules/$reponame.git
Rich Bennett358472a2017-08-31 08:05:36 -040069
Rich Bennette4c42512017-09-06 08:07:22 -040070 echo " $reponame <../submodules/$reponame.git/docs/index>" >> docs/release/repolist.rst
Blaisonneau David2963ece2017-11-27 10:07:18 +010071
Rich Bennett358472a2017-08-31 08:05:36 -040072 git add .
Rich Bennette4c42512017-09-06 08:07:22 -040073 git commit -s
Rich Bennett358472a2017-08-31 08:05:36 -040074 git review
Blaisonneau David2963ece2017-11-27 10:07:18 +010075
Rich Bennett5baea462017-09-13 03:19:19 -040076.. caution::
77 Wait for the above change to be merged before any merge to the
78 project repository that you have just added as a submodule.
Rich Bennettd504dc82018-05-31 08:40:36 -040079 If the project repository added as submodule changes before the
80 doc project merge, git may not automatically update the submodule
81 reference on changes and/or the verify job will fail in the step below.
Rich Bennett358472a2017-08-31 08:05:36 -040082
83
Rich Bennettd504dc82018-05-31 08:40:36 -040084The last step is to create a docs directory in your repository with
85an index.rst file. The following sequence will complete the minimum
86required over ssh. As you have time to convert or add new content you
87can update the index and add files under the docs folder.
Rich Bennett5baea462017-09-13 03:19:19 -040088
89.. hint::
90 If you have additional content, you can include it by editing the
91 index.rst file and/or adding other files before the git commit.
Rich Bennettd504dc82018-05-31 08:40:36 -040092 See `Templates and Examples`_ below and :ref:`converting-to-rst`
93 for more information.
Blaisonneau David2963ece2017-11-27 10:07:18 +010094
Rich Bennett1da30462017-08-24 12:11:36 -040095
96.. code-block:: bash
97
Rich Bennette4c42512017-09-06 08:07:22 -040098 git clone ssh://$lfid@gerrit.onap.org:29418/$reponame
Rich Bennetta9d6a442017-08-25 02:37:15 -040099 cd $reponame
Rich Bennett1da30462017-08-24 12:11:36 -0400100 mkdir docs
101 echo ".. This work is licensed under a Creative Commons Attribution 4.0 International License.
102
Rich Bennetta9d6a442017-08-25 02:37:15 -0400103 TODO Add files to toctree and delete this header
104 ------------------------------------------------
Rich Bennett1da30462017-08-24 12:11:36 -0400105 .. toctree::
106 :maxdepth: 1
Blaisonneau David2963ece2017-11-27 10:07:18 +0100107
Rich Bennett1da30462017-08-24 12:11:36 -0400108 " > docs/index.rst
Blaisonneau David2963ece2017-11-27 10:07:18 +0100109
Rich Bennett1da30462017-08-24 12:11:36 -0400110 git add .
Rich Bennette4c42512017-09-06 08:07:22 -0400111 git commit -s
Rich Bennett1da30462017-08-24 12:11:36 -0400112 git review
Blaisonneau David2963ece2017-11-27 10:07:18 +0100113
Rich Bennettac93e0e2017-07-19 01:36:52 -0400114
Rich Bennett1da30462017-08-24 12:11:36 -0400115The diagram below illustrates what is accomplished in the setup steps
Rich Bennetta9d6a442017-08-25 02:37:15 -0400116above from the perspective of a file structure created for a local test,
Rich Bennett358472a2017-08-31 08:05:36 -0400117a jenkins verify job, and/or published release documentation including:
Rich Bennett0c826432017-09-18 17:28:09 -0400118
119- ONAP gerrit project repositories,
Rich Bennettac93e0e2017-07-19 01:36:52 -0400120
Rich Bennettd504dc82018-05-31 08:40:36 -0400121- doc project repository master document index.rst, templates,
122 configuration, and other documents
123
124- submodules directory where other project repositories and
125 directories/files are referenced
126
127- file structure: directories (ellipses), files(boxes)
128
129- references: directory/files (solid edges), git submodule
130 (dotted edges), sphinx toctree (dashed edges)
Rich Bennettac93e0e2017-07-19 01:36:52 -0400131
132.. graphviz::
133
Blaisonneau David2963ece2017-11-27 10:07:18 +0100134
Rich Bennettac93e0e2017-07-19 01:36:52 -0400135 digraph docstructure {
136 size="8,12";
137 node [fontname = "helvetica"];
138 // Align gerrit repos and docs directories
Rich Bennetta9d6a442017-08-25 02:37:15 -0400139 {rank=same doc aaf aai reponame repoelipse vnfsdk vvp}
Rich Bennett1da30462017-08-24 12:11:36 -0400140 {rank=same confpy release templates masterindex submodules otherdocdocumentelipse}
Rich Bennett358472a2017-08-31 08:05:36 -0400141 {rank=same releasedocumentindex releaserepolist}
Rich Bennettac93e0e2017-07-19 01:36:52 -0400142
143 //Illustrate Gerrit Repos and provide URL/Link for complete repo list
144 gerrit [label="gerrit.onap.org/r", href="https://gerrit.onap.org/r/#/admin/projects/" ];
Rich Bennett358472a2017-08-31 08:05:36 -0400145 doc [href="https://gerrit.onap.org/r/gitweb?p=doc.git;a=tree"];
Rich Bennettac93e0e2017-07-19 01:36:52 -0400146 gerrit -> doc;
147 gerrit -> aaf;
148 gerrit -> aai;
Blaisonneau David2963ece2017-11-27 10:07:18 +0100149 gerrit -> reponame;
Rich Bennett1da30462017-08-24 12:11:36 -0400150 gerrit -> repoelipse;
151 repoelipse [label=". . . ."];
Rich Bennettac93e0e2017-07-19 01:36:52 -0400152 gerrit -> vnfsdk;
153 gerrit -> vvp;
154
Rich Bennetta9d6a442017-08-25 02:37:15 -0400155 //Show example of local reponame instance of component info
156 reponame -> reponamedocsdir;
Blaisonneau David2963ece2017-11-27 10:07:18 +0100157 reponamesm -> reponamedocsdir;
Rich Bennetta9d6a442017-08-25 02:37:15 -0400158 reponamedocsdir [label="docs"];
Blaisonneau David2963ece2017-11-27 10:07:18 +0100159 reponamedocsdir -> repnamedocsdirindex;
Rich Bennette4c42512017-09-06 08:07:22 -0400160 repnamedocsdirindex [label="index.rst", shape=box];
Rich Bennettac93e0e2017-07-19 01:36:52 -0400161
Blaisonneau David2963ece2017-11-27 10:07:18 +0100162 //Show detail structure of a portion of doc/docs
Rich Bennettac93e0e2017-07-19 01:36:52 -0400163 doc -> docs;
Blaisonneau David2963ece2017-11-27 10:07:18 +0100164 docs -> confpy;
Rich Bennett1da30462017-08-24 12:11:36 -0400165 confpy [label="conf.py",shape=box];
Blaisonneau David2963ece2017-11-27 10:07:18 +0100166 docs -> masterindex;
Rich Bennett358472a2017-08-31 08:05:36 -0400167 masterindex [label="Master\nindex.rst", shape=box];
Rich Bennettac93e0e2017-07-19 01:36:52 -0400168 docs -> release;
Blaisonneau David2963ece2017-11-27 10:07:18 +0100169 docs -> templates;
170 docs -> otherdocdocumentelipse;
Rich Bennett1da30462017-08-24 12:11:36 -0400171 otherdocdocumentelipse [label="...other\ndocuments"];
Rich Bennettac93e0e2017-07-19 01:36:52 -0400172 docs -> submodules
Blaisonneau David2963ece2017-11-27 10:07:18 +0100173
Rich Bennett1da30462017-08-24 12:11:36 -0400174 masterindex -> releasedocumentindex [style=dashed, label="sphinx\ntoctree\nreference"];
Blaisonneau David2963ece2017-11-27 10:07:18 +0100175
Rich Bennett1da30462017-08-24 12:11:36 -0400176 //Show submodule linkage to docs directory
Blaisonneau David2963ece2017-11-27 10:07:18 +0100177 submodules -> reponamesm [style=dotted,label="git\nsubmodule\nreference"];
Rich Bennette4c42512017-09-06 08:07:22 -0400178 reponamesm [label="reponame.git"];
Rich Bennettac93e0e2017-07-19 01:36:52 -0400179
Rich Bennett1da30462017-08-24 12:11:36 -0400180 //Example Release document index that references component info provided in other project repo
Blaisonneau David2963ece2017-11-27 10:07:18 +0100181 release -> releasedocumentindex;
Rich Bennett1da30462017-08-24 12:11:36 -0400182 releasedocumentindex [label="index.rst", shape=box];
Rich Bennett358472a2017-08-31 08:05:36 -0400183 releasedocumentindex -> releaserepolist [style=dashed, label="sphinx\ntoctree\nreference"];
Blaisonneau David2963ece2017-11-27 10:07:18 +0100184 releaserepolist [label="repolist.rst", shape=box];
Rich Bennett358472a2017-08-31 08:05:36 -0400185 release -> releaserepolist;
Rich Bennette4c42512017-09-06 08:07:22 -0400186 releaserepolist -> repnamedocsdirindex [style=dashed, label="sphinx\ntoctree\nreference"];
Blaisonneau David2963ece2017-11-27 10:07:18 +0100187
Rich Bennettac93e0e2017-07-19 01:36:52 -0400188 }
189
Rich Bennettd504dc82018-05-31 08:40:36 -0400190Branches in the DOC Project
191---------------------------
192
193The DOC project 'master' branch aggregates the 'latest' content
194from all ONAP project repositories contributing documentation into a
195single tree file structure as described in the previous section. This
196branch is continuously integrated and deployed at Read The
197Docs as the 'latest' ONAP Documentation by:
198
199* Jenkins doc-verify-rtd and doc-merge-rtd jobs triggered whenever patches on
200 contributing repositories contain rst files at or below a top level
201 'docs' folder.
202
203* Subscription in the DOC project to changes in submodule repositories.
204 These changes appear in the DOC project as commits with title
205 'Updated git submodules' when a change to a contributing project
206 repository is merged. No DOC project code review occurs, only a
207 submodule repository commit hash is updated to track the head of each
208 contributing master branch.
209
210For each ONAP named release the DOC project creates a branch with the
211release name. The timing of the release branch is determined by
212work needed in the DOC project to prepare the release branch and the
213amount of change unrelated to the release in the master branch.
214For example contributing projects that create named release branches
215early to begin work on the next release and/or contributing projects
216to the master that are not yet part of the named release would result
217in an earlier named release branch to cleanly separate work to stabilize
218a release from other changes in the master branch.
219
220A named release branch is integrated and deployed at Read The Docs
221as the 'named release' by aggregating content from contributing
222project repositories. A contributing project repository can
223choose one of the following for the 'named release' branch:
224
225* Remove the contributing project repository submodule and RST
226 references when not part of the named release.
227
228* Provide a commit hash or tag for the contributing project master
229 branch to be used for the life of the release branch or until a
230 request is submitted to change the commit hash or tag.
231
232* Provide the commit hash for the head of a named release branch
233 created in the contributing project repository. This option
234 may be appropriate if frequent changes are expected over the
235 life of the named release and work the same way as the continuous
236 integration and deployment described for the master branch.
237
238The decision on option for each contributing project repository
239can be made or changed before the final release is approved. The
240amount of change and expected differences between master and a
241named release branch for each repository should drive the choice of
242option and timing.
243
Blaisonneau David2963ece2017-11-27 10:07:18 +0100244About GIT branches
245------------------
246
247GIT is a powerful tool allowing many actions, but without respecting some rules
Rich Bennettd504dc82018-05-31 08:40:36 -0400248the GIT structure can be quickly hard to maintain.
Blaisonneau David2963ece2017-11-27 10:07:18 +0100249
250Here are some conventions about GIT branches:
Rich Bennettd504dc82018-05-31 08:40:36 -0400251
Blaisonneau David2963ece2017-11-27 10:07:18 +0100252 - ALWAYS create a local branch to edit or create any file. This local branch
Rich Bennettd504dc82018-05-31 08:40:36 -0400253 will be considered as a topic in Gerrit and allow contributors to
254 work at the same time on the same project.
255
256 - 1 feature = 1 branch. In the case of documentation, a new chapter
257 or page about a new code feature can be considered as a 'doc feature'
258
259 - 1 bug = 1 branch. In the case of documentation, a correction on an
260 existing sentence can be considered as a 'doc bug'
261
Blaisonneau David2963ece2017-11-27 10:07:18 +0100262 - the master branch is considered as "unstable", containing new features that
263 will converge to a stable situation for the release date.
264
265The day of the release, the repository owner will create a new branch to
266fix the code and documentation. This will represent the 'stable' code of the
267release. In this context:
Rich Bennett7e34ab32018-04-18 11:03:25 -0400268
Blaisonneau David2963ece2017-11-27 10:07:18 +0100269 - NEVER push a new feature on a stable branch
Rich Bennett7e34ab32018-04-18 11:03:25 -0400270
Rich Bennettd504dc82018-05-31 08:40:36 -0400271 - Only bug correction are authorized on a stable branch using
272 cherry pick method
Blaisonneau David2963ece2017-11-27 10:07:18 +0100273
274.. image:: git_branches.png
275
Rich Bennetta9d6a442017-08-25 02:37:15 -0400276Creating Restructured Text
277==========================
Rich Bennettac93e0e2017-07-19 01:36:52 -0400278
Rich Bennett5baea462017-09-13 03:19:19 -0400279Templates and Examples
280----------------------
Rich Bennett7134cba2017-10-10 07:39:06 -0400281Templates are available that capture the kinds of information
Blaisonneau David2963ece2017-11-27 10:07:18 +0100282useful for different types of projects and provide some examples of
Rich Bennettd504dc82018-05-31 08:40:36 -0400283restructured text. We organize templates in the following way to:
Rich Bennett7134cba2017-10-10 07:39:06 -0400284
Rich Bennettd504dc82018-05-31 08:40:36 -0400285 - help authors understand relationships between documents
286
287 - keep the user audience context in mind when writing and
288
289 - tailor sections for different kinds of projects.
290
291
292**Sections** Represent a certain type of content. A section
293is **provided** in an project repository, to describe something about
294the characteristics, use, capability, etc. of things in that repository.
295A section may also be **referenced** from other sections and in
296other repositories. For example, an API specification provided in a project
297repository might be referenced to in a Platform API Reference Guide.
Rich Bennett7134cba2017-10-10 07:39:06 -0400298The notes in the beginning of each section template provide
Rich Bennettd504dc82018-05-31 08:40:36 -0400299additional detail about what is typically covered and where
300there may be references to the section.
Rich Bennett7134cba2017-10-10 07:39:06 -0400301
Rich Bennettd504dc82018-05-31 08:40:36 -0400302**Collections** Are a set of sections that are typically provided
303for a particular type of project, repository, guide, reference manual, etc.
304For example, a collection for a platform component, an SDK, etc.
Rich Bennett7134cba2017-10-10 07:39:06 -0400305
Rich Bennettd504dc82018-05-31 08:40:36 -0400306You can: browse the template *collections* and *sections* below;
307show source to look at the Restructured Text and Sphinx directives used;
308copy the source either from a browser window or by downloading the
309file in raw form from
Rich Bennett7134cba2017-10-10 07:39:06 -0400310the `gerrit doc repository <https://gerrit.onap.org/r/gitweb?p=doc.git;a=tree;f=docs/templates;/>`_ and
311then add them to your repository docs folder and index.rst.
312
313
314Sections
315++++++++
Rich Bennett5baea462017-09-13 03:19:19 -0400316
317.. toctree::
318 :maxdepth: 1
319 :glob:
320
Rich Bennett7134cba2017-10-10 07:39:06 -0400321 ../../../templates/sections/*
322
323
324Collections
325+++++++++++
326
327.. toctree::
328 :maxdepth: 1
329 :glob:
330
331 ../../../templates/collections/*
332
333
Rich Bennett5baea462017-09-13 03:19:19 -0400334
Blaisonneau David2963ece2017-11-27 10:07:18 +0100335In addition to these simple templates and examples
Rich Bennett5baea462017-09-13 03:19:19 -0400336there are many open source projects (e.g. Open Daylight, Open Stack)
Rich Bennettd504dc82018-05-31 08:40:36 -0400337that are using Sphinx and Readthedocs where you may find examples
338to start with. Working with project teams we will continue to enhance
339templates here and capture frequently asked questions on the developer
340wiki question topic `documentation <https://wiki.onap.org/questions/topics/16384055/documentation>`_.
Rich Bennett5baea462017-09-13 03:19:19 -0400341
Rich Bennettd504dc82018-05-31 08:40:36 -0400342Each project should:
343
344 - decide what is relevant content
345
346 - determine the best way to create/maintain it in the CI/CD process and
347
348 - work with the documentation team to reference content from the
349 master index and guides.
350
351Consider options including filling in a template, identifying existing
352content that can be used as is or easily converted, and use of Sphinx
353directives/extensions to automatically generate restructured text
354from other source you already have.
Rich Bennettac93e0e2017-07-19 01:36:52 -0400355
Rich Bennetta9d6a442017-08-25 02:37:15 -0400356Links and References
Rich Bennett5baea462017-09-13 03:19:19 -0400357--------------------
Rich Bennettac93e0e2017-07-19 01:36:52 -0400358It's pretty common to want to reference another location in the
359ONAP documentation and it's pretty easy to do with
360reStructuredText. This is a quick primer, more information is in the
361`Sphinx section on Cross-referencing arbitrary locations
362<http://www.sphinx-doc.org/en/stable/markup/inline.html#ref-role>`_.
363
364Within a single document, you can reference another section simply by::
365
366 This is a reference to `The title of a section`_
367
368Assuming that somewhere else in the same file there a is a section
369title something like::
370
371 The title of a section
372 ^^^^^^^^^^^^^^^^^^^^^^
373
374It's typically better to use ``:ref:`` syntax and labels to provide
375links as they work across files and are resilient to sections being
376renamed. First, you need to create a label something like::
377
378 .. _a-label:
379
380 The title of a section
381 ^^^^^^^^^^^^^^^^^^^^^^
382
383.. note:: The underscore (_) before the label is required.
384
385Then you can reference the section anywhere by simply doing::
386
387 This is a reference to :ref:`a-label`
388
389or::
390
391 This is a reference to :ref:`a section I really liked <a-label>`
392
393.. note:: When using ``:ref:``-style links, you don't need a trailing
394 underscore (_).
395
396Because the labels have to be unique, it usually makes sense to prefix
397the labels with the project name to help share the label space, e.g.,
398``sfc-user-guide`` instead of just ``user-guide``.
399
Rich Bennetta9d6a442017-08-25 02:37:15 -0400400Testing
401=======
Rich Bennettac93e0e2017-07-19 01:36:52 -0400402
Rich Bennetta9d6a442017-08-25 02:37:15 -0400403One RST File
404------------
Rich Bennettac93e0e2017-07-19 01:36:52 -0400405It is recommended that all rst content is validated by `doc8 <https://pypi.python.org/pypi/doc8>`_ standards.
406To validate your rst files using doc8, install doc8.
407
408.. code-block:: bash
409
410 sudo pip install doc8
411
412doc8 can now be used to check the rst files. Execute as,
413
414.. code-block:: bash
415
416 doc8 --ignore D000,D001 <file>
417
418
Rich Bennettac93e0e2017-07-19 01:36:52 -0400419
Rich Bennetta9d6a442017-08-25 02:37:15 -0400420One Project
421-----------
Rich Bennettac93e0e2017-07-19 01:36:52 -0400422To test how the documentation renders in HTML, follow these steps:
423
424Install virtual environment.
425
426.. code-block:: bash
427
428 sudo pip install virtualenv
429 cd /local/repo/path/to/project
430
431Download the doc repository.
432
433.. code-block:: bash
434
435 git clone http://gerrit.onap.org/r/doc
436
437Change directory to doc & install requirements.
438
439.. code-block:: bash
440
441 cd doc
442 sudo pip install -r etc/requirements.txt
443
444Move the conf.py file to your project folder where RST files have been kept:
445
446.. code-block:: bash
447
448 mv doc/docs/conf.py <path-to-your-folder>/
449
450Move the static files to your project folder:
451
452.. code-block:: bash
453
454 mv docs/_static/ <path-to-your-folder>/
455
456Build the documentation from within your project folder:
457
458.. code-block:: bash
459
460 sphinx-build -b html <path-to-your-folder> <path-to-output-folder>
461
462Your documentation shall be built as HTML inside the
463specified output folder directory.
464
465.. note:: Be sure to remove the `conf.py`, the static/ files and the output folder from the `<project>/docs/`. This is for testing only. Only commit the rst files and related content.
466
jsseidel80666192017-09-19 13:29:23 -0400467.. _building-all-documentation:
Rich Bennettac93e0e2017-07-19 01:36:52 -0400468
Rich Bennetta9d6a442017-08-25 02:37:15 -0400469All Documentation
470-----------------
Rich Bennettd504dc82018-05-31 08:40:36 -0400471To build the all documentation under doc/, follow these steps:
Rich Bennettac93e0e2017-07-19 01:36:52 -0400472
Rich Bennetta9d6a442017-08-25 02:37:15 -0400473Install virtual environment.
Rich Bennettac93e0e2017-07-19 01:36:52 -0400474
475.. code-block:: bash
476
Rich Bennetta9d6a442017-08-25 02:37:15 -0400477 sudo pip install virtualenv
478 cd /local/repo/path/to/project
479
480Download the DOC repository.
481
482.. code-block:: bash
483
484 git clone http://gerrit.onap.org/r/doc
485
Rich Bennett9c3af502018-04-26 09:30:57 -0400486Build documentation using tox local environment & then open using any browser.
Rich Bennetta9d6a442017-08-25 02:37:15 -0400487
488.. code-block:: bash
489
490 cd doc
Cédric Ollivier268209c2017-11-10 11:31:53 +0100491 tox -elocal
Rich Bennetta9d6a442017-08-25 02:37:15 -0400492 firefox docs/_build/html/index.html
493
Cédric Ollivier268209c2017-11-10 11:31:53 +0100494.. note:: Make sure to run `tox -elocal` and not just `tox`.
Rich Bennett50d0d882019-03-08 17:03:58 -0500495 This updates all submodule repositories that are integrated
496 by the doc project.
Rich Bennett9c3af502018-04-26 09:30:57 -0400497
Rich Bennettd504dc82018-05-31 08:40:36 -0400498There are additional tox environment options for checking External
499URLs and Spelling. Use the tox environment options below and then
Rich Bennett50d0d882019-03-08 17:03:58 -0500500look at the output with the Linux `more` or similar command
501scan for output that applies to the files you are validating.
Rich Bennett9c3af502018-04-26 09:30:57 -0400502
503.. code-block:: bash
504
505 tox -elinkcheck
506 more < docs/_build/linkcheck/output.txt
507
508 tox -espellcheck
509 more < docs/_build/spellcheck/output.txt
510