changeset 2698:c318b38dea2b octave-forge

Update release.sh for package manager. This is still very simple, but does describe the release process in the comments
author adb014
date Mon, 16 Oct 2006 19:09:37 +0000
parents 6f8353d6a45b
children 034552444548
files release.sh
diffstat 1 files changed, 51 insertions(+), 57 deletions(-) [+]
line wrap: on
line diff
--- a/release.sh	Mon Oct 16 19:08:44 2006 +0000
+++ b/release.sh	Mon Oct 16 19:09:37 2006 +0000
@@ -1,4 +1,4 @@
-# !/bin/sh
+#! /bin/sh
 
 ## These are the steps you need to take to do a new octave-forge release.
 ## You will need:
@@ -27,95 +27,89 @@
 ##
 ##    Make sure it builds on your machine at least.
 ##
-## 3) cvs2cl.pl -f changes
+## 3) admin/make_index
 ##
-##    Generate a list of changes.  Use it to update RELEASE_NOTES with 
-##    a summary of changes.  Set the date in the RELEASE_NOTES file.
+##    Check the list of function that are either not found or uncategorized
+##    and fix the INDEX files accordingly.
 ##
-## 4) cvs commit RELEASE_NOTES
+## 4) cvs2cl.pl -f changes
 ##
-##    Post the new notes.
+##    Generate a list of changes.  Use it to update www/NEWS.in and
+##    www/index.in with a summary of changes.
 ##
-## 3) admin/get_contents
-## 
-##    Update README and the developer's guide.  Follow the instructions 
-##    for updating the web and CVS.
+## 5) make clean; make; make www
 ##
-## 4) admin/get_authors
+##    Build the web-pages and ancillary files.
+##
+## 6) admin/get_authors
 ##
 ##    Verify copyrights.  Look at the AUTHORS file to see which names
 ##    have been butcherd and update the corresponding sources.
 ##
-## 5) admin/make_index
-##
-##    Verify documentation and licenses.  To update the web docs, use the 
-##    following commands:
+## 7) cvs commit AUTHORS, README, www/index.in, www/NEWS.in and 
+##    www/developers.in
 ##
-##        tar czf index.tar.gz index
-##        scp index.tar.gz $OFHOME
-##        ssh octave.sf.net
-##        cd /home/groups/o/oc/octave/htdocs
-##        rm -rf index
-##        tar xzf index.tar.gz
-##	  chmod -R g+w index
-##
-## 6) cvs -q update -dP
+## 8) cvs -q update -dP
 ##
 ##    Make sure you've logged all changes to licenses and doc strings.
 ##
-## 7) ./release.sh
+## 9) ./release.sh
 ##
-##    This is the actual release step.  It tags the CVS tree and generates 
-##    a release tarball. 
+##    This is the actual release step.  It tags the CVS tree.
 ##
-## 8) https://sf.net/project/admin/qrs.php?package_id=2841&group_id=2888
+## 10) https://sf.net/project/admin/qrs.php?package_id=2841&group_id=2888
 ##
 ##    Log in to your source forge account and announce the release of the
-##    package.  Cut and paste the top two sections of RELEASE_NOTES.  Use 
-##    the Upload button to add the new tarball
+##    packages.  Check the MD5 sums of the package files on sourceforge
+##    against the MD5 sums of the files in packages/{main,extra,nonfree}.
+##    Upload the packages that have changed with appropriate notes.
+##
+## 11) Upload the webpages to sourceforge.
 ##
-##        octave-forge-yyyy.mm.dd.tar.gz
+##        tar cvzf www.tar.gz www
+##        scp www.tar.gz $OFHOME
+##        ssh octave.sf.net
+##        cd /home/groups/o/oc/octave/htdocs
+##        rm -rf *
+##        tar xzf www.tar.gz
+##        mv -pr www/* .
+##        rmdir www 
+##        chmod -R g+w *
 ##
-## 9) sources@octave.org, octave-dev@lists.sf.net
+## 12) sources@octave.org, octave-dev@lists.sf.net
 ##
 ##    Announce the new release on the appropriate mailing lists.
 ##
-## 10) ./cvs-tree > afunclist.html; scp afunclist.html $OFHOME
-##
-##    Update the alphabetical list (do we still need this??)
-##
 ## Done.
 
+# Find the name of cvs2cl
+if which cvs2cl.pl > /dev/null 2>&1; then
+  CVS2CL="cvs2cl.pl"
+elif which cvs2cl > /dev/null 2>&1; then
+  CVS2CL="cvs2cl"
+else
+  echo "Can not find cvs2cl. Please visit http://www.red-bean.com/cvs2cl/"
+  exit -1;
+fi
+
 # base name of the project
 PROJECT=octave-forge
 
 # use Ryyyy-mm-dd as the tag for revision yyyy.mm.dd
 TAG=R`date +%Y-%m-%d`
-ROOT=$PROJECT-`date +%Y.%m.%d`
 
 # generate the updated ChangeLog and version command
-cvs2cl.pl --fsf --file ChangeLog.tmp
+$(CVS2CL) --fsf --file ChangeLog.tmp
 echo "# Automatically generated file --- DO NOT EDIT" | cat - ChangeLog.tmp > ChangeLog
 rm ChangeLog.tmp
-cat <<EOF > main/miscellaneous/OCTAVE_FORGE_VERSION.m
-## OCTAVE_FORGE_VERSION The release date of octave-forge, as integer YYYYMMDD
-function v=OCTAVE_FORGE_VERSION
-  v=`date +%Y%m%d`;
-endfunction
-EOF
-cvs commit -m "$TAG release" ChangeLog main/miscellaneous/OCTAVE_FORGE_VERSION.m
+cp ChangeLog www/ChangeLog
+
+# generate the AUTHORS file
+./admin/get_authors
+
+exit 0;
+
+cvs commit -m "$TAG release" ChangeLog www/ChangeLog README AUTHORS
 
 # tag the CVS tree with the revision number
 cvs rtag -F $TAG $PROJECT
-
-# extract the tree into a tagged directory
-cvs export -r $TAG -d $ROOT $PROJECT
-
-# generate the AUTHORS file
-( cd $ROOT ; make dist )
-
-# build the tar ball
-tar czf $ROOT.tar.gz $ROOT
-
-# remove the tagged directory
-rm -rf $ROOT