Login | Register
My pages Projects Community openCollabNet

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Catacomb] contributing to Catacomb

Hi Matt,

It's great that you want to get involved in the project - I'll answer the questions you raised as best as I can and perhaps one or two of the other developers will add to my response.

mhubb@okcareertech.org wrote:

[...] I assume the Catacomb module is ANSI C?

Correct. In addition, we are making an effort to conform to the recommended best practices wrt writing Apache modules. This entails the use of the Apache Portable Runtime (APR) data structures and utilities (especially memory pools!), code comments/documentation, naming choices for variables/functions and error reporting.

My big question is: What's the logical way to get started?

Jump in the pool, the water's warm! ;-) If there are particular features you are interested in working on that would be best, if only to be doing something you care about. Starting small would also propbably be a good idea until you know your way around Apache and the module structure. Are you familliar with WebDAV and the related specifications?

1. Are there apache module architecture concepts that we need to understand?  If
so, should we look at the O'Reilley book on writing apache modules?

Yes, as I mentioned above, Apache has it's own libraries of portable data structures and uses pools for memory management in a fairly particular way. The O'Reilley book you mention would be generally useful in this regard and explain how modules interface with the Apache core. Eventually we would like Catacomb to be part of the main Apache distribution, so adhering to their standards is somewhat important in the long run.

2. Should we use your CVS, ours, or none at all?

I think the best thing to do would be to check out the latest version from our CVS repository, work on it locally and then submit a patch to the Catacomb mailing list in the form of a diff. Whether you import Catacomb into your own CVS repository is up to you, but I highly recommend it for the obvious reasons.

3. Who is the project lead?

At this point there are four core developers who have basically agreed on the direction and goals of the project. Architectural design choices have been hashed out face-to-face by weighing the various alternatives. We try to maintain a todo list but, as several of us are students it is somewhat out of date at this point. (Mental note: update todo list...) We haven't had much discussion about how to organize the development as the project grows, but you are welcome to participate in that discussion with us.

4. What areas should we focus our efforts on?  Where do you need us?

That really depends... Where do your strengths lie? How many is 'we', BTW?

The main goal of the Catacomb project is to be an open source reference architecture and implementation of the WebDAV protocol suite (WebDAV, DASL, BIND, DeltaV, ACL, ordered collections...). In addition, providing a standard DB backed repository for Apache was something that was sorely missing from the open source community. Other plans are to eventually support multiple DB back ends and provide a pluggable interface for external indexing engines. There are a number of smaller chunks of work to be done in support of the above goals.

As you have an active interest in the correct handling of PHP resources, this might be a good place to start. Since there is already a PHP handler for Apache, and Apache supports a request being processed by more than one module, this may be a simple as just figuring out how to pipe the requests between modules. We definately want to be able to handle resources in Catacomb the same way that they would be handled otherwise... Chris Knight recently posted a question about this to the Apache developers list and is starting to look into the issue.

Thanks for the interest, hope to hear from you soon.