# Contributing to ClusterView ## PR Requirements Before a PR is accepted it must pass the following requirements in CircleCI: - [ ] All tests must pass - [ ] The code must be lint free as determined by `flake8` Additionally, any new code included in the PR must be tested fully. ## Developer Requirements You will want to make sure that all developer requirements are installed. To do this after creating a new `virtualenv` environment: ```sh pip3 install -r requirements-dev.txt ``` This will install all normal requirements as well as testing requirements. ## Linting We use `flake8` for linting. ## Running Tests We use `pytest` as our testing framework. TODO ## Style ### Import Organization Import organization is a critical part of good software engineering. In large projects considerable time can be wasted looking for a specific import. The imports must be organized as follows: ```python # System imports first # Third party imports second # UNLV/ClusterView modules external to the current module third # Modules local to the current module last ```