-
Notifications
You must be signed in to change notification settings - Fork 928
SubmittingPullRequests
In the Open MPI project, we track three main things:
-
Bugs and enhancement requests: These tracked in the Github Issues tracker in the
ompirepository. -
Requests to get code into the release branches: These are tracked in the Pull Requests in the
ompi-releaserepository. -
RFCs (i.e., "hey, I've got an idea -- what do people think about this?"): These are typically tracked in the Pull Requests in the
ompirepository.
You must have a Github account to submit bugs or pull requests.
Pull Requests for the Open MPI release branches are filed via developer's personal Github repositories, and end up in the ompi-release repository Pull Requests listing.
Generally, an Open MPI developer writes new code and pushes it to the master branch on the main ompi repo. To get that code into a release branch, the developer must submit a Pull Request to get it pulled to the appropriate release branch.
[[Recall that Open MPI has ompi and ompi-release Github repositories|GithubRepos]]. Main development work is done on ompi. When code has been vetted, it is moved to an appropriate release branch in the ompi-release repo. Official distribution tarballs are made from the ompi-release repo.
Further recall that developers do not have write access into ompi-release. When they have code they want to get included in a release branch, they must submit a Github Pull Request.
The general scheme of how this works is:
- Developer writes/commits code in the
masterbranch of their localompiclone. - Developer pushes this code up to the
ompirepo on Github. - Developer creates a topic branch in their local repo from the desired release branch in their local repo.
- Developer merges the changes from
masterto their local topic branch. - Developer pushes their topic branch to their personal Github repo (NOT the main
ompirepo!). - Developer files a Pull Request to bring the code to the relevant branch in the
ompi-releaserepo.
Once the Pull Request is filed, there can be discussion on the PR, and the developer may revise their patch (or series of patches) on the topic branch, and re-push to their personal Github repo to allow others to see the changes. Finally, when the PR is merged into the target branch on ompi-release, the PR is closed and the topic branch at Github and in the developer's local repo can be deleted.
An example of this developer process -- and its associated git commands -- is shown on this wiki page.