Blog

Working on Apaches Lucene.Net

I was requested to compose a blog post about how what Ive been working within the Lucene.Net project as a committer. Who in there right mind would ask me to do that? CoughcoworkerCough. They already hang signs around my desk that tells you not to feed my ego. Why should I have to write about my rock star status? I have fans for that. Despite the popular belief that Im a sexy nerd with naracistic tendencies, more awesome than Captain Awesome, I am just a down-to-earth guy like Whil Wheaton. Seriously though, this post isnt going to be about flaunting or bragging rights. It is poor taste to do something that diminishes something that really takes a team effort and community to accomplish. What this post is going to really focus on is the why or motivations behind the actions, which is sometimes more important than the actual actions themselves.

The Decision to be a committer Lucene.Net was on the verge of being

forked into oblivion and put into Apaches Attic. The Attic, which sounds like reference to Josh Weldons Doll House, fundamentally works the same way it does on that show. All fraked projects go there to hibernate or die. I joined Lucene.Net as a committer to prevent its complete demise and to foster growth in its developer and user community to a point that it never has the issue of stagnation again. My focus on the project will be growing the community, mostly through writing and media. If successful, Id like to be able provide materials to help other .NET opensource projects market their project and grow the overall .NET opensource community into maturity.

What a committer is actually responsible for There is often a misconception that a committer to an opensource project is there to write code. Even though the committer has access to the repository, that does not mean they actually have to write the code. Project committers actually have the responsibilities of fostering the growth of the project, marketing the project, guiding its direction through transparent communication with the community, and all the boring managing stuff that most developers do not want to bother with.

The bigger picture The .NET ecosystem could not afford to lose another core foss project. The underlying platform is rock solid and for a strongly typed language, C# is syntactically sugar coated and exceptionally versatile. However, Microsoft can not and should not be the ones continuing to publish what the community sees as the de facto standard or definitive project or library in all spaces within the .NET ecosystem. The overall .NET community exhibits codependency issues with Microsoft. Libraries like Nuget and Asp.NET Mvc are awesome libraries, but the community should have created these libraries on its own a long time ago. There is a great number of abandoned .NET opensource projects littered all over the web. The community has already lost its sorely needed but under appreciated NDoc tool in the past and really can not afford to keep losing vital projects. The community needs to mature. Even Lucene.Net needs to grow up. It needs to do more than port the Java code into C#. It needs to contribute to the growth of underlying logic of Lucene and even create a healthy competition with its parent project. Thus Ive made my decision to jump into the fray of working within Apaches Lucene.Net project in order to put money where my mouth is.

So what have you been doing these last few months? Digging into Lucene.Net and Lucene to better understand it. It is hard to market something if you do not understand how it works and how it can be improved. Ive been reading

Lucene in Action 2nd edition to see up-to-date documentation on Lucene. Ive also been reading Language Implementation Patterns to get my head back into ASTs (abstract syntax trees), grammars, parsing, tokenizing, and etc. I have also been coding a small blog engine using Asp.NET Mvc. This is what is currently powering wickedsoftware.net, a site dedicated to the effort of marketing .NET opensource projects. The first project being marketed is Lucene.Net. Last but not least, Ive been tinkering with the actual Lucene.Net API, blogging about some of the deprecations found in the API of v2.9.2. Ive also helped to get the word out about the hackathon, logo design contest graciously put together by stack overflow, and a vote to drop support of .NET 2.0 and move forward to .NET 4.0

What will you be doing in the future?

  • Creating build scripts to build the project from command line.
  • Working towards getting Lucene.Net into Apaches continuous integration setup in hudkins (jenkins)
  • Putting out a monthly post on what is going with Lucene.Net. Check out Mays update.
  • Writing, documenting, and tweeting about Lucene.Net
  • Attending the Lucene Revolution conference this week in San Fran. Dont be shy and say hi if youre attending that conference. If you have any feedback for the project hit up the

mailing lists, the irc channel #lucene.net, or you can tweet me @michaelherndon on twitter.