Maintaining Gnofin HOWTO
------------------------

CVS

 - the project files are stored in the CVS repository on sourceforge.net.

 - you have to be a sourceforge user registered as a developer of Gnofin.

 - hopefully you already know how to use CVS, but in case not, here's a
   quick primer.  you should have the CVSROOT environment variable defined:

     export CVSROOT="<user>@cvs.gnofin.sourceforge.net:/cvsroot/gnofin"

   you can then check out the entire source tree using the command:

     cvs -z3 co gnofin

   you probably also want to grab the gnofin-web pages as well...

     cvs -z3 co gnofin-web

   if you wish to add files to a project:

     <create the file>
     cvs add file

   to remove a file
     
     <remove the file>
     cvs remove file

   to make any changes, adds, or removes permanent, you must run:

     cvs commit

   this command will prompt you for a log message (in vi usually)...
   just enter something short but descriptive.  this message will
   be visible via the online CVS browser.


ADDING TO THE CHANGELOG

 - to add lines to the ChangeLog, you should first make sure you
   have defined an EMAIL environment variable

     export EMAIL="<user>@users.sourceforge.net"

   or something like this.
 
 - then you can run the "log" command from the scripts directory.
   make sure you run it from a directory one below the top level
   directory (ie. make sure that ../ChangeLog exists from where
   you run the "log" script).

 - the "log" script will pop up vi and ask you to replace the 
   first line with a description of your changes.  you can add
   as many lines as you like, and separate different points with
   an asterick.


MAKING A PRE-RELEASE

 - making a pre-release is very easy, just edit the configure.in file
   in the top level Gnofin directory to change the package version.  
   ie. 0.7.10 --> 0.8.0pre1

 - then, cd to the scripts directory and run

     ./mkrel
   
   it will prompt you to verify the package version.  all this script
   does it set a tag on all the files in the package to identify the
   release.

 - to actually build the RPMs and tarball, su to root and run

     ./mkpkg

   it will similarly prompt you to verify the package version.  once
   this script completes you can exit out of the shell (ie. you don't
   need to be root any longer).

 - the packages have been created under /usr/src/redhat.  you can copy
   them all to your current working directory using the "getpkg" command,
   or you can just use "upload-pre" to upload the packages straight to
   the pre-release websites.

 - take a look at what upload-pre does... you will need to have a 
   corresponding shell script on each host machine.  this script takes
   care of moving the uploaded files into place.  for an example, check
   out the files in ~darinf on gnofin.sourceforge.net (use SSH to login).
   
   
MAKING A REAL RELEASE

 - be careful here... DO NOT ATTEMPT A REAL RELEASE UNTIL AFTER YOU HAVE
   BUILT AT LEAST ONE PRE-RELEASE!!!  its amazing how many stupid bugs 
   are caught just by making and testing a pre-release.

 - just like for pre-releases, edit the configure.in file to reflect the
   new file version (ie. 0.8.0pre7 --> 0.8.0)

 - follow the steps above to create the packages (ie. mkrel followed by 
   mkpkg).

 - next, run the upload-rel script in place of upload-pre.  this requires
   another shell script on the host end to take care of installing release
   versions of the packages.  again, take a look at what is done on
   gnofin.sourceforge.net in the ~darinf home directory.

 - the upload-rel script does not send files to download.sourceforge.net.
   this has to be done manually, as follows

     ./getpkg
     ftp download.sourceforge.net

   login as anonymous... and then cd to the incoming directory.
   from within the FTP program, type

     mput gnofin*

   which will ask for confirmation before it actually uploads the files.

 - once all of the files are uploaded to the incoming directory on 
   download.sourceforge.net, you can proceed to the Gnofin project page.

 - make sure you are logged into sourceforge.net, and under the Gnofin
   menu (on the left hand side just below the Project Administrator
   label) follow the link name "File Release."  There will be instructions
   on this page describing what to do next.

 - start with the .tar.gz package file... (ie. select it in the Filename
   menu and press Submit).

 - sourceforge will ask you for the file version, date, release notes, and
   changelog.  leave the date field blank.  click the option to show text
   using the HTML tag PRE.  edit the release notes field to briefly 
   summarize what has changed and to state the "urgency" of the release.
   in the changelog section, just mention changes that would directly 
   effect the user... try to make the list brief and concise.  afterall,
   they can always look at the full ChangeLog to see the details.

 - repeat the process for the .i386.rpm and .src.rpm files... except there
   is no need to enter a changelog for these... just mention in the 
   release notes, that each is corresponding to the latest source release
   (or something like that... take a look at what i have written previously).


UPDATING THE WEB SITE

 - lastly, edit the gnofin-web/htdocs/news.html file to mention the new
   release.  the format of the file should be pretty obvious.


ALSO
 
 - mention new releases on www.freshmeat.net

 - update the Gnofin entry in the GNOME software map (www.gnome.org)
