Contributing to EarthRanger is highly encouraged. As an open source project, EarthRanger is dedicated to transparency, security, and the greater EarthRanger community.
Please ensure that all participation in EarthRanger development adheres to our code of conduct, and is a good faith effort towards the improvement of conservation technology.
Please consider the following when making a contribution:
- Is the contribution specific to your site, or broadly useful in the conservation community? If it is the former, consider writing the feature as an integration, or running a fork of EarthRanger with your modified code.
- Can you support potential bugs and requests surrounding the feature?
You are welcome to contribute to EarthRanger in a number of ways, including:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Becoming a maintainer
We use Github to host code, to track issues and feature requests, as well as accept pull requests.
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
develop
. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
- Issue a new pull request for the EarthRanger team to review
In short, when you submit code changes, your submissions are understood to be under the same Apache 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.
When filing a bug report, make sure to include:
- A quick summary and/or background
- Highly specific reproduction steps
- (and sample code, if/where possible)
- What you expected would happen
- What actually happens
- Notes
- Evidence - photos, screen recordings, logs, etc etc
- Contributions to EarthRanger require documentation and test coverage.
- Documentation can be in the form of self-describing code, with comments, or proposal documents included in the pull request.
- Project-wide test coverage should never regress as the result of a contribution, only maintain or increase overall coverage.
- Our codebase enforces code styles driven by ESLint, which generally follow best practices as per the Airbnb JavaScript code style guidelines and React best practices.
- You can try running
npm run lint
to analyze and fix your code styles as necessary.
- You can try running
- The ultimate assessment of code standards is at the discretion of the EarthRanger team.
- First a contributor will file their pull request, adhering to the standards of the pull request template. Reviewers may return the PR to the contributor if the template is not filled completely.
- Reviewers within the EarthRanger core team will review the code, explore its functionality, and evaluate it. This is on an ad hoc basis, with no guaranteed time boundaries, but we will always put in our best effort to review in a timely manner.
- Comments, approvals, and change requests will be issued by the EarthRanger team's reviewers. If any changes are necessary, the pull request will be re-assigned to the contributor for further work and review. Once the contributor's work is ready for re-review, they simply click the "request re-review" button next to each reviewer's name to trigger another cycle of review.
- Once work has been reviewed and approved by the EarthRanger core team, it will be merged into the
develop
branch where it will undergo full regression testing before releasing into production.
By contributing, you agree that your contributions will be licensed under this project's Apache License.
This document was adapted from the open-source contribution guidelines for Facebook's Draft