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
"""""""""""""""""""""
