Thank you for your interest in contributing to FOOOF!
This documents is a set of guidelines for contributing to FOOOF on GitHub. This guide is meant to make it easy for you to get involved. Before contributing, please take a moment to read over this page to get a sense of the scope of the toolbox, and the preferred procedures for requesting features, reporting issues, and making contributions.
- Participation guidelines
- How to report bugs
- How to suggest changes or updates
- How to submit code
- Style guidelines
Please note that this project adheres to a code of conduct, that you are expected to uphold when participating in this project.
If you are reporting a bug, please submit it to our issue tracker. Please do your best to include the following:
- A short, top-level summary of the bug (usually 1-2 sentences)
- A short, self-contained code snippet to reproduce the bug, ideally allowing a simple copy and paste to reproduce. Please do your best to reduce the code snippet to the minimum required.
- The actual outcome of the code snippet
- The expected outcome of the code snippet
If there is a feature you would like to see, please submit it as an issue, with a brief description of what you would like to see added / changed, and why. If it is feature that you would be willing to implement, please indicate that and, and follow the guidelines below for making a contribution.
Note that, in terms of scope, FOOOF is quite specifically focused on it's core functionality of parameterizing neural power spectra, and helper utilities to visualize and work with model results, as well as tools to create synthetic power spectra. Procedures and utilities that do not deal with operating upon power spectra or FOOOF outputs directly will most likely be considered out of scope, and won't be added into FOOOF.
If there is a feature you would like to add, or an issue you saw that you think you can help with, you are ready to make a code submission to the project!
If you are working on a feature, please indicate so in the relevant issue, so that we can keep track of who is working on what.
Once you're ready to start working on your contribution, do the following:
- Fork this repository. This makes your own version of this project you can edit and use.
- Make your changes, adding code that add the desired functionality.
- Check through the code to make sure it follows the projects style guidelines
- Submit a pull request.
If it's your first time contributing to open source, check out this free resource on How to Contribute to an Open Source Project on GitHub.
All code that is to be added to FOOOF must follow the code conventions of the project.
FOOOF follows the following conventions:
- Code style should follow PEP8
- Merge candidate code will be checked using pylint
- Max line length is 100 characters
- All functions should be unit tested, using pytest
- Merge candidates must pass all existing tests, and add new tests such as to not reduce test coverage
- All code should be documented, following the numpy docs format
For more guidelines on how to write well formated and organized code, check out the Python API Checklist.