Release Procedure

# be in local copy of the Darcs repository
cd Vanilla

# set variables
VS=2.15.0
PN=netrek-server-vanilla

# check version numbers in files
# include/version.h
egrep serv_version\|mvers include/version.h
# include/patchlevel.h
grep PATCHLEVEL include/patchlevel.h
# Makefile.in
egrep ^VERSION= Makefile.in
# debian/changelog
head -1 debian/changelog
# rpm/netrek.spec
grep ^Version: rpm/netrek.spec
# README.releasing
egrep ^VS= README.releasing
# ChangeLog (add release date)
head -3 ChangeLog
# NEWS
head -1 NEWS

# crosscheck updates in Darcs against ChangeLog
# crosscheck updates in ChangeLog against NEWS
darcs changes > tmp
grep "^  \*" tmp > tmp.news
# include text in ChangeLog and NEWS

# make sure all changes committed
darcs diff -u > tmp.diff
# review uncommitted changes
more tmp.diff
# commit changes
darcs record --patch-name="prerelease $VS"
# optional
darcs send

# test the build is clean
tests/build

# tag the release
darcs tag $VS

# build the distribution file from pristine darcs sources
cd /tmp
rm -rf release
darcs get --tag=${VS} ~/src/darcs/netrek-server release
cd release/Vanilla
sh autogen.sh
./configure
make dist

# record md5sum of kit for publishing
md5sum $PN-$VS.tar.gz > $PN-$VS.tar.gz.md5sum

# publish
cp $PN-$VS.tar.gz $PN-$VS.tar.gz.md5sum ~/public_html/external/mine/netrek/

# test build kit
cp $PN-$VS.tar.gz /tmp
cd /tmp
tar xfz $PN-$VS.tar.gz 
cd $PN-$VS
./configure --prefix=/tmp/$VS
make
# FUTURE, ensure that the tree is returned to pristine condition by distclean

# test install kit
make install
/tmp/$VS/bin/netrekd

# test client
cow -h 127.0.0.1

# clean up
/tmp/$VS/bin/netrekd stop
rm -rf /tmp/$VS /tmp/$PN-$VS
cd

# debian packaging (from tar.gz) [not working]
cd /tmp
tar xfz $PN-$VS.tar.gz 
cd $PN-$VS
./configure --prefix=/tmp/$VS
make release

# debian packaging (from darcs) [not working]
cd /tmp
rm -rf netrek-server-debian-packaging
darcs get ~/src/darcs/netrek-server netrek-server-debian-packaging
cd netrek-server-debian-packaging/Vanilla
sh autogen.sh
./configure
make release

# rpm packaging [not working]
$PN/rpm/tar2rpm
cp $PN/res-rsa-*.tar.gz /usr/src/redhat/SOURCES
cd /usr/src/redhat/SPECS
rpm -ba netrek.spec
# test package install

# sign package
cd ~/public_html/external/mine/netrek/
gpg --detach-sign -a $PN-$VS.tar.gz

# release on web site
cd ~/public_html/external/mine/netrek/
vi index-brief.html

# notify mirror owners, include URL of incoming copy and md5sum.
mailto:netrek-dev@us.netrek.org

# build differences between this version and previous

# update web page
http://vanilla.netrek.org/
~/public_html/external/vanilla.netrek.org/html

# sourceforge.net upload procedure (brief, yet to be retested)
# - upload to ftp://upload.sourceforge.net/incoming/
# - project files
# - add release for Vanilla
# - fill in form
# - select file from incoming
# Bob Tanner gets notified and builds RPMs

# sf.net upload
ftp -n upload.sourceforge.net <<EOF
user anonymous quozl@us.netrek.org
cd incoming
passive
hash
put netrek-server-vanilla-${VS}.tar.gz
EOF


# freshmeat announcement

Note from Dave Ahn ...

Date: Mon, 22 Oct 2001 11:39:28 -0400
To: vanilla-list@us.netrek.org
From: Dave Ahn <ahn@vec.wfubmc.edu>
Subject: Re: [Vanilla List] Re: [Vanilla Devel] vanilla package
Errors-To: vanilla-list-admin@us.netrek.org
  
On Mon, Oct 22, 2001 at 09:04:01AM +1000, James Cameron wrote:
> On Sun, Oct 21, 2001 at 04:16:33PM -0400, Dave Ahn wrote:
> > James, are you bundling RES-RSA with Vanilla?
> 
> It appears so.  I just noticed.  The 2.9pl7.tar.gz has res-rsa files.
> See after signature for the list.  Do you still need to tell 'em when
> it was imported from Australia first?  ;-)
  
If the first documented release is in Australia, and I just mirror an      
archive, then I don't need to do anything.  But ftp.netrek.org is the
primary distribution site, so I need to let BXA know.  It's not a problem.
I have a template I use, so I'll notify BXA before each Vanilla release
I put on the ftp site.  You should probably add a notice to each Vanilla
release announcement with something like "This package contains
cryptographic software.  Please be aware of the laws governing your country
regarding the use of cryptography."