Skip to content

SubmittingPullRequests

Howard Pritchard edited this page Jul 11, 2017 · 26 revisions

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

  1. Bugs and enhancement requests: These are tracked in the Github Issues tracker in the ompi repository.
  2. Requests to get code into the release branches: These are tracked in the Pull Requests to release branches in ompi repository.
  3. 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 ompi repository.

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

Submitting a Pull Request

Pull Requests for the Open MPI release branches are filed via developer's personal Github repositories, against one or more release branches in the ompi repository.

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 against a particular release branch to get it pulled in to that release branch.


NOTE: Pull requests on a release branch must include a hash reference in the body/comments corresponding to the commit(s) on ompi:master from which it is derived, OR indicate that this is solely a release branch bug (i.e., there's no corresponding commit on ompi:master because the bug doesn't/didn't exist on ompi:master). Specifically: the intent is that code only goes in to a release branch after it has been committed to the ompi:master development branch.


General scheme

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 cherry-picks 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 release branch in the ompi repo.

Once the Pull Request against the master branch is filed, there can be discussion on the PR. It is critical that any changes resulting from the discussion be first committed to the master branch in the ompi repo on Github so they can be tested by the community prior to merging the corresponding changes into a release branch.

Finally, when the PR is merged into the target branch on ompi, 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