On Sep 22, 2009, at 1:54 PM, Mark Bennett wrote:

To do any serious Solr debugging (or filter development) you also need the
Solr source code tree.  And you'd like them to be in sync, so that the
Lucene code you see is exactly the same as what was used for the Solr
version you're working with.

I did find this link on sync'ing the two source tress, for a specific Solr version. But this seems a bit convoluted, is this really the right answer?
http://happygiraffe.net/blog/2009/07/16/solrs-lucene-source/

Generally:

1: Given that many threads on the Solr mailing list seem to end with "yeah, you could write some code to do that", it seems like most developers would face this problem, and yet I haven't seen it discussed much (at least not with the search terms I'm using, I keep finding stuff about SolrJ or just
getting the Solr code to build)

2: Do most people pick a version of Solr, then try carefully to sync it with
the exact version of Lucene code, or do they just not worry about the
version stuff unless they get an error?

I'm probably atypical, but I check out the exact revision number of Lucene and associate it as source in IntelliJ. Other times, I simply rely on the nightly Maven artifacts to get me all the correct versions of Lucene and Solr.


3: Or do most Solr/Lucene developers just live out of the Apache nightly snapshots for both source code trees? And if so, I have a question about
even doing that.  (see below)

4: Getting both projects to live together under Eclipse has seemed a bit awkward, though again I'd think it's a common task. Any good links on that?

5: So do you most of you:
a: Bother with both code trees?  (Solr and Lucene)

Yes

b: Live from the command line with ant?  or

Yes

c: Get them both living under Eclipse? With dependencies back and forth? I
haven't found a good resource for this yet.
d: Do you also think maven, git and clover are required?

No, they are not, but I sometimes find it easier to get up and running in both Solr and Lucene by using the Maven artifacts.


6: Since advanced developers using Nutch and Solr would typically want
Lucene's source code as well, wouldn't it be good to have separate
distribution that includes all of those? Or perhaps there's some "apache
thing" that makes this so trivial it's not worth bothering with?

Not sure, there hasn't been too much cross fertilization between the projects.


Back to question 3, just using the nightly trees for both Solr and Lucene, which presumably are in sync. If you don't need a specific release, this might be a reasonable workaround, but still a few of the details bother me.

Get the code:
svn co http://svn.apache.org/repos/asf/lucene/java/trunk lucene- nightly
Checked out revision 817722.
svn co http://svn.apache.org/repos/asf/lucene/solr/trunk solr-nightly
Checked out revision 817722.

* Note that both are revision 817722



I don't think this is correct. For the Lucene version, you need to get the exact rev that Solr is expecting. This can be seen in the Admin info page or by looking in the Manifest.MF in the Jars or in the CHANGES.txt file.

Now do builds:
cd lucene-nightly / ant / cd ..
cd solr-nightly / ant / cd ..

* OK, fine, no clover, I guess I'll live...

Now check the two Lucene core jar files:
proj $ ls -l lucene-nightly/build/lucene-core-2.9.jar
-rw-r--r--  1 xyz  staff  1104037 Sep 22 09:44
lucene-nightly/build/lucene-core-2.9.jar
proj $ ls -l solr-nightly/lib/lucene-core-2.9.0.jar
-rw-r--r--  1 xyz  staff  1104049 Sep 22 09:43
solr-nightly/lib/lucene-core-2.9.0.jar

* Notice the sizes. They're pretty close, but not identical. The jar in lucene-nightly was created by my tools, whereas the lucene jar in Solr was
created on another machine.

To prove this use Subversion status command:
proj $ svn status lucene-nightly/build/lucene-core-2.9.jar
svn: warning: 'lucene-nightly/build/lucene-core-2.9.jar' is not a working
copy
So... not under version control, because it's built when I run ant.
proj $ svn status solr-nightly/lib/lucene-core-2.9.0.jar
(no output)
No complaints from Subversion, so we know that it IS under version control
and therefore came from the apache, and I haven't messed with it.

So I'd chalk up the difference exclusively to that then?

If folks work with both code trees a lot, maybe having a parent build file could copy over the fresh Lucene jar over to Solr. Also curious if there's
an automated way to get this working in Eclipse.

I have a little script to copy over the correct things from the Lucene build somewhere in JIRA, but it's not really a big deal to do it by hand.

--------------------------
Grant Ingersoll
http://www.lucidimagination.com/

Search the Lucene ecosystem (Lucene/Solr/Nutch/Mahout/Tika/Droids) using Solr/Lucene:
http://www.lucidimagination.com/search

Reply via email to