Skip to content

Latest commit

 

History

History
151 lines (122 loc) · 7.41 KB

CONTRIBUTING.rst

File metadata and controls

151 lines (122 loc) · 7.41 KB

How to contribute

Thank you for considering contributing to Pyspectral! Pyspectral's development team is made up of volunteers so any help we can get is very appreciated. Pyspectral is a fairly small library/application in the Pytroll family of open source packages. Pyspectral is used in Satpy, and this guidelines document here is copied from Satpy's.

Contributions from users are what keep this and the entire Pytroll community going. We welcome any contributions including bug reports, documentation fixes or updates, bug fixes, and feature requests. By contributing to Pyspectral you are providing code that everyone can use and benefit from.

The following guidelines will describe how the Satpy project structures its code contributions from discussion to code to package release.

For more information on contributing to open source projects see GitHub's Guide.

What can I do?

What if I break something?

Not possible. If something breaks because of your contribution it was our fault. When you submit your changes to be merged as a GitHub Pull Request they will be automatically tested and checked against coding style rules. Before they are merged they are reviewed by at least one maintainer of the Pyspectral project. If anything needs updating, we'll let you know.

What is expected?

You can expect the Pyspectral maintainers to help you. We are all volunteers, have jobs, and occasionally go on vacations. We will try our best to answer your questions as soon as possible. We will try our best to understand your use case and add the features you need. Although we strive to make Pyspectral useful for everyone there may be some feature requests that we can't allow if they would require breaking existing features. Other features may be best for a different package, Pytroll or otherwise. Regardless, we will help you find the best place for your feature and to make it possible to do what you want.

We, the Pyspectral maintainers, expect you to be patient, understanding, and respectful of both developers and users. Pyspectral can only be successful if everyone in the community feels welcome. We also expect you to put in as much work as you expect out of us. There is no dedicated Pytroll or Pyspectral support team, so there may be times when you need to do most of the work to solve your problem (trying different test cases, environments, etc).

Being respectful includes following the style of the existing code for any code submissions. Please follow PEP8 style guidelines and limit lines of code to 80 characters whenever possible and when it doesn't hurt readability. Codelines should never exceed 120 characters. Pyspectral follows Google Style Docstrings for all code API documentation. When in doubt use the existing code as a guide for how coding should be done.

How do I get help?

The Pyspectral developers (and all other Pytroll package developers) monitor the:

How do I submit my changes?

Any contributions should start with some form of communication (see above) to let the Pyspectral maintainers know how you plan to help. The larger the contribution the more important direct communication is so everyone can avoid duplicate code and wasted time. After talking to the Pyspectral developers any additional work like code or documentation changes can be provided as a GitHub Pull Request.

To make sure that your code complies with the pytroll python standard, you can run the flake8 linter on your changes before you submit them, or even better install a pre-commit hook that runs the style check for you. To this aim, we provide a configuration file for the pre-commit tool, that you can install with eg:

pip install pre-commit
pre-commit install

running from your base pyspectral directory. This will automatically check code style for every commit.

Code of Conduct

Pyspectral follows the same code of conduct as the Pytroll project. For reference it is copied to this repository in CODE_OF_CONDUCT.md.

As stated in the Pytroll home page, this code of conduct applies to the project space (GitHub) as well as the public space online and offline when an individual is representing the project or the community. Online examples of this include the Pytroll Slack team, mailing list, and the Pytroll twitter account. This code of conduct also applies to in-person situations like Pytroll Contributor Weeks (PCW), conference meet-ups, or any other time when the project is being represented.

Any violations of this code of conduct will be handled by the core maintainers of the project including David Hoese, Martin Raspaud, Panu Lahtinen, and Adam Dybbroe. If you wish to report one of the maintainers for a violation and are not comfortable with them seeing it, please contact one or more of the other maintainers to report the violation. Responses to violations will be determined by the maintainers and may include one or more of the following:

  • Verbal warning
  • Ask for public apology
  • Temporary or permanent ban from in-person events
  • Temporary or permanent ban from online communication (Slack, mailing list, etc)

For details see the official code of conduct document.