The crazy version check in TestCheckIndexes is broken. Whenever it fails, it requires a horrible amount of understanding:
- error messages are useless
- you don't know what it really checks and why (no documentation)
In addition, we have no clear workflow how to handle version updates:
- In 4.6 series we never set the dev.version in common-build to 4.6.1, it always stayed 4.6. The test worked therefore, because the LUCENE_MAIN_VERSION (which is always "x.y") was identical
- In 4.7 [~steve_rowe] changed the version to the real release version in the branch. The test failed because of this change (LUCENE_MAIN_VERSION was not identical as the dotted bugfix version)
We should in any case fix the test:
- move it out of TestCheckIndex, it should be in oal.util.TestConstants
- Be more verbose on loggin
- Remove special cases (leftovers from 4.0-BETA) where we did crazy stuff to make this test pass in alphas and betas.
- Only add a check to LUCENE_MAIN_VERSION that it is in format "x.y" (which is required by Lucene index format), and only check that it is the prefix of the real version as reported by common_build.xml.
We should also document and write down when we change the version numbers. I would prefer to use the variant of Lucene 4.6: never change the version number in common-build and "override" it while building artifacts.