blob: f1e5c75a4644bdf670c5fd301b2230076f7cdf2e [file] [log] [blame]
Writing Documentation
=====================
Documentation is an essential part of any software product.
4 Types of Documentation
This site is an example of **Reference** documentation.
Where should I put Documentation?
---------------------------------
The README
""""""""""
Basic **How To** Documentation should go into a README file in each repo:
1. A high level summary of what the code in the repo does ("This code is ... ")
2. Licensing and community information ("This is developed by ONF as a part of
the FOO project, and licensed under Apache-2")
3. High level dependencies required ("Go version 1.17.x is needed to...")
4. Examples of how to build the code ("Run ``make build`` to create a binary
named ...")
5. Examples of how to run the code ("The output binary can be found in and run
with ...")
6. How the code is tested ("Your code should pass ``make test``")
Generally this should be fairly short and easy to reference
Design Documents
""""""""""""""""
Design Documents concern the Why ...
One option is to place these in the code repo
Tutorials
"""""""""
Operations Guides
"""""""""""""""""
These show a user **How** to use a project and software. Generally these
should be located in a documentation repo, not stored with code.
Project Documentation
"""""""""""""""""""""