brian 98/04/27 22:30:30
Modified: . index.html Added: . patches.html Log: New document describing patch process for newbies. yes, I know this is covered in guidelines.html, but I thought having documentation specifically for "lite" contributors would be good. Revision Changes Path 1.21 +1 -0 apache-devsite/index.html Index: index.html =================================================================== RCS file: /export/home/cvs/apache-devsite/index.html,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- index.html 1998/04/20 05:50:13 1.20 +++ index.html 1998/04/28 05:30:29 1.21 @@ -44,6 +44,7 @@ >Archives</A> of the Apache Mailing Lists. </LI> + <LI> How to contribute <A HREF="patches.html">code patches</A> to Apache. </UL> <P> 1.1 apache-devsite/patches.html Index: patches.html =================================================================== <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>How to Contribute Patches to Apache </TITLE> </HEAD> <!-- Background white, links blue (unvisited), navy (visited), red (active) --> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#000080" ALINK="#FF0000" > <!--#include virtual="header.html" --> <H1 ALIGN="CENTER"> How to Contribute Patches to Apache </H1> <P> Third-party patches are essential to the success of Apache - the "core" developers don't have access to all platforms, and we certainly aren't using Apache in all the different ways it can be used. To that end, we try to make it as easy as possible to contribute code. However, we do have some expectations of contributors, and a process to all this, simply to help us manage the flood of contributions we could get. This page describes that process. </P> <HR> <H2> Code Style </H2> <P> We have a fairly firmly-set code format we use in our code; it was one we arrived at through no small amount of debate. The format is described in our official <A HREF="styleguide.html">style guide</A>.</P> <P> We also have very high expectations for code quality; and to us this means the avoidance of excessive static buffers, using the memory pool mechanism (which ensures proper cleanup), and otherwise writing thread-safe code. We also expect one or two levels of optimizations to be applied, too - is a bitmask faster for this? Is a strchr() faster than an index()? Etc. Of course it'd be nice if we had a real document describing this all, but we don't yet.</P> <HR> <H2> Patch Format </H2> <P>We expect the patch to be submitted in the form of <BLOCKQUOTE><CODE>diff -C3 file-old.c file.c</CODE></BLOCKQUOTE> <P>where <CODE>file.c</CODE> is the file affected. We should be able to feed the patch directly into the "patch" program and have it update the file or set of files. The <code>-C3</code> is very important - line numbers can change on a daily basis in some code files, so having context is crucial to knowing where it all really goes.</P> <HR> <H2> Submitting your Patch </H2> <P> <B>If</B> you are a subscriber to new-httpd, you can simply post your patch there, with the string "[PATCH]" prefixing your subject line, so everyone knows it's a patch. However, it's not guaranteed that your Patch will find an advocate within the developers' group; if we're too busy working on something else or everyone's on vacation, it could get lost in the noise. A good way to make sure it gets on our plate is to submit it through the bug database, at <A HREF="http://bugs.apache.org/">http://bugs.apache.org/</A>, marking it as a "change-request". <P>Be aware that the core developers tend to be very conservative about what makes it into the core of Apache. Apache has a very flexible API, and any advanced functionality is likely to be pushed to be a third-party module. Portability fixes are the most important; protocol correctness is also critical for us; and we're sure there's more dumb mistakes in the code than we could shake a stick at. Those will get priority; new functionality may not. <P>Also, there are often times when the core developers are in "feature freeze", when they are trying to iron out the remaining bugs in the code in preparation for a release. <P>If your patch doesn't make it into the core, but you're still willing to let the core distribute your work, then your patch might make it to the <A HREF="http://www.apache.org/dist/contrib/">contributed area on apache.org</A>.</P> <!--#include virtual="footer.html" --> </BODY> </HTML>