Contributing to sentinel5dl

As an open source project, sentinel5dl welcomes contributions of many forms. Examples of contributions include:

  • Code patches

  • Documentation improvements

  • Bug reports and patch reviews

Being Pragmatic

For every rule, there is an exception. If you find that there is a good reason one of the following rules does not apply to you, please bring it up and explain why. We like to be pragmatic if necessary instead of blindly follow rules.

Provide Necessary Information

If you provide a patch, please also provide an explanation of the reasoning behind this patch. It is much easier to understand and review code if you know its intention upfront. If a pull request relates to an existing issue, please also link that issue.

If you want to make us happy, please also provide this reasoning as part of your git commit messages.

Tests

sentinel5dl comes with a set of unit tests. Passing these tests is a requirement for all contributions. These tests are also run automatically on our CI system.

To run tests locally, use:

python -m tests

If the CI tests on your pull request fail and you are sure it is not caused by your patch, please complain. Errors happen and we can easily trigger a new build. Your patch cannot be merged without these tests passing.

Documentation

If necessary, say for instance you modify the API, please also provide the documentation for your change as part of your pull request. Once a pull request is merged, the documentation should match that code.

Reviews

A reviewer will be assigned to your pull request to ensure that there are no issues. Once everything is fine, the reviewer will merge the pull request. Please communicate with the reviewer to address any issues.

Please remember that reviewers are only human as well.

Merging

We prefer to rebase and merge pull requests if the contribution has a sane commit history or to squash and merge your pull request commits if they have not. This is meant to keep the overall commit history as clean as possible. If you prefer a specific merge mode for any reason, please indicate that on the pull request.

Checklist

  • Pull request closes an accompanying issue if one exists

  • Pull request has a proper title and description

  • Appropriate documentation is included

  • Code passes automatic tests

  • The pull request has a clean commit history

  • Commits have a proper commit message (title and body)