Pull request guide
🤩 Our community is so excited to collaborate with you!
However, our maintainers are mostly volunteers. In order to make the best use of their limited time, we ask that you follow this guide when opening a PR.
When you open a PR, the description field will be auto-populated with some reminders and checklists to that effect. Please read them carefully!
Checklist
Start with a draft
Instead of clicking "Create pull request", please click the dropdown arrow to the right of that button and select "Create draft pull request".
If you forget this step, you can "convert to draft" towards the top of the right side panel.
Review contributing documentation
If you're new to our community, please ensure you're aware of how we organize contributions.
Be descriptive
- Title: For example, instead of
Updated README.md, useAdd testing details to the contributor section of the README. Example: #763 - Body:
- Populate a clear description of the change you're proposing. What did you do, and why?
- Link to any issues that describe the problem being solved.
- Links to any issues resolved by this PR with text in the PR description, for example
closes #1. See more in GitHub docs.
Update documentation
CHANGELOG.md: If you change the software (docs changes don't need a changelog entry), add details about your change in a section titled## Unreleased. If such a section does not exist, please create one at the top of the file. Follow Common Changelog for your additions. Example: #763README.md: Update as needed, for example if installation or usage instructions need to change.
Mark "Ready for review!"
Once you select "Ready for review", maintainers will give your PR their attention and help complete any remaining steps if needed!
If you're not getting the help you need, please mention @nsidc/earthaccess-support in
a comment in your PR.
Detailed guide
First, fork this repository and set up your development environment.
From here, you might want to fix and issue or bug, or add a new feature. Jump to the relevant tab to proceed.
Tip
The smaller the pull request, the easier it is to review and test, and the more likely it is to be successful. For more details, check out this helpful YouTube video by the author of pre-commit.
For large contributions, consider opening an Ideas GitHub Discussion or coming to a Collaboration Café and describing your contribution so we can help guide and/or collaborate on the work.
- Create a minimal reproducible example, a.k.a. a Minimal Complete Verifiable Example (MCVE), a Minimal Working Example (MWE), an SSCCE (Short, Self Contained, Complete Example), or a "reprex", and include it in a GitHub issue (recommended) or in your pull request.
- Create a branch to resolve your issue
- Run the existing unit tests successfully in your branch
- Create one or more new tests to demonstrate the bug and observe them fail
- Update the relevant code to fix the issue
- Successfully run your new unit tests
- Lint and format your code with pre-commit
- Describe your changes in the
CHANGELOG.md
- We recommend you create an Ideas GitHub Discussion describing the feature's scope and its fit for this package with the team.
- Create a branch for your new feature in your fork
- Run the unit tests successfully in your branch
- Write the code to implement your new feature in a backwards compatible manner. If breaking changes are necessary, discuss your strategy with the team first.
- Create at least one test that exercises your feature and run the test suite
- Lint and format your code with pre-commit
- Describe your changes in the
CHANGELOG.md
- Create a branch for your documentation changes in your fork
- Update the documentation following our style guide
- Preview the documentation by rendering it locally. If you're not comfortable with this step, we'd rather you skip it and open a PR anyway! Our GitHub automations will generate a documentation preview. Please mark your PR as a draft until you've checked the preview and it looks OK. Don't hesitate to reach out for help!
Once you've completed these steps, you are ready to submit your pull request.