On Fri, Oct 16, 2015, at 04:00 PM, Ryan Josal wrote:
> Thanks for the feedback, forking lucene/solr is my last resort indeed.
> 
> 1) It's not about creating fresh new plugins.  It's about modifying
> existing ones or core solr code.
> 2) I want to submit the patch to modify core solr or lucene code, but I
> also want to run it in prod before its accepted and released publicly.
> Also I think this helps solidify the patch over time.
> 3) I have to do this all the time, and I agree it's better than forking,
> but doing this repeatedly over time has diminishing returns because it
> increases the cost of upgrading solr.  I also requires some ugly
> reflection
> in most cases, and in others copying verbatim a pile of other classes.

If you want to patch a component, change its package name and fork that
component. I have a custom MoreLikeThisHandler in production quite
happily like this.

I've also done an SVN checkout of Solr, made my code changes there, and
then created a local git repo that I can track my own changes for stuff
that will eventually get pushed back to Solr. 

I work concurrently on a number of patches to the Admin UI. They tend to
sit in different JIRAs as patches for a few days before I commit them,
so this local git repo makes it much easier for me to track my changes,
but from the Solr community's perspective, I'm just using SVN.

I could easily push this git repo up to github or such if I thought that
added value.

Then, I regularly run svn update which keeps this checkout up-to-date,
and confirm it hasn't broken things.

If you wanted to run against a specific version in Solr, you could force
SVN to a specific revision (e.g. of the 5x branch) - the one that was
released, and git merge your patches into it, etc, etc, etc.

Upayavira

Reply via email to