I would like to propose for approval a new Apache repository (named `lucenenet-extensions`) and name prefix for future Lucene.NET Extensions NuGet packages, the details of which are below. This email starts a 72-hour approval vote for PMC members.
As you probably know, I have been working this summer with Nehan Khan Pathan as the mentor for his Google Summer of Code 2025 project. This project involved improving our Replicator support for ASP.NET Core, as well as the Dependency Injection (DI) registration of common Lucene.NET Services via Microsoft.Extensions.DependencyInjection (MEDI). By all measures, this project has been a great success! Congratulations to Nehan for getting to the finish line as we finish up the project this week. Once we're on the other side of the final submission, I'll post a more detailed update to this dev list. The result of this work is a collection of "Extension" libraries to Lucene.NET, as we're calling them. These are named to mirror the use of "Extensions" in "Microsoft.Extensions.Logging" and "Microsoft.Extensions.DependencyInjection." You can see the work in progress at a repo on my GitHub, where we have been integrating his work in preparation for eventually moving this into an official Apache repo for our project: https://github.com/paulirwin/lucenenet-extensions Please note that the work there is incomplete (some is still going through review in a PR), does not yet have proper license setup, minimal and likely inadequate CI, no versioning or NuGet details, etc. Nehan and I are actively working on moving his prototype code into near-final form in this repo as I write this. This vote is NOT intended to be a reflection on whether or not this code is good to merge into a new repo nor publish to NuGet. I only provide the link here so that you can view the code and project structure if you are interested, to get an idea of what Nehan did for this project. At first, we will have these Extensions available, but may add others as demand and community contributions dictate: - Lucene.Net.Extensions.DependencyInjection - core MEDI extension methods to aid in registering index readers, writers, searchers, etc. in modern .NET applications - Lucene.Net.Extensions.AspNetCore.Replicator - ASP.NET Core 8+ support for index replication - Lucene.Net.Extensions.SelfHost.Replicator - .NET BackgroundService support for hosting a Lucene.NET replication server (uses ASP.NET Core Kestrel under the hood as an implementation detail, but is designed to be used in non-ASP.NET Core applications such as Windows/Linux services) So, why not merge this into the main Lucene.NET repo? Well, these are intended to track modern and rapidly-evolving versions of the underlying dependencies (i.e. Microsoft.Extensions.DependencyInjection, ASP.NET Core) and we need to be able to update those out-of-band of a Lucene.NET release. Also, we would like the flexibility to launch new extensions projects in the future without having to also do a Lucene.NET release or tie it to the Lucene.NET versioning. At the start of this project, I worked with Shad to come up with the direction for the package names. We will welcome any feedback on the individual package names (or any other feedback you have) once the code is PRed for introduction into this new repo. We just want to have an established repository name and corresponding namespace and package prefix before we begin. As far as the repo name goes, Apache sub-repos for our project must start with `lucenenet-`, so that part is non-negotiable. I figured `lucenenet-extensions` is simple, memorable, and concisely describes the contents. Given that these packages are intended to be consumed by the public on NuGet once released, the release of these packages will go through the normal Apache release vote and process (unlike the previous vote for the exception for the internal-use code analysis packages). But releasing these is not up for vote at this time. Now that you can see what this project was all about, here's what I'm asking for a vote on: - Approval to set up a new `lucenenet-extensions` Apache repo, much like we did recently for `lucenenet-codeanalysis-dev` (including approval of the repo name) - Approval of the *name* *only* of the Lucene.Net.Extensions.* package/namespace prefix This vote does NOT approve the release of any packages or artifacts: this is NOT a release vote. Only votes from the PMC are binding, but everyone is welcome to vote. Please reply with your +1 or -1 vote, with or without any comments. The vote passes if at least three binding +1 votes are cast. Thank you, Paul Irwin Lucene.NET PMC Member Apache Software Foundation Member