User vs Developer Documentation

From GNU Radio
Jump to: navigation, search

How can we draw the line between our User Documentation (i.e. the one wiki page per block, and the usage manual) and the Developer Documentation (i.e. Doxygen docs)?

User Documentation

  • Meant for users who are unlikely to ever look at the source code
  • 99% of them are going to be using GRC to create flowgraphs
  • Split up into two parts: the one-wiki-page-per-block and the usage manual (both will live in the Wiki)
  • Each page will be about 1 block, and explain how to use that block and what each parameter means. There should be an example flowgraph.
  • 99% of users don't care about a block's "make signature" or any of the under-the-hood functions, so none of that is mentioned
  • The User Documentation is what would show up in GRC in the documentation tab, i.e. something much more user friendly than what currently shows up

Developer Documentation

  • In this context, developers are those who are modifying GR source code, or just software-dev-oriented folks who take the time to read through code
  • If they are reading through a block's code, they probably know how the block works at a high level, but are interested in programmatic details
  • Mostly (or only?) consists of documentation is that in-line with the code
  • Can be viewed in the Doxygen manual or just directly while viewing code
  • The developer documentation is going to be much more code-oriented, and involve more details about the implementation of the block (i.e. the block's API)

What Goes Where

  • High level descriptions of what a block does should go in the user docs, not developer docs, because it's not tightly coupled to the code, and devs can always reference user docs
  • Example flowgraph will be displayed in user docs, and if its a big complex flowgraph it should also be committed in-tree and linked to within developer docs
  • Descriptions of each parameter will have to go in both, but the user docs will only include parameters exposed via GRC
  • Any API-type descriptions will be in developer docs only