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