## Introduction

This document aims to help new geotools developers get up to speed and track practices of existing developers in order to keep the project consistent.

If you feel something is missing, feel free to contribute a new section.

## Design

Geotools Logo

Geotools Logo

To do: Explain

- Key design structure (core interfaces, data sources, rendering, tools)
- Design Drivers (Our design goals: modular, derives structure from netbeans, support multiple version of java, ..)
- Directory structure

## Development

### Building

To do:

- using ant
- what ant checks
- insert the "howto-build.html" doc into here

### Code Versioning (using CVS)

To do:

- Point to sourceforge CVS howto links.
- Also point to some HOWTOs for windows users.
- What is acceptable to commit to CVS, what is not. (Ie, code should compile)
- Talk about version numbering convention, use of branches, etc (if we decide to do this).

To do:

### Coding Standards

To do:

- Using Sun's coding standard, need to note any exceptions to it.
- Note the auto checking of coding standards.
- Javadocs

### Template File

To do:

- Provide a template file.
- Link it to sections explaining the different parts of the template.
- Include headers, footers, example logging, example coding style, CVS key tags, sample javadocs.

### Logging

To do:

- Talk about log4j, links to

### Testing

To do:

- Explain use of junit. Might be a link to another web site.

### Documentation

To do:

- Talk about docbook, why we decided to use it (most commonly used format of LDP, converts to multiple formats, tools coming which can support it. Need to mention which version of docbook we are using.
- Mention tools that can be used.
- Links to docbook references.
- Process for updating this document.
- How to use ant tools to build doc.

## Development Tools

### Netbeans

To do:

- Where to get it.
- Aim is to make geotools a module within Netbeans
- How to setup getools to fit the multiple directory structure
- The extra Netbeans modules that are useful and should be downloaded.