Amendments to Current Documentation and Testing Guidelines

Docs

Goal: Someone familiar with other modules in RAMCloud can:

  1. use the module in expected ways without reading its source code
  2. modify the code with reasonable time investment as supported by the docs

Changes:

  • Docs are now required at module boundaries only. Also, significant abstractions should have docs.
  • More emphasis on module-level docs and examples, less on boilerplate, redundant, and obvious text.
  • Make doxygen less anal so you can leave off params and return values that are obvious (within modules) or explained elsewhere (within modules or at module boundaries).

Tests

Goal: My peers would agree that the tests sufficiently show that the interesting paths of the module are correct.

Changes:

  • Black box tests are OK
  • We will maintain test isomorphism at the file level.
  • Tests that are not isomorphic at the module level are OK as long as there is a clear place for tests for any given line of code. All other things equal, isomorphism at the method level is preferred.
  • Skipping trivial statements is OK.