## How to Contribute to the Documentation

### Introduction

This document describes how you can easily contribute to the documentation. I'm going to try to make it easy for everyone to help out with the documentation of Tomcat, more specifically the documentation for the connectors. This is written from a windows user perspective as I believe they will most benefit from it. For people using Unix it should be easy for them to apply these steps. Just substitute Unix syntax where needed.

The documentation is produced using xml with xsl style sheets. This effectivly seperates the content of the documents from the style, so all that contributers need to worry about the content. It is much easier to use than html.

It's all really quite simple. Here is what you will need:

- A recent version of Ant
- The source code for the connectors from subversion
- Any ascii text editor

### Getting Started Step by Step

After you get these tools they are simple to set up.

#### STEP 1. Get Ant

Install Ant. The only advice I have is to choose a simple installation path. Now set an environment variable for ANT_HOME, and then add the location of the Ant/bin directory to your PATH variable. Consult your Operating system documentation for information on how to do this. When you are finished verify that you can run ant from the command line.

Ant is used to build the documentation, among other things, and it must be able to see a file called build.xml. This file is located in the xdocs directory. In the build.xml file there is a target named all that will be used to build the docs.

#### STEP 2. Get the sources

Get the sources for tomcat-connectors from the git repository. You will need a git client. Install the client of your choice, if you don't already have one.

You are ready to download the sources now. Change directory to the location where you want your repository to be. For simplicity we will call this your GIT_HOME. Mine is located in C:\build.

Run the following command to clone the sources for the first time. You should only need to do this once.

    C:\build\>git clone https://github.com/apache/tomcat-connectors tomcat-connectors

You should now be watching all the downloads come in. Now that you have the sources on your machine the hard part is over. From now on, to update your sources all you have to do is cd into any directory in your repository and run the git pull command.

#### STEP 3. Test your build environment

Open a command prompt window and cd to the directory where you downloaded the source. Now cd into the xdocs directory so that Ant can see the build.xml file. Then from a command prompt, run the following:

    C:\build\tomcat-connectors> cd xdocs
    C:\build\tomcat-connectors\xdocs> ant all

.

You should see the ant compiler messages scrolling by rapidly and then stop with the following:

    [style] Transforming into C:\build\tomcat-connectors\build\docs\news\printer>
    [style] Processing C:\build\tomcat-connectors\xdocs\news\20041100.xml
    to
    C:\build\tomcat-connectors\build\docs\news/20041100.html
    [style] Loading stylesheet C:\build\tomcat-connectors\xdocs\style.xsl
    [style] Processing C:\build\tomcat-connectors\xdocs\news\20050101.xml
    to
    C:\build\tomcat-connectors\build\docs\news/20050101.html
    [style] Processing C:\build\tomcat-connectors\xdocs\news\20060101.xml
    to
    C:\build\tomcat-connectors\build\docs\news/20060101.html
    [style] Transforming into C:\build\tomcat-connectors\build\docs>
    [style] Processing C:\build\tomcat-connectors\xdocs\index.xml
    to
    C:\build\tomcat-connectors\build\docs\index.html
    [style] Loading stylesheet C:\build\tomcat-connectors\xdocs\style.xsl

    BUILD SUCCESSFUL
    Total time: 10 seconds
    C:\build\tomcat-connectors>

All the xml files present in the xdocs directory structure were transformed to html and copied to the GIT_HOME\tomcat-connectors\build\docs directory. Open one of the html files in your browser and see how it looks.

#### STEP 4. The editing process.

I find it easier to use two windows while doing my updates. One I call my build window. I keep this one in the GIT_HOME\tomcat-connectors\xdocs directory and I only run two commands in this window: First I run

    ant clean

Then I run

    ant all

My second window I call my edit window and I keep that one in the GIT_HOME\tomcat-connectors\xdocs directory where I'm doing my edits, diffs and git pulls.

Before you start editing you should always update your local repository to prevent conflicts.

    C:\build\tomcat-connectors> git pull

Now that your repository is up to date you can begin editing. Find something in the documentation to edit. When you find something remember the name of the file. In your edit window find and edit the xml source file with the same name. After you are done return to the build window, and in the GIT_HOME\tomcat-connectors\xdocs directory run:

    C:\build\tomcat-connectors\xdocs> ant clean

This will delete all the previous html files and make the area ready for updated material. Now to make fresh documents that incorporate your changes run:

    C:\build\tomcat-connectors\xdocs> ant all

Use your browser to view the edits you just made, they will be in the GIT_HOME\tomcat-connectors\build\docs sub-tree. If it looks good and is ready to go, all that is left to do is to create a patch and submit it.

#### STEP 5. Creating a patch and submitting it.

From your edit window cd into the directory that contains the xml file you are working on, and run the git pull command. For example, to produce a diff of the index.xml file and call it patch.txt, you would cd into the directory containing the index.xml file and:

    C:\build\tomcat-connectors\xdocs\>git diff index.xml >
    patch.txt.

Now that you have your patch you are ready to send it in.

Patches to the documentation are handled just like a bug report. You should submit your patches to http://issues.apache.org/bugzilla/ and include a good one line subject. If this is your first time to use the bug database then you should read http://issues.apach e.org/bugzilla/bugwritinghelp.html. You will need to create a user account. At the web site paste your patch into the web form and don't forget to describe what it is your patch is for. Sooner or later a someone with commit privileges will review your suggestion.

### Updating Web site

Only Committers are able to update the web site (http://tomcat.apache.org/connectors-doc/). To do it:

- Connect to people.apache.org.
- umask 002
- Copy the changed files to /www/tomcat.apache.org/connectors-doc/.
- or use ant from a checkout tomcat/jk/trunk/xdocs repository:
  ant -Dbuild.dir=/www/tomcat.apache.org -Ddist.name=connectors-doc
- The changes should sync to tomcat.apache.org within seconds.

### Guides and Resources

A little help to get you started if you need it

- XML Beginner's Guide
- Bugzilla
- Bugzilla Bug Writing Guide
- Ant
- Git Home
- JK Docs repository