sft_release_module - release a module


This is a program to release a module on SourceForge.net. It performs the following functions:

  1. If needed, it creates a "description file" which contains a short prose description of the module. This description is used in the release announcements. (see below)
  2. If needed, it creates a CHANGELOG file.
  3. It invokes an editor (determined from the EDITOR environment variable) and allows you to edit the CHANGELOG for the current release.
  4. It performs a final CVS commit and tags the CVS tree with a release tag that encodes the module's version number and release date.
  5. A compressed tar file is created and uploaded to SourceForge.net.
  6. A release announcement is constructed and sent to your project's announce mailing list.

The program requires two command arguments. The first is the module name which must be a name of a directory in the modules directory. Please see the sf-tools.README file for a description the expected layout of directories. The second argument is the module's version number. The following version number formats are supported:

        where "0" is any numeral 0-9 inclusive and
        "word" is any of the following: alpha, beta, pre, test


        sft_release_module -h | --help | -m module -v version


        -h, --help      Display this help message and exit.
        -m  module      name of module
        -v  version     version number


        sft_release_module -m my_module -v 1.0.0

This example performs a release of "my_module" version 1.0.0.

If a description file ("my_module.DESCRIPTION") is not found in the /home/your_name/your_project/modules directory, one will be created and you will be able to edit its contents.

If a CHANGELOG file is not found in the /home/your_name/your_project/modules/my_module directory, one will be created. If a new one is created, a CVS add is performed. Next, you will be able to edit the CHANGELOG file.

A CVS commit is performed to sync your CVS tree with your release. The CVS tree is also tagged with an encoded version of the release version and the release date.

A compressed tar archive is created of the module's directory. In the example above, a tar file named my_module-1.0.0.tar.gz would created in the /home/your_name/your_project/modules directory. The CVS directory for your module is excluded from the archive. When the end-user un-tars the archive, it will create a directory named "my_module-1.0.0".

The compressed tar file is uploaded to downloads.sourceforge.net via ftp.

Finally, if the MAIL_LIST constant is defined (it defaults to your_project-announce@lists.sourceforge.net), a release notice will be constructed and sent by whatever mail program is specified by the MAILER constant (default is "mail"). The release notice will include the contents of the description and CHANGELOG files.

Installation and Configuration:

sft_release_module is self-contained. Put it wherever is handy. Note that you need ncftp and a working cvs to make this script work.

To configure sft_release_module, set the PROJECT_NAME, SF_USER, MAIL_LIST, and MAILER constants as needed.

All the tools in the sf-tools package expect a project to organized as described in the sf-tools.README file. Also note that, by design, sft_release_module can only support one release file per module. This limitation may change in future versions.

Tested With:

Tested with Red Hat 6.x - 7.x


Copyright 2001-2002, William Shotts <bshotts@users.sourceforge.net>

This software is part of the LinuxCommand.org project, a site for Linux education and advocacy devoted to helping users of legacy operating systems migrate into the future.

You may contact the LinuxCommand.org project at:



This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

SourceForge.net is a trademark of VA Software, Inc.

$Id: sft_release_module.README,v 1.2 2002/03/09 16:50:43 bshotts Exp $