Contributing to Chem-I-Calc

Like what Chem-I-Calc is doing but unsatisfied with some portion of it?
Good news! There are many ways you can get involved!

Types of Contributions

Reporting Bugs

If you have found a bug in Chem-I-Calc or find a feature that does not work as expected, please create a new issue on the Chem-I-Calc Issue Tracker. To help us identify and address the issue, please include a minimal, reproducible example and a full Python stack trace (i.e., the error message).

Fixing Bugs

Whether its associated with an existing issue on the Chem-I-Calc Issue Tracker or a bug you found yourself, we welcome your bugfixes!

Implementing New Features / Improving Performance

If there is a feature that you think would make Chem-I-Calc more useful for the astronomical community, please let us know (via the Chem-I-Calc Issue Tracker)! Granted, we are people-power limited and welcome any and all efforts to implement these new features.

Suggestions for (or better yet, implementation of) improvments in code performance are also appreciated.

Writing Documentation

Chem-I-Calc’s documentation is far from complete (and likely full of errata). Contributions to documentation here on our readthedocs page, in the Chem-I-Calc docstrings, or in the form of Jupyter Notebook tutorials are all welcome. Even just correcting typos or pointing out places where the documentation is missing or unclear (via the Chem-I-Calc Issue Tracker) is incredibly helpful.

Writing Tests

To help us address bugs and implement new features without breaking existing features, we would like to have a suite of tests to run on the Chem-I-Calc package whenever changes are made. At present, these tests are woefully incomplete. All contributions to the test suite are very much appreciated.

Making a Contribution w/ GitHub

Here is a brief primer on how to contribute to Chem-I-Calc via a GitHub pull request.

  1. Make a GitHub account if you have not already.

  2. Fork the Chem-I-Calc repository on GitHub.

  3. Install Chem-I-Calc and its dependencies following the from GitHub instructions, except replacing

git clone https://github.com/nathansandford/Chem-I-Calc.git

with

git clone https://github.com/<YOUR-GITHUB-USERNAME>/Chem-I-Calc.git
  1. Create a branch for local development stemming from the develop branch:

  1. Make your contribution! If you are changing or adding to the functionality of the code, please make the relevant changes or additions to the docstrings, the readthedocs documentation, and the test suite.

  2. Run tests in your cloned repository and make sure nothing breaks as a result of your changes.

pip install pytest  # if pytest not already installed
pytest -v
  1. Commit your changes and push your branch to GitHub.

git add <CHANGED-FILES>
git commit -m "Description of changes"
git push origin name-of-bugfix-or-feature
  1. Submit a pull request through the Chem-I-Calc repository on GitHub.

If all looks good, your pull request will be accepted. Otherwise, if changes are requested, repeat steps 4-6 until the outstanding issues have been addressed at which point your pull request will be accepted. Thanks for your contribution!


Acknowledgements

This page was adapted from the page outlining contributions to specutils.