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
Uses coverage or instrumental for statement, branch, or multiple condition coverage analysis
Runs the tests locally or using a Docker image or the CircleCI local executor
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
Builds that are run on CircleCI
Coverage reports that are hosted on Coveralls and Code Climate
Documentation that is hosted on Read the Docs
Contents¶
- 1. Installation
- 2. Tutorial for WC modeling software developers
- 2.1. Creating a new package
- 2.2. Developing a package
- 2.3. Managing dependencies of packages
- 2.4. Configuring packages
- 2.5. Testing with pytest, coverage, instrumental, Docker, and CircleCI
- 2.6. Configuring tests of downstream dependencies
- 2.7. Configuring the static analyses run by the build system
- 2.8. Configuring build email notifications
- 2.9. Documenting code with Sphinx
- 3. Tutorial for build administrators
- 4. API documentation
- 5. About