HowToContribute

How to Contribute to Pig

Getting the source code

First of all, you need the Pig source code.

Get the source code on your local drive using [WWW] SVN. Most development is done on the "trunk":

svn checkout [WWW] http://svn.apache.org/repos/asf/incubator/pig/trunk/

Making Changes

Before you start, send a message to the [WWW] Pig developer mailing list, or file a bug report in [WWW] Jira. Describe your proposed changes and check that they fit in with what others are doing and have planned for the project. Be patient, it may take folks a while to understand your requirements.

Modify the source code and add some (very) nice features or fix some (nasty) bugs using your favorite IDE.

But take care about the following points

Generating a patch

Compilation

Make sure that your code introduces no new warnings into the javac compilation.

Unit Tests

Please make sure that all unit tests succeed before constructing your patch.

> cd trunk
> ant -Djavac.args="-Xlint -Xmaxwarns 1000" clean jar test

After a while, if you see

BUILD SUCCESSFUL

all is ok, but if you see

BUILD FAILED

then please examine error messages in build/test and fix things before proceeding.

Javadoc

Please also check the javadoc.

> ant doc
> firefox docs/index.html

Examine all public classes you've changed to see that documentation is complete and informative. Your patch must not generate any javadoc warnings.

Creating a patch

Check to see what files you have modified with:

svn stat

Add any new files with:

svn add src/.../MyNewClass.java

Edit the CHANGES.txt file, adding a description of your change, including the bug number it fixes. If this is a new feature, or other enhancement that doesn't currently have a ticket please create one for it, then use it's number when adding your note to CHANGES.txt. You'll need this ticket to submit your patch anyway.

In order to create a patch, just type:

svn diff > myBeautifulPatch.patch

This will report all modifications done on Hadoop sources on your local disk and save them into the myBeautifulPath.patch file. Read the patch file. Make sure it includes ONLY the modifications required to fix a single issue.

Please do not:

Please do:

Applying a patch

To apply a patch either you generated or found from JIRA, you can issue

patch -p0 <cool_patch.patch

if you just want to check whether the patch applies you can run patch with --dry-run option

patch -p0 --dry-run <cool_patch.patch

If you are an Eclipse user, you can apply a patch by :

  1. Right click project name in Package Explorer,

  2. Team -> Apply Patch

Contributing your work

Finally, patches should be attached to a bug report in [WWW] Jira via the Attach File link on the jira. Please add a comment that asks for a code review following our code review checklist. Please note that the attachment should be granted license to ASF for inclusion in ASF works (as per the [WWW] Apache License subsection 5).

When you believe that your patch is ready to be committed, select 'Edit' link from the 'Operations' section in Jira and check the 'Patch Available' box.

If your patch involves performance optimizations, they should be validated by benchmarks that demonstrate an improvement.

Once your patch has been submitted, a committer should then evaluate it within a few days and either: commit it; or reject it with an explanation.

Please be patient. Committers are busy people too. If no one responds to your patch after a few days, please make friendly reminders. Please incorporate other's suggestions into into your patch if you think they're reasonable. Finally, remember that even a patch that is not committed is useful to the community.

Committers: for non-trivial changes, it is best to get another committer to review your patches before commit. Use "Submit Patch" like other contributors, and then wait for a "+1" from another committer before committing. Please also try to frequently review things in the patch queue.

Jira Guidelines

Please comment on issues in Jira, making your concerns known. Please also vote for issues that are a high priority for you.

Please refrain from editing descriptions and comments if possible, as edits spam the mailing list and clutter Jira's "All" display, which is otherwise very useful. Instead, preview descriptions and comments using the preview button (on the right) before posting them. Keep descriptions brief and save more elaborate proposals for comments, since descriptions are included in Jira's automatically sent messages. If you change your mind, note this in a new comment, rather than editing an older comment. The issue should preserve this history of the discussion.

Stay involved

Contributors should join the [WWW] Pig mailing lists. In particular, the commit list (to see changes as they are made), the dev list (to join discussions of changes) and the user list (to help others).

See Also

last edited 2008-02-23 02:09:49 by XuZhang