👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to NeuroSpin research projects and its packages, which are hosted in the neurospin-projects Organization on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. For the moment only ML or DL projects are approved. If you want to put a "star" on a forked project, do it on the original repository to improve its visibility.
The neurospin-projects Organization was created to probe reproducible research by providing a place to share the code and data of your research projects. There are two basic reasons to be concerned about making your research reproducible. The first is to show evidence of the correctness of our results. The second reason to aspire to reproducibility is to enable others to make use of our methods and results. The following sections present some guidelines on how to contribute by submiting your research code and data.
Nothing could be simpler, just make a request by email to create a new repository specifying the name of your project or ask to fork an existing project to one of the organization managers.
All contributions may adhere to the following style guides:
- All new codes should be compatible with Python 3.6 or higher.
- All codes should contain a requirements file that specifies the project dependencies.
- All repositories should contain a README file to tell other people why your project is useful, what they can do with your project, and how they can use it.
- All codes should adhere to PEP8 standards.
- Docstrings need to be provided for all new modules, methods and classes. These should adhere to numpydoc standards.
- When in doubt look at the existing code for inspiration.
If your project processes UK Biobank (UKB) data, you must follow the instructions provided in the UKB Code Repository Training course. You should also enable a GitHub Action that automatically checks your repository for potential data leaks using the UKB‑Git‑Audit‑Tool. To do this, copy the YAML configuration file available in the project guidelines. Add this file to your repository and ensure that the continuous‑integration workflow runs on every commit or pull request. This helps detect any accidental exposure of sensitive UKB data as early as possible.