Contributing to Apache Open Source Projects

Justin ErenkrantzApache Software Foundation board member as well as President of the foundation – today at OSCON 2009 will talk about “Putting It All Together: Contributing to Open Source Projects“, or how an individual developer can contribute constructively to an (Apache) open source project.

Yesterday I had an skype conversation with Justin and Sander Striker, an Apache contributor, and I asked them more about Apache and the Apache Incubator, the entry path into the Apache software foundation for projects wishing to get under the Apache umbrella.

How things are going at the Apache Software Foundation?

Justin: We currently have over 100 different projects under the Apache “umbrella” with over 2,000 committers and ~350 members of the foundation.  Each project is independently operated by what we call a “PMC”.  We have about 75 different top-level projects, ~30 or so projects either under Incubation (baby ASF projects), and a bunch of “labs” which are individual projects started by the foundation members.

What if I want to bring my project under the Apache umbrella?

Sander: This is what the “Incubator” is about. In short you would send a proposal to the Incubator, and find sponsoring members for your project. The information on the link is pretty extensive and describes the process from entry to graduation.

Justin: Yes, and we’ll accept *any* project that our members want to support. And, given how diverse our 350+ members are, we’ll support pretty much anything that folks can come up with.

Could you name a project who went successfully under this process?

Sander: SpamAssassin is a good example of an external project that made it through incubation successfully. It was one of the earlier projects to go through the incubation process.  They were seeking an umbrella, as to not have to worry about liability and such.  I was one of the mentors for that project.

As the incubator is also our IP clearing house if you will, SpamAssassin collected CLA (contributor license agreements) from all their contributors, and scrubbed code for which they couldn’t get coverage.  For instance because they couldn’t get in touch with a developer.

They relicensed the code under the Apache License as part of the process.  As you know all our projects operate under that license. This would cover one of the criteria for graduation to a top level project.

SpamAssassin already had a vibrant community that was already close to operating as an Apache project. The migration to our infrastructure was maybe what took the longest in the end.

SpamAssassin got solved the IP burden, and ASF got (another) great project. Everyone is happy.

What if you apply with a project lacking of a community?

Justin: So, that’s the flip side of the Incubator process. Some projects will come in with a healthy community but want to join for legal/technical/whatever reasons; other projects in the Incubator start off from a ‘corporate’ donation.
I was a mentor to the ‘stdcxx‘ project – which was started by RogueWave as part of their Standard C++ Library. So, their IP and licensing was easy as it was all owned by RogueWave.

But, the challenge was to create a ‘diverse’ community and teach the RogueWave folks how to participate in an ASF project. Over time, they were able to attract other people to join the project and help maintain it. Once that happened, they ‘graduated’ and became a top-level project.

Did you ‘train’ them in a way?

Justin: Right. This is where the ‘mentor’ comes in, the member who volunteers to help the project ‘learn’.
So, for example, any of members can say, “Hey, I like this idea.  I want to help.  Sign me up as a mentor.”

Generally (but not always), there are three mentors on each project.  (You’ll see the rule of three a lot within Apache.) So, those three folks help the project learn Apache’s processes, help them when they run into roadblocks, etc.

Do mentors read daily mailing-lists, etc?

Justin: Usually, yes.  They may or may not be technically up-to-date about the inner details of the project though.

Sander: They help more on the process level; they generally do not get involved with technical decisions.
So, our role (and the role of the Foundation and the Board) isn’t to provide technical direction.

How do you see ASF playing the application space 5 yrs from now?

Justin: We are an extremely grassroots organization.  We go where our users/contributors/developers/members want us to go.  We expect that we’ll be significant players in any market we wish to be in.

As part of our 10yr anniversary, we’re trying to step up our perception and visibility for all of our projects – not just the foundation.

We would love to see people join us at ApacheCon US in Oakland for that event, in the first week of November. We’ll have trainings (half-day, full-day) about specific projects, BarCampApache (unconference-style), and loads of 1hr talks from a wide range of our projects. And a party!  Don’t forget the party!

Thank you guys, happy hacking and keep up with you great work!