Skip to content

Latest commit

 

History

History
80 lines (59 loc) · 3.56 KB

File metadata and controls

80 lines (59 loc) · 3.56 KB

Contributing to breseq

Thanks for your interest in contributing to breseq! This document covers how to get involved in the project. For build/test/distribution instructions, see the DEVELOPER file. Please also read our Code of Conduct before participating.

Contributing code

We welcome your contributions! You can check out suggested coding project issues or look for bugs to fix. Please comment on an issue if you are working on it so that we can avoid duplicating efforts and provide guidance.

To contribute your code, you should:

  1. Fork the breseq repository.
  2. Work on your code, create tests for the code, have others try it out...
  3. Submit a pull request to the breseq repository, so that it can be integrated into the project.

Developing breseq extensions

If you are creating a Python or R package that operates on the output of breseq runs, these tools may require the installation of other programs (e.g., Circos, de novo assemblers).

  1. Install breseq as described in DEVELOPER, or download the most recent release version and follow the installation instructions.

Developing Python modules

If you are developing code that reads in genomediff files output by breseq, we recommend that you use the official genomediff Python module for this purpose rather than re-inventing the wheel. If you need to update the functionality of the genomediff Python parser, please contribute to that GitHub project.

Developing breseq core code

If you are coding in C++ to change the core breseq and/or gdtools commands:

  1. Clone the GitHub repository. (Do not download a release version.)
  2. Follow the "Developing with Command-Line Compilation" instructions in DEVELOPER.

All developers

You should familiarize yourself with how breseq works and its output files by completing these activities from the breseq documentation:

  1. Test Drive
  2. Tutorials: Clonal Samples | Mixed Populations

Coding style

Our philosophy is that the breseq core executables should have minimal external requirements and maximum compatibility for installation and compilation on a wide range of systems.

In order to ensure this is the case and for maintainability of the code, please follow these coding conventions:

  • C++ code
    • In general, follow the Google C++ Style Guide.
    • Only utilize features available in the C++11 standard.
    • Do not link to any external convenience libraries (e.g., Boost).
  • R code
    • In general, follow the Google R Style Guide.
    • Use only core libraries/functionality included with a base R install.

If you are writing a breseq extension in Python or R, you can utilize whatever other modules are needed for functionality. In these cases, we recommend releasing your code via PyPI or CRAN to manage requirements.