Development Resources/Handling Git Contributions

From Eclipsepedia

Jump to: navigation, search

Git makes it easy to pull contributions from other repositories and make them part of your own. It feels wrong to do the same thing we do with CVS: attach a patch that is later added to the repository by a committer. The natural thing to do in Git is to pull the contribution in question from the contributor's Git repository. Regardless of the mechanism used to actually get the code into an Eclipse project's Git repository, the Eclipse IP Policy and Due Diligence Process must be followed.

One of the main issues that we need to address is that we need to form a connection between code that has been contributed and a statement of provenance, rights, and licensing. You know, lawyer stuff.

Git does a great job of keeping track of author information, but there is no built in way to keep track of all the other stuff. At some point in the hopefully-not-too-distant-future, we'll be able to use Gerrit for this (see Bug 283749. In the meantime, we have to bridge the old world with the new.

Scenario

An individual has forked one of the eclipse.org projects and has issued a pull request for a commit record that they would like to contribute to the eclipse.org project.

  1. Eclipse project committer agrees the contribution is something they would like to include in their project.
  2. Contributor or project committer creates a bugzilla that include URL pointers to the refs (commit record) in the source repository.
  3. The contributor provides a statement regarding the provenance, rights, and license of the code:
    • e.g., "I wrote all this code and have the rights to contribute it to Eclipse under the eclipse.org web site terms of use."
  4. If required by the IP Due Diligence Process (e.g. if the contribution exceeds 250 lines), the committer creates a CQ (including the URL of the ref) and waits for "check in" permission
  5. Project committer merges the pull request back into the eclipse.org project git repository.
    • Your committer ID, or the committer email address registered with your committer account at the Eclipse Foundation must be present in the Committer Email record. See Committing and Pushing for more information.
    • Also set the author name and email to the contributor's information. See How do I change the author of a commit in git? for help.
  6. Project committer adds a comment that includes URL pointers to the refs in the eclipse.org repository
  7. Project committer marks the bug as iplog+
  8. Project committer closes the bug.

Note that Bug 341289 has been opened to track an update to the automated IP Log generators to mine contributor information directly from Git. In order for this to work, author information needs to be captured.