Contributing Guidelines

Thank you for looking into contributing to GCPy! GEOS-Chem is a grass-roots model that relies on contributions from community members like you. Whether you’re new to GEOS-Chem or a longtime user, you’re a valued member of the community, and we want you to feel empowered to contribute.

We use GitHub and ReadTheDocs

We use GitHub to host the GCPy source code, to track issues, user questions, and feature requests, and to accept pull requests: https://github.com/geoschem/gcpy. Please help out as you can in response to issues and user questions.

GCPy documentation can be found at gcpy.readthedocs.io.

When should I submit updates?

Submit bug fixes right away, as these will be given the highest priority. Please see “Support Guidelines” for more information.

The practical aspects of submitting code updates are listed below.

How can I submit updates?

We use GitHub Flow, so all changes happen through pull requests. This workflow is described here.

As the author you are responsible for:

  • Testing your changes

  • Updating the user documentation (if applicable)

  • Supporting issues and questions related to your changes

Process for submitting code updates

  1. Create or log into your GitHub account.

  2. Fork the GCPy repository into your Github account.

  3. Clone your fork of the GCPy repositories to your computer system.

  4. Add your modifications into a new branch off the main branch.

  5. Test your update thoroughly and make sure that it works.

  6. Review the coding conventions and checklists for code and data updates listed below.

  7. Create a pull request in GitHub.

  8. The GEOS-Chem Support Team will add your updates into the development branch for an upcoming GCPy version.

  9. If the benchmark simulations reveal a problem with your update, the GCST will request that you take further corrective action.

Coding conventions

GCPy includes contributions from many people and multiple organizations. Therefore, some inconsistent conventions are inevitable, but we ask that you do your best to be consistent with nearby code.

Checklist for submitting code updates

  1. Include thorough comments in all submitted code.

  2. Include full citations for references at the top of relevant source code modules.

  3. Remove extraneous code updates (e.g. testing options, other science).

How can I request a new feature?

We accept feature requests through issues on GitHub. To request a new feature, open a new issue and select the feature request template. Please include all the information that migth be relevant, including the motivation for the feature.

How can I report a bug?

Please see Support Guidelines.

Where can I ask for help?

Please see Support Guidelines