Comparison and Recommendation of Document Tool Chain
Comparison for current Tools
Characteristic | Proposed for ONAP | Example from OPNFV | Current ONAP & Examples | Other Option or Examples |
---|---|---|---|---|
Documentation Source Repo Host | gerrit.onap.org | gerrit.openfv.org | All documentation is on the | also could be sourced by gerrit or other git tools Maybe we could create a onap.github.org |
Documentation Source Repo Structure | /docs - Top level documentation index & /<any other project repo>/docs - documentation sub-directories of both of the above reflect the |
| Subset of the links on wiki.onap.org | Same |
Source Format | Comments (@gg2147@att.com) Pros
Cons
Comments on editing tools: (@Matthew Harffy) Some example editors here: https://wiki.typo3.org/Editors_(reST) I have looked at http://rst.ninjs.org/ - it is simple, but validates semantics on the fly and makes for quick editing. As an online tool, I could see issues with not having the content stored in a repository at the editing stage, or on a local machine. The comments on https://notex.ch/ seem very positive, but I can't access it. | Multiple Requiring Commercial Software | Comments (@gg2147@att.com) Pros
Cons
| |
Published Documentation | HTML, PDF, Epub for all documentation at | HTML or PDF depending on the | HTML at github.org(no need to build) other documentation by jekyll. | |
CI/CD Flow | Committer approved change merged to | Top level index reference to other project release notes | Manually updated for a release | For Markdown. Committer approved change merged to doc or other project/doc repository branch, no building progres, the webpage will be refreshed in seconds For PDF or other form, same with RST. |
CI/CD Tools | Gerrit, Jira, Tox, Jenkins, Sphinx | Gerrit,Jira, Jekyll. No need any CI tools, just use the github.org to gerenrate a webpage. |
Option Summary | Option 1 | Option 2 |
---|---|---|
Language | ReStructured Text | Markdown |
Site Generator | Sphinx | Jekyll |
Publish | ReadTheDocs | GitHub |
Comparison for more Opensource Documentation Projects
Company Name | Document Project | Project Type | Open Source License | Document Library Management | SCM | Develop Language | Language Style | Review | Bug Tracking | Compile Tool | Translation Process | Release Method | CI Tool | Release Cycle | Release Form | Other Supporting Tools | Search Implementation |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
NASA And Rackspace | openstack | Open source project | Apache 2.0 | Open library | Git | rst | -- | PR/Review meeting/Docking internal bug tracking system | issues/JIRA | Sphinx | Independent branch | Offline CI | www-generator.py | Released with product release | Website/pdf | R & D document generation tool?contains terminology tools? | ? |
Microsoft | Microsoft Azure | Open source project | MIT | Open library + Private library | Git/Github | Markdown | DFM | PR | PR/Labels | DocFX | Independent branch | Offline CI | DocFX | Every day | Website | DocFX | ? |
Google-Tensorflow | Open source project | Apache License 2.0 | Open library + Private library | Git/Github | Markdown | GFM | issues | issues | Website generator+doxygen | ? | Offline CI | g3doc | ? | Website | API automatic generation tool, gen_docs.sh, text processing tools | Borrow Google website search | |
Google-Kubernetes | Open source project | Apache License 2.0 | Open library + Private library | Git/Github | Markdown | GFM | PR/issues | issues | Jekyll | ? | Online | Jekyll | ? | websites | ? | ? | |
Google-GCP | Closed source project | ? | Private library | Internal git | markdown | ? | ? | ? | g3doc | ? | Offline | ? | ? | website | ? | ? | |
sencha | Extjs | Closed source project | ? | Private library | Git/Github | Markdown | ? | ? | ? | JsDuck | ? | Offline | ? | ? | website | ? | ? |
StackExchange | Stackoverflow | Closed source project | ? | ? | Git/Github | Markdown | ? | ? | ? | ? | ? | Online | ? | ? | website | ? | ? |
Amazon | AWS | Closed source project | ? | All open(only Developer guide) | Git/Github | rst | ? | ? | ? | Sphinx | ? | Offline CI | build_docs.py | ? | website | ? | ? |
Labs126 | Closed source project | ? | ? | Git/Github | Markdown | GFM | ? | ? | Jekyll | ? | Offline CI | ? | ? | website | ? | ? | |
Docker | docker | Open source project | ? | Open library + Private library | Github | Markdown | GFM | ? | ? | hugo | ? | ? | ? | ? | website | ? | ? |
? | |||||||||||||||||
Project of document tool | |||||||||||||||||
Sphinx | Sphinx | Open source project | BSD | ? | ? | rst/markdown | ? | ? | ? | ? | ? | Offline | sphinx cli | ? | website/Apple Help/ePub/LaTex/text/manual page (unix)/Textinfo/linkcheck builder/c++ domain | ? | ? |
Github | Gitbook | Open source project | Apache 2.0 | ? | ? | md/ascii text | GFM | ? | ? | ? | ? | Offline | gitbook cli | ? | website/pdf/epub/mobi | ? | ? |
Github | Closed source project | ? | All open | Git/Github | ? | ? | PR/issues | ? | Jekyll | ? | Online | Jekyll | ? | ? | Jekyll-Auth | ? |
Recommendation
Based on the comparisons above, a discussion with Sofia Wallin on experience with Documentation in OPNFV, and two examples A Sample about how to develop documents by Markdown and An Example of Creating Documents with ReStructured Text-Sphinx-Readthedocs we recommend:
ReStructured Text-Sphinx-Readthedocs as the way to organize and publish ONAP documentation.
Where there are existing source documents in other formats or ReStructured Text is hard to use for new content, we will identify options to support these on a case by case basis (eg. Templates for ReStructured Text, Extensions for Sphinx, Converters, etc).