# Contributing

We welcome and greatly appreciate contributions from the community! You can
help make the Uncertainty Toolbox even better by either

1. [Creating a PR](#create-a-pr) to fix a bug or add functionality.
2. [Reporting a bug](#report-a-bug) that you found in the toolbox.
3. [Requesting a feature](#request-a-feature) that you would like to
   see in the toolbox.

# Create a PR

To create a PR:

1. If applicable, make sure to write unit tests that exhaustively test your
   added code. Run all unit tests and ensure that there are no failures.
2. Submit a PR to the [dev branch](https://github.com/uncertainty-toolbox/uncertainty-toolbox/tree/dev).
   If your PR fixes a bug, detail what the problem was and how it was fixed.
   If your PR adds code, include justification for why this code should be added.
3. The maintainers will discuss your PR and merge it into the dev branch if
   accepted. The dev branch will be periodically merged into the master branch.

### What kind of additional features are we looking for?

If there is an important metric that you believe is missing from Uncertainty
Toolbox, we would be grateful if you submitted a PR adding this metric. For
other types of features, ask yourself:

* Does this change add a new feature that will have a positive effect on the
  majority of the toolbox's users?
* Does this change make the codebase more confusing or difficult to deal with?
* Does this change add heavy or niche dependencies?

Feel free to [submit an issue](#request-a-feature) before making the
feature to see if your feature is something that the maintainers or other users
would want.

# Report a Bug

If you find a bug, please make an issue and include [Bug] in the title. In 
your issue, please give a description of how to reproduce the bug.

# Request a Feature

For any feature request, submit an issue with [Feature Request] in the title.
As part of the issue, describe why this would be beneficial for the toolbox and
give an example use case of how the feature would be used.

# Maintainers

If you have any questions, feel free to reach out to the maintainers:

* [Youngseog Chung](https://github.com/YoungseogChung) (youngsec (at) cs.cmu.edu)
* [Willie Neiswanger](https://github.com/willieneis) (neiswanger (at) cs.stanford.edu)
* [Ian Char](https://github.com/IanChar) (ichar (at) cs.cmu.edu)
* [Han Guo](https://github.com/HanGuo97) (hanguo (at) cs.cmu.edu)
