- If an issue for the contribution does not exist then create one, otherwise either refer to one that has been assigned to you or assign yourself to an open one.
- Clone the repo to your local machine if you haven't already. Create a branch from
master
with the following naming scheme:${developer_name}/${issue_number}_${short_issue_description}
. Here,${developer_name}
can be any identifier but for consistency please choose your GitHub username,${issue_number}
is just the issue number(without#
). Please keep${short_issue_description}
brief but clear to avoid excessively long branch names. - Develop and implement the feature on this new branch and check that it works. Write the appropriate tests for the new feature and check that the tests (both new and old) pass.
- Pull from remote
master
to your localmaster
branch and merge any updates into your local feature branch before pushing your feature branch to remote. This ensures that any merge conflicts can be handled before the pull request is created. (Remember to push the feature branch regularly to the remote repo to act as a backup and prevent a loss of code locally) - Once the issue has been addressed and the remote version of the feature branch is up-to-date with the local version, create a pull request. Mention the issue number (with
#
) in the pull request description to link the pull request to the issue so that the issue can be closed when the pull request is merged. - The options on the pull request will need to be decided on a per-case basis in terms of whether to delete the source branch and/or squash the commits upon merging.
- Assign a reviewer (someone other than yourself) to review and merge the pull request. Note that merging will be disabled by default if any tests fail.