karr_lab_build_utils documentation

This package performs several aspects of the Karr Lab’s build system:

  • Versioning with Git and GitHub

    • Creates new Git repositories with the proper directory structure and files for our build system

  • Testing code with Python 2 and 3

  • Static code analysis with Pylint

    • Statistically analyzes code using Pylint

  • Documentation with Sphinx

    • Generates documentation using Sphinx

  • Dependency management

    • Installs and upgrades all of the requirements of a package

    • Identifies missing and unused dependencies

    • Compiles downstream package dependencies

    • Visualizes downstream packages dependencies

    • Checks for cycles in package dependencies

  • Continuous integration with CircleCI

    • Creates CircleCI builds for packages

    • Gets, sets, and deletes environment variables

    • Triggers CircleCI to test downstream dependencies

    • Manages passwords used in CircleCI

    • Email notifications

  • Test analysis with our test history server

    • Uploads test reports to our test history server

  • Coverage analysis with Coveralls

    • Uploads coverage reports to Coveralls

  • Coverage analysis and static code analysis with Code Climate

    • Create Code Climate builds for packages

    • Uploads coverage reports to Code Climate

  • Distribution with PyPI

    • Uploads packages to PyPI

The build system is primarily designed for:

  • Code that is implemented with Python 2/3

  • Tests that can be run with pytest

  • Code that is documented with Sphinx in Napolean/Google style

  • Code that is versioned with Git/GitHub

  • Builds that are run on CircleCI

  • Coverage reports that are hosted on Coveralls and Code Climate

  • Documentation that is hosted on Read the Docs