lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shad Storhaug <s...@shadstorhaug.com>
Subject RE: .net core contribution
Date Sun, 20 Oct 2019 19:04:44 GMT
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 <kant2002@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

Mime
View raw message