# Guide for Tcllib developers.

## CVS Repository

| The CVS repository for Tcllib contains two main branches, the HEAD for development, and RELEASES as the staging area for official releases. At RELEASES the minor branches containing the various official releases are anchored at.

All the branches are of interest to the developers for Tcllib. Ongoing development happens in HEAD, which can be unstable or may not work at all. Whenever a developer considers a piece of code, or module, he is responsible for as sufficiently stable she has to perform an internal release which merges this part from HEAD into RELEASES. Tools to help with this will be provided.

The branches for the official releases of tcllib are of interest to a developer because it is expected that fixes for important bugs not only go into the HEAD branch but also into the release branches for the release they were found in and all releases following that one. This is to allow the release manager to create patch releases of existing releases distribung important bugfixes as well.

Version numbers for modules are handled as described below. This way of handling them was chosen so that the modules in the development branch always uses version numbers different from the version numbers in the official releases made so far.

- Whenever an internal release of a module FOO is done, the developer performing this internal release has to increment the version number of the module after the release was executed.