THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
Idiot's Guide to
...
Upgrading Tika in Apache Solr
This is written as a relative outsider to Apache Solr development. It will appear painfully rudimentary to devs on Solr, and it assumes less-than-black-belt-familiarity with git...so be it.
...
- python3 must be installed and callable as python3
- perl must be installed
- ivy must be installed:
ant ivy-bootstrap
- Fork lucene-solr and clone your fork.
- Hint: if you're using Intellij, run
ant idea
before opening the project in Intellij - Getting Solr built the first time can take a long time.
- Check out your local fork
- Make sure you're up to date
git remote add upstream https://github.com/apache/lucene-solr.git
git fetch upstream
git pull upstream master
git push master
Phase 1
- create new branch, e.g
jira/solr-11701
mvn dependency:tree
on the newly released Apache Tika and MEMORIZE it- upgrade all dependencies in
lucene/ivy-versions.properties
– make sure that they are in alphabetical order - add any new licenses in
solr/licenses
– must include a -LICENSE-XYZ.txt and -NOTICE.txt file for every jar - update anything new in
solr/contrib/extraction/ivy.xml
ant clean
(out of nervous habit) and then run the unit tests incontrib/dataimporthandler-extras
andcontrib/extraction
- Fix any problems in the source code, and this can include
XLSXResponseWriter
which relies on Apache POI. ant clean-jars jar-checksums
git add
new .sha1 files in solr/licenses and lucene/licenses andgit rm
old .sha1 filesant precommit
- Receive immediate errors that you missed something and go back two steps; repeat
ant precommit
as needed, waiting 15-20 minutes each time ... if you didn't break something obvious. - In my environment,
ant precommit
eventually ends in errors about broken links in html. This means you are successful!!!
Phase 2: Integration Testing Solr
...
- When everything looks good, commit your changes and submit a PR
Phase 4: Reflect
- Reflect on:
- The tedium to get the dependencies right and the risks of not getting them right
- The ever present risks of jar hell by integrating Tika into Solr
- The seductive belief that Tika won't break Solr, when we know it will eventually, and we should really be keeping Tika out of Solr if at all possible...and yet maintain the awesome easy-to-get-started-ness of the current integration.
- Work on SOLR-7632 and/or SOLR-11721