How to sponsor

DRAFT #1 2009/02/26 - Comments to discuss@openjdk.java.net

This page describes the sponsoring part of the sponsored contribution process for the JDK 6 and JDK 7 Projects. Other Projects may follow these conventions - or they may not - so if you are in doubt, please consult the Project's pages for details.

As this document focuses on the sponsoring part, in order to get the full picture, please take a look at the 'How to contribute' document.

This process is intended for developers who have authorship (i.e. 'push') rights to the JDK 6 and 7 Projects. It provides a guideline for JDK authors to help developers whon don't yet have authorship rights (i.e. Contributors) become familiar with the expectations, standards, and mechanics of the JDK development process. A Sponsor's role is to offer constructive advice and eventually push the sponsored contribution into the corresponding Mercurial repository.

0. Get a Bugzilla account

In order to be able to sponsor contributions, you need to get an account on the OpenJDK Bugzilla at bugs.openjdk.java.net first. Please use your primary e-mail address for the Bugzilla account, particularly if you are an engineer at Sun Microsystems working on the JDK.

As a Sponsor, Contributors will look up to you for guidance to get their contributions into the Project - your actions will determine whether Contributors will feel welcome and want to engage further with the Project beyond their initial attempt, or not. Let's not lose enthusiastic, engaged, and technically competent Contributors due to the Bugzilla e-mail going to the an e-mail account that's used only sporadically.

Once you have a Bugzilla account, please log in. You need to be logged in in order to be able to sponsor contributions.

1. Find a contribution to sponsor

You can use Bugzilla to look for contributions where a Sponsor has been requested, either by typing "sponsor?" into the quick-search box, on top of each Bugzilla page or by using the following URL:

https://bugs.openjdk.java.net/buglist.cgi?quicksearch=sponsor%3F

If you log into Bugzilla, you can save this search to your personal searches with a short name.

Based on your own skills and expertise in a particular part of the Project, you may discover that there are some contributions without Sponsors that fall into an area that you are comfortable with and willing to sponsor contributions to.

Bugzilla offers a useful feature called User Watching. It lets you monitor issues in your area of expertise by adding the corresponding virtual watch user to your watch list.

For example, if you want to watch issues regarding core libraries, you would add watch-core-other@bugs.openjdk.java.net to your user watch list.

In order to claim a sponsorship request in Bugzilla, you need to perform three steps:

2. Link the contribution back to a Sun bug

A 'Sun bug' ia a bug in Sun's current internal bug database.

If the contribution doesn't already have an associated Sun bug then:

The Sun bug's description can just be a hyperlink straight to the Bugzilla bug.

3. Review the contribution

You're now ready to review the proposed changes. Some changes may be trivial, like spelling fixes. Others may require a more intensive review - including, for example, a review by the CCC.

As a Sponsor, you may need to work with the Contributor to make any necessary changes, until you and the Contributor are satisfied with the result, and you are satisfied that the proposed contribution will pass any relevant Sun-internal review processes and build-and-test processes. That may take more then one iteration in the worst case.

Once the contribution passes the review and build-and-test processes, you're ready to move on to the next step.

4. Push the contribution into a forest

Push the change into your favorite local Mercurial forest. In order to make it easy to track contributions, and give credit to Contributors for their work, please include a Contributed-by: line in the changeset comment. It should have the form

	Contributed-by: Ben Bitdiddle <ben@bits.com>

with Ben Bitdiddle replaced by the actual name of the Contributor, and ben@bits.com replaced by their e-mail address from the corresponding issue in Bugzilla.

Once you've done this, set both the Bugzilla bug and the Sun bug to the "FIXAVAILABLE" state.

5. Integration in a build

If all goes well, the sponsored contribution will gradually make its way from the initial forest into which it was pushed up to the master area of the Project, and appear in a build. Then the Sun bug will be marked as "FIX DELIVERED" by your local integrator.

After the Sun bug has been marked "FIX DELIVERED" you'll need to do just one more thing - please update the Bugzilla bug to the same state.

6. Celebrate your contributions

Sponsoring new contributions is an important activity - it's how the engineering culture of a project gets passed on from the core group to new Contributors, from one generation to the next. It should be fun, so please celebrate the contributions you've sponsored by mentioning them on your blog, for example, congratulate other sponsors on their work, and take pride in your accomplishments as to whom someone our Projects' Contributors look for assistance and guidance.