Pull Requests
Pull Requests in GitHub are a nice means of allowing others to review and test your code. This allows members of the community to know what is coming up in new releases of pyDARN and be part of the collaboration.
Code Check List
Before submitting a PR check the code check list first:
- copyright and disclaimer, or modification line is added
- the code installs with python 3.6 and higher
- the code doesn't fail on
pytest
test - any new features need to have tests for
pytest
to run on - documentation is updated or in another PR for users
- Follows PEP8 code style and pandas docstring style
- unit tests or various testing has been added/done
- code is on its own git branch
- all code is pushed to the branch
Creating the PR
Once you have confirmed the above is done you can go to pyDARN's Pull Requests
and click on New pull request
. If templates are available select which one is most appropriate. Otherwise make your own.
Merging Direction
When in doubt merge to develop
! Otherwise here are some other options:
- merge to another branch if you
checkout
from that branch this helps to break things into smaller parts for quicker review and testing -
merge to
main
ONLY if it is a HOTFIX or RELEASE branch.Note
HOTFIX is a substantial fix for a bug that prevents users from installing or using pyDARN or gives inaccurate data. Document fixes can also be seen as a HOTFIX as they do not require release and DOI'ing on the code.
-
In some cases, documentation can be merged to
main
if it is fixing some typos.
Writing a PR
Follow the template to fill out the required sections. If there is no template, here is a check list to ensure you have all the information:
- Informative title
- Description of the changes you made
- Scope on what people should focus on
- How to install the code if there is any changes
- Code fragments showing how to test the code and expected output/plots
- Extra details
Extra Tidbits
Pull requests on GitHub have other ways to help users know what your PR is all about. Here are some things you can do to get more attention:
- assign reviewers you want feedback from
- add labels
- assign a project to it if applicable
- assign a milestone if applicable
- Linking issues if applicable
Draft or not to Draft?
Draft Pull Requests are a way to tell reviewers that this code is not intended to be merged
right away.
These kinds of pull requestions are handy for the following situations:
- It has multiple other PRs that are merging to it that needed to be tested/reviewed first
- Has a major bug or need further work but you are looking for input and want to show others the changes you have done
Guidelines
Here are some general guidelines to follow with Pull Requests:
- Do not merge your own code unless you have 2 or more approvals (1 being testing and the other being a code review) and no one is responding to merge
- Make sure your code is fully complete before making a PR to avoid commit emails occurring frequently
- Make sure your code is tested on various operating systems if needed
- Make sure your code is reviewed in a Code Review