Hi all.

I've been working on the 4.8 branch to try and stabilize it so it can be the base for our next release. There's still plenty to do, but I was able to make decent progress.

This thread will be used for me to report progress and hopefully get some more people involved.

My branch is here: https://github.com/synhershko/lucene.net/tree/Lucene.Net_4.8.0

Out of about 2300 tests currently, there are about 600 failing tests and the rest are green. At least 300 of the failing tests are due to missing codecs (some codecs haven't been ported yet). The rest of the failures can be largely categorized as below.

1. The missing codecs need to be ported (into a separate assembly). There isn't too much of code to port and work is pretty much self contained. However completing this will make about 300 tests green.
The code to port is here: https://github.com/apache/lucene-solr/tree/lucene_solr_4_8_0/lucene/codecs/src/java/org/apache/lucene/codecs

2. Compressed fields implementation is largely broken. Quite a few test are red and I'm pretty sure the fix is quite simple, just a faulty implementation to quickly re-write.

3. Many, many tests are very slow or even deadlocking because of threading issues. Culprits are both IndexWriter and FSDirectory. This is the most severe and probably challenging issue to solve.
There are multiple failures which I believe relate to this issue. "Access to the path is denied." on index files, failing Asserts etc.

4. The fsync implementation (in FSDirectory) needs some love and testing.

5. The rest of the failing tests are probably isolated porting issues (Java / C# differences or bugs introduced while porting). I attached a screenshot of one such error, thrown using Debug.Assert from the core while running some of the tests.

Other items to tackle later:

1. CLS compliance. Maybe the biggest item there is the byte/sbyte thing we discussed several times before.

2. Porting the contribs.

3. Cleaning up the API and XML comments

4. Fixing the license header in all source files

5. CI pipeline and SlowTest attribute to have some tests run only on nightly builds or similar

Anyone up for some coding?

--

Itamar Syn-Hershko
http://code972.com | @synhershko
Freelance Developer & Consultant
Author of RavenDB in Action