How to Contribute to Lucene
Working With Code
Getting the source code
First of all, you need the Lucene source code.
Get the source code using: git clone https://github.com/apache/lucene-solr/
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, please create a new test case that fails before your fix, to show the presence of the bug and ensure it never re-occurs. 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: git status
Add any new files with: git add src/.../MyNewClass.java
In order to create a patch, just type git diff HEAD > 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.
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.
For more contribution guidelines and tips, see DeveloperTips