Lucene.NET status update (October '16)
I have previously blogged about Lucene.NET - saying we are nearing a release, and are happy with what we have so far to call it Beta and ask all to upgrade and let us know how it goes.
Thanks to our contributors, with a lot of great work done by Shad Storhaug we are getting ever closer.
Tests and stability
We now have over 5000 passing tests, with all the important bits ported and properly tested. Namely, this boils down to the following:
Ported:
Lucene.Net (Core) - 15 failing / 1989 total
Lucene.Net.Analysis.Common - 0 failing / 1445 total
Lucene.Net.Classification - 0 failing / 9 total
Lucene.Net.Expressions - 0 failing / 94 total
Lucene.Net.Facet - 0 failing / 152 total
Lucene.Net.Join - 0 failing / 27 total
Lucene.Net.Memory - 0 failing / 10 total
Lucene.Net.Misc - 2 failing / 42 total
Lucene.Net.Queries - 2 failing / 96 total
Lucene.Net.QueryParser - 1 failing / 203 total
Lucene.Net.Suggest - 0 failing / 142 total
Still need to be ported / brought up to speed:
Lucene.Net.Highlighter
Lucene.Net.Spatial
Lucene.Net.Codecs (Partially ported, mostly the tests weren't ported)
Lucene.Net.Grouping
Some modules (mainly the least frequently used ones in Analysis) will not be ported by us before the official release. Those modules are less frequently used, and we want to stabilize and release first and then work on them based on demand.
At this point we basically have the entire Core and Core-supporting modules ported, and the complete test harness testing it, with only a small number of tests failing. We attribute some of the failures to the test infrastructure we use (NUnit, which we are now looking to replace with xUnit) but some may be subtle bugs. We are working on getting those nailed down.
.NETification
Once all modules are ported and all tests are passing, we will probably be concentrating our efforts on two fronts.
-
.NET Core support - we did some work on that front, but we are not there yet. We want to have as much as Lucene.NET running on .NET Core, and we will put some efforts into supporting that.
-
Some of the public-facing APIs are still not entirely .NET-y, and we want them to be so. We will fix what we can to guarantee familiar API to .NET devs, but without risking diverging from the Java Lucene codebase too much - so code examples work out of the box, and also future porting work isn't too hard to do.
Docs and guidance
Probably the most important bits. For a good library to be accessible it needs to have good docs and plenty of examples. Preferably in video form or something that is easy to follow. I'm on it :)