Title: Apache Development Notes Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at . http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. # Apache Development Notes This page is intended to provide some basic background about development nits and the maintenance of the developer site. # Overview # The Apache HTTP Server Project uses [Subversion](http://subversion.apache.org/) for hosting its source code. To check out the 2.4.x branch: > ` svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x httpd-2.4.x ` To check out the current development version (as of this writing, 2.5.x), use: > ` svn checkout http://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk ` Committers should check out via https instead of http (so that they can commit their changes). For more info about Subversion, please read [the ASF version control FAQ](http://www.apache.org/dev/version-control.html). The developers continue to seek to maintain module compatibility between 2.4.1 and future 2.4 releases for administrators and end users. # Maintaining the Sources # Almost all files relating to Apache, both the actual sources and the files that aren't part of the distribution, are now maintained in an [SVN](http://subversion.apache.org/) repository. Here is the way in which changes are applied: 1. Developer checks out a copy of the files on which they want to work (in this case, the trunk), into a private working directory called httpd-trunk: : % svn checkout http://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk This step only needs to be performed once (unless the private working directory is tainted or deleted). Committers should use a URL prefix of https on the checkout, to save themselves headaches later. 1. Developer keeps their working directory synchronised with changes made to the repository: : % svn update httpd-trunk This should probably be done daily or even more frequently during periods of high activity. 1. Developer makes changes to their working copies, makes sure they work, and generates a patch so others can apply the changes to test them: : % svn diff httpd-trunk/modules/http/mod_mime.c > /tmp/foo The /tmp/foo file is mailed to the [developers list](http://httpd.apache.org/lists.html#http-dev) so they can consider the value/validity of the patch. It is worth making sure your code follows the Apache style, as described in the [style guide](styleguide.html). 1. Once other developers have agreed that the change is a Good Thing, the developer checks the changes into the repository: : % svn commit httpd-trunk/modules/http/mod_mime.c # SVN Subtrees # There are several different branches under the httpd subtree in the Apache SVN repository that pertain to the different releases. The top level can be perused with the [SVN ViewCVS](http://svn.apache.org/viewcvs.cgi/) pages. The main subtrees pertaining to the httpd server source are: ## httpd-2.4 ## To create a directory tree containing the 2.4 sources, and call it httpd-2.4, change your current directory to the *parent* of the tree and then check the 2.4 sources out as follows:
% cd /usr/local/apache % svn checkout http://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x httpd-2.4## httpd-2.5 ## If you want to check out the bleeding edge of development, the httpd-2.5 development tree (slated for a release 2.6), and call it httpd-trunk, checkout as follows:
% cd /usr/local/apache % svn checkout http://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk## httpd-site ## This subtree contains the files that live at http://httpd.apache.org/. The directory on the host that maps to that URL is actually a set of checked-out working copies of the SVN files. Basic changes can be made to this website in your browser by using the ASF CMS system. First, add this as a bookmark: javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href)) Then browse to the page you'd like to edit, and click the CMS bookmark. The CMS system allows you to edit, commit, preview in staging, then push to production from a browser interface. The SVN URL is https://svn.apache.org/repos/asf/httpd/site/trunk/docs.