You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucenenet.apache.org by Paul Stoker <pa...@stokedout.com> on 2019/10/20 10:58:25 UTC

.net core contribution

Hey guys,

I'm looking to contribute to some open source projects and having worked
with Lucene.net I'm interested in helping guys out.

In short I thought that it would be a great idea (I'm sure I'm not the
first to ask) to port this library to .net core.

Firstly, is it even feasible?
Secondaly, would this be something your are interested in?

I tried cloning the repo to check but received ''*fatal: unable to access
'https://git-wip-us.apache.org/repos/asf/lucenenet.git/
<https://git-wip-us.apache.org/repos/asf/lucenenet.git/>': SSL certificate
problem: unable to get local issuer certificate*" - I could ignore that
warning but wanted to check first.

Thanks,

*Paul Stoker*
Developer / Designer

RE: .net core contribution

Posted by Shad Storhaug <sh...@shadstorhaug.com>.
Hi Paul,

Thanks for reaching out. We definitely could use the help to get Lucene.NET 4.8.0 out of beta.

While it is true that we already support .NET Core because of .NET Standard support, we only recently set up tests to run on Linux and macOS, and have discovered that our current NativeFSLockFactory implementation has some issues running on macOS. See https://issues.apache.org/jira/browse/LUCENENET-618. This is something that is currently up-for-grabs, but the current thinking is to utilize the implementation that is working well on Windows by provoking the specific exceptions we are interested in during initialization to cache the HResult values of the current platform (except for Windows because we already know them) so they can be utilized during runtime as constant values.

Also, while we are testing on .NET Framework and .NET Core 1.0 and 2.1, we are not currently testing on any of the many other platforms that .NET Standard supports. There is another up-for-grabs issue for anyone who would be willing to help us setup tests on common platforms such as Mono, UWP, and Xamarin iOS (the latter of which we have had reports of some issues already): https://issues.apache.org/jira/browse/LUCENENET-633

Do note that we have setup a YAML build pipeline (azure-pipelines.yml) for Azure DevOps that literally anyone can use to build and run the tests simply by importing the YAML into a new build pipeline in a free Azure DevOps account (https://azure.microsoft.com/en-us/services/devops/). If you make the Azure DevOps project public, the tests will run in parallel. The default options will "just work", and there are some variables that are documented at the top of the file that can be added to the build to enable other features, such as pushing the NuGet packages into Azure Artifacts. It is this YAML file (and its dependencies) that will need to be edited in order to setup testing on additional platforms.

Lucene.NET is largely unfinished because it has dependencies that are unfinished and/or not ported. Some dependencies do not have .NET Standard support yet, which is holding up the show. Others did not have .NET Standard support as early as we did, so we ended up copying code from those projects rather than doing the contribution work on another project to get them on .NET Standard, which was both a considerable amount of work and a tough sell to project maintainers in those early days. Now we should try to migrate dependencies back to the original source of the code and make patches as necessary. Some of these dependencies:

C5: https://github.com/sestoft/C5 (Collections TreeSet and TreeDictionary do not support ISet<T>, IDictionary<T>, so are not compatible with Lucene.NET). See https://issues.apache.org/jira/browse/LUCENENET-612. 
CSharpTest.Net.Collections: https://github.com/csharptest/CSharpTest.Net.Collections (No .NET Standard support)
ICU4N: https://github.com/NightOwl888/ICU4N (Lucene's largest dependency, ported as much as Lucene.NET needs, but will require work to make it fully .NET compatible)
RandomizedTesting: https://issues.apache.org/jira/browse/LUCENENET-627 (Not yet ported)
OpenNLP: Option #1: Native implementation (https://github.com/AlexPoint/OpenNlp) has no .NET Standard support and is an old version missing features that Lucene.NET needs. Option #2: IKVM implementation (https://github.com/sergey-tihon/OpenNLP.NET) has no .NET Standard support, although there is some activity happening to try to make it happen (https://github.com/wwrd/ikvm8/issues/3).
JavaCC: https://issues.apache.org/jira/browse/LUCENENET-620 Parser generator for QueryParsers (Not yet ported)
Morfologik: https://issues.apache.org/jira/browse/LUCENENET-568 (Not yet ported)

Of course, if none of that sounds like a task you would be interested in pursuing, we have been slowly adding up-for-grabs issues on JIRA: https://issues.apache.org/jira/projects/LUCENENET. There are many tasks available ranging from a few hours to a few weeks. Just let us know what you would be interested in working on so efforts are not duplicated. Do note that the list on JIRA is not complete, so if you need any other suggestions, just ask.

BTW - earlier this year Apache moved our official repo to GitBox: https://gitbox.apache.org/repos/asf/lucenenet.git. Please let us know where you discovered that link so we can make sure it gets updated.


Thanks,
Shad Storhaug (NightOwl888)
Project Chairperson - Lucene.NET


-----Original Message-----
From: Andrey Kurdumov <ka...@googlemail.com.INVALID> 
Sent: Sunday, October 20, 2019 6:18 PM
To: dev@lucenenet.apache.org
Subject: RE: .net core contribution

I would say, that this is already done. Lucene.NET 4.8 supports .NET Standard 2.0 and as such work in all version of .NET Core. I can say from experience, that certain parts of code successfully working in Blazor starting from early beta, so likely this part is already done.

If you have troubles clone from Apache servers, you can always clone from Github mirrors (https://github.com/apache/lucenenet)

For list of open issues you can go to JIRA (https://issues.apache.org/jira/projects/LUCENENET) and try to take what feels closer to your needs.

Best regards,
Andrey

From: Paul Stoker
Sent: Sunday, October 20, 2019 1:58 PM
To: dev@lucenenet.apache.org
Subject: .net core contribution

Hey guys,

I'm looking to contribute to some open source projects and having worked with Lucene.net I'm interested in helping guys out.

In short I thought that it would be a great idea (I'm sure I'm not the first to ask) to port this library to .net core.

Firstly, is it even feasible?
Secondaly, would this be something your are interested in?

I tried cloning the repo to check but received ''*fatal: unable to access 'https://git-wip-us.apache.org/repos/asf/lucenenet.git/
<https://git-wip-us.apache.org/repos/asf/lucenenet.git/>': SSL certificate
problem: unable to get local issuer certificate*" - I could ignore that warning but wanted to check first.

Thanks,

*Paul Stoker*
Developer / Designer


RE: .net core contribution

Posted by Andrey Kurdumov <ka...@googlemail.com.INVALID>.
I would say, that this is already done. Lucene.NET 4.8 supports .NET Standard 2.0 and as such work in all version of .NET Core. I can say from experience, that certain parts of code successfully working in Blazor starting from early beta, so likely this part is already done.

If you have troubles clone from Apache servers, you can always clone from Github mirrors (https://github.com/apache/lucenenet)

For list of open issues you can go to JIRA (https://issues.apache.org/jira/projects/LUCENENET) and try to take what feels closer to your needs.

Best regards,
Andrey

From: Paul Stoker
Sent: Sunday, October 20, 2019 1:58 PM
To: dev@lucenenet.apache.org
Subject: .net core contribution

Hey guys,

I'm looking to contribute to some open source projects and having worked
with Lucene.net I'm interested in helping guys out.

In short I thought that it would be a great idea (I'm sure I'm not the
first to ask) to port this library to .net core.

Firstly, is it even feasible?
Secondaly, would this be something your are interested in?

I tried cloning the repo to check but received ''*fatal: unable to access
'https://git-wip-us.apache.org/repos/asf/lucenenet.git/
<https://git-wip-us.apache.org/repos/asf/lucenenet.git/>': SSL certificate
problem: unable to get local issuer certificate*" - I could ignore that
warning but wanted to check first.

Thanks,

*Paul Stoker*
Developer / Designer