Skip to content

SubmittingPullRequests

Jeff Squyres edited this page Sep 19, 2014 · 26 revisions

In the Open MPI project, we track three main things:

If this is a code contribution / pull request, then you should file a pull request, not a normal Github issue.

You must have a Github account to submit bugs or pull requests.

Submitting a Pull Request

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 OMPI has the ompi and ompi-release 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:

  1. Developer writes/commits code in the master branch of their local ompi clone.
  2. Developer pushes this code up to the ompi repo on Github.
  3. Developer creates a topic branch in their local repo from the desired release branch in their local repo.
  4. Developer merges the changes from master to their local topic branch.
  5. Developer pushes their topic branch to their personal Github repo (NOT the main ompi repo!).
  6. Developer files a Pull Request to bring the code to the relevant branch in the ompi-release repo.

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. 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.

Clone this wiki locally