We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
Here, on Github! We use github to host code, to track issues and feature requests, as well as accept pull requests. We have Discord server too and it's available here. It's the fastest way to communicate with package maintainers.
We Use Github Flow, So All Code Changes Happen Through Pull Requests
Pull requests are the best way to propose changes to the codebase (we use Github Flow). We actively welcome your pull requests:
- Fork the repo and create your branch from
dev
or frommain
(preferablydev
). - If you've added code that should be tested, add tests in the
test
package. We use Python'sunittest
package to perform testing. - If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue that pull request!
In short, when you submit code changes, your submissions are understood to be under the same [BSD 3-Clause "New" or "Revised" License] that covers the project. Feel free to contact the maintainers if that's a concern.
Report bugs using Github's issues
We use GitHub issues to track public bugs. Report a bug by opening a new issue.
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
People love thorough bug reports. I'm not even kidding.
By contributing, you agree that your contributions will be licensed under its BSD 3-Clause "New" or "Revised" License.
This document was adapted from the open-source contribution guidelines for Facebook's Draft
- You have an idea to speed-up computation of areal semivariance. You plan to use
multiprocessing
package for it. - Fork repo from
dev
branch and at the same time propose change or issue in the project issues. You may use two templates - one for bug report and other for feature. In this case you choose feature. - Create the new child branch from the forked
dev
branch. Name it asdev-your-idea
. In this casedev-areal-multiproc
is decriptive enough. - Code in your branch.
- Create few unit tests in
pyinterpolate/test
directory or re-design actual tests if there is a need. For programming cases write unit tests, for mathematical and logic problems write functional tests. Use data fromsample_data
directory. - Multiprocessing maybe does not require new tests. But always run unittests in the
test
directory after any change in the code and check if every test has passed. - Run all tutorials too. Their role is not only informational. They serve as a functional test playground.
- If everything is ok make a pull request from your forked repo.
- And that's all! For every question use Discord.
Your contribution may be other than coding itself. Questions and issues are important too. Do not be scared to write them!