# Guide to the creation of source releases for Tcllib

## Recap

| The CVS repository for Tcllib contains two main branches, the HEAD for development, and RELEASES as the staging area for official releases.

## Dependencies

## Creation of a new official release

To create a new official release of Tcllib the release manager has to perform the steps described below:

1. Retrieve the sources at the current head from the CVS repository, using a command like

       	  CVSROOT=:pserver:anonymous@cvs.tcllib.sourceforge.net:/cvsroot/tcllib
       	  cvs -d${CVSROOT} co tcllib

   Vary this command according to taste as long as the overall meaning is not changed. Compression options and the like.
2. Tag these sources with a new branch tag for the new release of tcllib, like

       	  cvs -d${CVSROOT} rtag tcllib

3. Commit the changes, then update the working directory.
4. Use a tclsh to run the sak tool with the argument gendist, like

           tclsh /path/to/tcllib/sak.tcl gendist

5. This results in the creation of a tcllib-VERSION directory in the current working directory, and of two archives, .zip, and .tar.gz. A starkit will be created if sdx is present in the PATH. If additionally a file named tclkit is present in the current working directory a starpack will be created too, using this tclkit as the runtime.
6. Now follow the instructions in the Sourceforge site documentation for uploading the archives generated by the last step to ftp://upload.sourceforge.net/incoming, and follow the procedures for creating packages and releases at Sourceforge.

At last notify the relevant persons in other communities like Debian (See list of contacts) about the new release.