=========================== Contributing to Apache Lucy =========================== MAKE A PLAN: If you're looking for something to work on, see the STATUS file for a list of development priorities that the Lucy community has already built consensus around. If you propose to make non-trivial changes to Lucy, especially changes to the public API, send a note to the Lucy developer's list describing your plans: http://lucy.apache.org/mailing_lists.html GET THE CODE: Lucy's codebase is available via Git from git.apache.org. Start by creating a clone of the repository: # Non Committers git clone http://git-wip-us.apache.org/repos/asf/lucy.git # Committers git clone https://git-wip-us.apache.org/repos/asf/lucy.git There is also a mirror on Github. https://github.com/apache/lucy MAKE CHANGES: Edit the source code as you see fit, then follow the instructions in INSTALL to build Lucy and run its test suite. Please bear the following in mind: * All code will eventually need to be portable to multiple operating systems and compilers. (This is a complex requirement and it should not block your contribution.) * All public APIs must be documented. * Code should be formatted according to the style guidelines at <http://wiki.apache.org/lucy/LucyStyleGuide>. * All unit tests must pass. * New code needs to be accompanied by new unit tests. * Simplicity, both in terms of API and implementation, is highly valued within the Lucy development community; the simpler the contribution, the more quickly it can be reviewed and integrated. GENERATE A PATCH: The easiest way to create a patch with Git is to capture the output of `git diff`: git diff > my_changes.patch More experienced Git users may wish to generate patch sequences using `git format-patch`. CONTRIBUTE YOUR PATCH Lucy's issue-tracker/bug-tracker installation runs Atlassian JIRA and we generally use the term "issue" rather than "bug" because not every contribution fixes a "bug". https://issues.apache.org/jira/browse/LUCY 1. Create a JIRA account for yourself and sign in. 2. Once you have signed in, the "create new issue" link will appear. Either use it to open a new issue or navigate to an existing one as appropriate. 3. Attach your patch to the issue using the menu command 'More Actions > Attach Files'. Attaching a file to an issue causes an email notification to be sent to the lucy-issues list signalling that a patch has arrived. Please be patient but persistent while engaging with the Lucy committers who review and apply such patches. GITHUB PULL REQUESTS At this time, we have no way to accept pull requests for the Github read-only mirror, so please use the JIRA patch submission process.