Contributor’s Guide#
Welcome to the Contributor’s Guide for candle!
Welcome to the team! If you are reading this document, we hope that you are already or soon-to-be a candle library contributor, please keep reading!
1. Overview#
The CANDLE library enables users to run their own deep learning code on a set of supported high-performance computers. With the current version of CANDLE, users will be able to run a hyperparameter optimization task (mlrMBO workflow) or a parallel execution task (upf workflow).
We invite other community members to become part of this collaboration at any level of contribution.
1.1. Many Ways to Contribute#
There are many different ways to contribute to candle_lib. Anyone can, for example:
Adding new functionality
python function <fname> in candle/ folder
Add the this file in docs/api_<fname>/index.rst
Specify the API functions for inclusion in ReadTheDocs (RTD)
Extending functionality of existing modules (say candle/file_utils.py)
Add the API functions in the corresponding index.rst file (eg. docs/api_file_utils/index.py)
Write or revise documentation (including this document)
Documentation can be built locally by run running ‘make html’ from the docs folder
Python dependencies can for this documentation are listed in docs/NOTES.txt
After building documentation can be visualized locally using any browser from file docs/_build/html/index.html
Develop example notebooks that demonstrate how a particular function is used
Answer a support question
Request a feature or report a bug
All of these activities are signicant contributions to the on-going development and maintenance of candle lib.
1.2 Getting Started with GitHub and Git#
Contributing to candle_lib requires using GitHub, and contributing to a GitHub repository follows almost the same process by any open source Python project maintained on GitHub. However, it can still seem complex and somewhat varied from one project to another. As such, we will refer the reader to comprehensive resources for basic learning and detailed information about GitHub (such as the Getting Started with Github guide).
Assertions are used for testing various cases such as array comparison.
Please see previously implemented test cases for reference of the recommended testing approach
Attention
Our test suite that includes all the unit tests is executed automatically for PRs with the help of GitHub Actions workflows to ensure new code passes tests. Hence, please check `3.7.4.2. GitHub Actions checks`_ to make sure your PR tests are all passing before asking others to review your work.
1.3. GitHub Actions checks#
candle_lib employs a number of GitHub Actions workflows (please refer to the GitHub Actions guide for detailed information) to make sure our PRs, branches, etc. pass certain test scenarios such as the pre-commit hooks, code test suite, and documentation generation. The pre-commit hooks workflow ensures the code being proposed to be merged is complying with code standards.
Note
All PRs must be made to the develop
branch.
We require PRs to pass all of these checks before getting merged in order to
always ensure our develop
branch stability.
These checks can be extremely helpful for contributors to be sure about they are changing things in correct directions and their PRs are ready to be reviewed and merged.