Welcome

If you use TAU Commander, start with Installing TAU Commander and the Command reference, which describes the CLI interface and tau commands and subcommands. For the TAU Performance System itself, which is used by TAU Commander to carry out performance monitoring, see the TAU project page.

The rest of this documentation is for developers of TAU Commander, and will help you contribute to the project. For over two decades the TAU Performance System has been developed primarily by graduate students with extreme demands on their time so best practices of software design, safety, and maintainability were largely ignored in favor of getting results quickly. This short term thinking ran up an enormous technical debt in TAU and created a “wet spaghetti” code base where TAU developers throw stuff at the wall to see what sticks. The goal of this developer’s guide to bring a little sanity back to the development cycle and take advantage of important software engineering lessons learned in the last two decades.

Remember: Code with a pylint score less than 9 will not be accepted to the master branch.

The TAU Commandments

  1. Thou shalt use pylint as part of your development cycle, and keep the score at 9.0 or above.

  2. Thou shalt follow the TAU Commander Design for it is sacred.

  3. Thou shalt style thine code according to the TAU Commander Code Style.

  4. Thou shalt document your code according to the TAU Commander Code Documentation.

  5. Thou shalt install and use the project TAU Commander git hooks.

  6. Thou shalt setup your editor to respect/follow the Editor Config settings.

  7. Thou shalt use type annotations and strong typing (wherever possible) following PEP 484 for all new code.

  8. Never shalt thou develop on the master branch, for that is an abomination.

  9. Never shalt thou merge code into the master branch that is failing the continuous integration (CI) tests.

  10. Never shalt thou just quickly fix this one thing because I have a hard deadline I forgot and now I really really really need this feature to be part of TAU Commander whatever the cost and oh God I broke it I broke it and everything is on fire.

Table of Contents

Modules