How to Contribute to Lucene
Contents
Working With Code
Getting the source code
First of all, you need the Lucene source code.
Get the source code using SVN: svn checkout http://svn.apache.org/repos/asf/lucene/dev/trunk/ lucene-trunk
Unit Tests
Please make sure that all unit tests succeed before constructing your patch: ant clean test
To run a single test case from the lucene/ directory in your working copy: ant -Dtestcase=NameOfYourUnitTest test
In case your contribution fixes a bug, try and make your test case fail to show the presence of the bug. A test case showing the presence of a bug is also a good contribution by itself.
Creating a patch
Check to see what files you have modified with: svn stat
Add any new files with: svn add src/.../MyNewClass.java
In order to create a patch, just type: svn diff > LUCENE-NNNN.patch
This will report all modifications done on Lucene sources on your local disk and save them into the LUCENE-NNNN.patch file. Read the patch file. Make sure it includes ONLY the modifications required to fix a single issue.
Contributing your work
Finally, patches should be attached to a bug report in Jira.
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 others' 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.
Stay involved
Contributors should join the Lucene 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).
Please keep discussions about Lucene on list so that everyone benefits. Emailing individual committers with questions about specific Lucene issues is discouraged. See http://people.apache.org/~hossman/#private_q.
Getting your feet wet: where to begin?
New to Lucene? Want to find JIRA issues that you can work on without taking on the whole world?
The Lucene/Solr developers use the "newdev" label to mark issues that developers new to Lucene might be interested in working on. The rough criteria used to make this selection are:
- Nobody has done any work on the issue yet.
- The issue is likely not controversial.
- The issue is likely self-contained with limited scope.
To see a list of open Lucene and Solr issues with the newdev label, look at this link http://s.apache.org/newdevlucenesolr
Note: Fixing these issues may require asking questions on the developer list to figure out what they mean - there is no guarantee that any of these will be either quick or easy.
Developer tips
For more contribution guidelines and tips, see DeveloperTips