Steps to Release a new FreeTTS Version
======================================

Before you do anything, read this document:

   https://sourceforge.net/docman/display_doc.php?docid=6445&group_id=1

Here are the steps to release a new version of FreeTTS:

0. Update versioning and date info:

   ./docs/index.html: <title>FreeTTS 1.2
   ./docs/index.html: <h2><i>FreeTTS 1.2</i>
   ./build.xml:    <property name="version"          value="1.2"/>
   ./build.xml:    <property name="javadoc_desc"     value="FreeTTS 1.2"/>
   ./com/sun/speech/freetts/FreeTTS.java:    
         private final static String VERSION = "FreeTTS 1.2, May, 2004";

1. RELEASE_NOTES

   Make sure that the RELEASE_NOTES file contain all the latest change
   notes.

2. Check in everything

   Make sure that you have checked in all the changes by doing a
   
       cvs -nq update

   and that everything compiles by doing a

       ant clean all javadoc

3. Check out a clean version of FreeTTS

   Check out a clean CVS version of FreeTTS to make sure that the
   tests results are not affected by other files in your FreeTTS
   directory.

   cvs -z3 -d:ext:developername@cvs.sourceforge.net:/cvsroot/freetts co FreeTTS

4. Run the regression tests on all platforms

   Do the following to run the tests:

     cd lib
     chmod a+x jsapi.sh
     ./jsapi.sh
     cd ..
     ant
     cd tests
     chmod a+x regression.sh
     ./regression.sh

   Make sure that all tests pass.

5. Run all Demos

   Run each of the demos. Refer to the individual demo directories for
   instructions.

   As part of this, you also need to make sure the emacspeak-server 
   build works.  To do this:

   1) Run "ant freetts_only_tarball" to create
      deploy/freetts-only-1.2.tar.gz.

   2) Gunzip/untar freetts-only-1.2.tar.gz into
      a separate directory.  Cd to that dir.

   3) Run "ant emacspeak-server" to create
      emacspeak-server.jar.  This is a standalone
      jar file you can run for emacspeak and yasr.
      It should build without problem or having to
      build anything else.  

   4) Run java -jar emacspeak-server.jar

6. Build the release tarball

   At the top level directory, type:
   
       ant deploy

   This will create the freetts candidates.

7. Test the tar ball

   Testing the FreeTTS tarball before making a SourceForge release is
   very important. Consider that several hundred people to several
   thousand may download the tarball in a single day, making a mistake
   will cause trouble for lots of people.

   Test in the order that a typical new user would. This involves the
   following steps:

     o view release notes
     o viewing index.html and programmer's guide
     o unpacking jsapi
     o running all demos from the jar files
     o unpacking srcs and tests
     o viewing docs (also run a link checker such as linklint)
     o compiling all sources and tests
     o running all tests (note that some tests don't run on NT, last I knew).

   In addition, also check the following:

     o No unreleased code has leaked out
     o All the license and acknowlegment files are in place

   When we release a tarball we want to ideally test it on the
   following platforms:
 
     o Solaris
     o Linux
     o Win (cyg-win?)

8. Tag the CVS tree

   Now that you know all the code is fine, label the FreeTTS module
   with the version number. (Note that you should replace '.' in the
   version number with '-' since a CVS tag cannot contain a '.')

       % cvs tag rel1_1_0 . 
 
   is a good way to label release 1.1.0.

9. Rebuild the tarball

       ant deploy

   This tarball will have the tags in it.

10. FTP the tarball to SourceForge

        % rftp upload.sourceforge.net   # login as 'anonymous', and type 
                                        # in your email as password
        ftp> bin
        ftp> cd incoming
        ftp> put freetts-VERSION.tar.gz

    
11. Edit the packages page

    Edit or add a release on this page:

        https://sourceforge.net/project/admin/editpackages.php?group_id=42080

12. Update the FreeTTS.SourceForge.net web page

    Go to the ./docs directory:
    
        ./create_php.sh

    scp content to the project web space:

        scp foo.tar \
            wwalker@shell.sourceforge.net:/home/groups/f/fr/freetts/htdocs

    ssh to sourceforge and unpack things:

        ssh shell.sourceforge.net
        cd /home/groups/f/fr/freetts/htdocs

13. Check to make sure freetts.sourceforge.net still works.
    Also check to make sure the WebStartClock still works.
