The tools, documentation, etc. in this directory are intended to be helpful
to developers of Lucene and Solr.  They are not necessarily maintained in
the same way that the core code is maintained and so your mileage may vary
as to the usefulness of the tools.

Description of dev-tools/ contents:

./size-estimator-lucene-solr.xls -- Spreadsheet for estimating memory and disk usage in Lucene/Solr
./doap/     -- Lucene and Solr project descriptors in DOAP RDF format.
./eclipse/  -- Used to generate project descriptors for the Eclipse IDE.
./git/      -- Git documentation and resources.
./idea/     -- Used to generate project descriptors for IntelliJ's IDEA IDE.
./maven/    -- Mavenizes the Lucene/Solr packages
./netbeans/ -- Used to generate project descriptors for the Netbeans IDE.
./scripts/  -- Odds and ends for building releases, etc.
