once in the Licence box. Don't forget to change both!
- putty/windows/version.rc2
+ the copyright date appears once only.
- - putty/mac/mac_res.r
- + the copyright date appears twice, once in the About box and
- once in the Licence box. Don't forget to change both!
- - putty/mac/macpgen.r
- + the copyright date appears twice, once in the About box and
- once in the Licence box. Don't forget to change both!
- putty/unix/gtkdlg.c
+ the copyright date appears twice, once in the About box and
once in the Licence box. Don't forget to change both!
- putty/windows/putty.iss
-The Windows resource file (used to generate the binary bit of the
-VERSIONINFO resources -- the strings are supplied by the usual means):
-
- - putty/windows/version.rc2 (BASE_VERSION; NB, _comma_-separated)
-
-The Mac resource file (used to generate the binary bit of the 'vers'
-resources):
-
- - putty/mac/version.r
-
It might also be worth going through the documentation looking for
version numbers - we have a couple of transcripts showing the help
text from the command-line tools, and it would be nice to ensure the
- putty/doc/plink.but
- putty/doc/psftp.but (in case it ever acquires a similar thing)
+Finally, reset the epoch used for the $(Days) value computed in
+Buildscr for the Windows binary version resource. It's probably not a
+good idea to set it to _today_ (since it might clash with the
+zero-valued field used in actual releases), so perhaps we should start
+it 1000 days before the release date so as to have a largish number
+recognisable as being the right kind of thing by its order of
+magnitude. So, do this:
+
+ perl -e 'printf "%d\n", time/86400 - 1000'
+
+and then substitute the resulting value into the definition of 'Epoch'
+in Buildscr.
+
The actual release procedure
----------------------------
- Write a release announcement (basically a summary of the changes
since the last release). Squirrel it away in
- ixion:src/putty/local/announce-<ver> in case it's needed again
+ atreus:src/putty/local/announce-<ver> in case it's needed again
within days of the release going out.
- - Build the release: `bob putty-0.XX RELEASE=0.XX'. This should
- generate a basically valid release directory as
- `build.out/putty', and provide link maps and sign.sh alongside
- that in build.out.
+ - Build the release: `bob -b 0.XX putty RELEASE=0.XX'. This should
+ generate a basically valid release directory as `build.out/putty',
+ and provide link maps and sign.sh alongside that in build.out.
- Do a bit of checking that the release binaries basically work,
report their version numbers accurately, and so on. Test the
installer and the Unix source tarball.
- - Save the link maps. Currently I keep these on ixion, in
+ - Save the link maps. Currently I keep these on atreus, in
src/putty/local/maps-<version>.
- Sign the release: in the `build.out' directory, type `./sign.sh
putty Releases', and enter the passphrases a lot of times.
- Now the whole release directory should be present and correct.
- Upload it to ixion:www/putty/<ver>.
+ Upload it to atreus:www/putty/<ver>.
- Do final checks on the release directory:
+ verify all the signatures:
- for i in `find . -name '*.*SA'`; do case $i in *md5sums*) gpg --verify $i;; *) gpg --verify $i ${i%%.?SA};; esac; done
- + check the md5sums:
+ for i in `find . -name '*.*SA'`; do case $i in *sums*) gpg --verify $i;; *) gpg --verify $i ${i%%.?SA};; esac; done
+ + check the checksum files:
md5sum -c md5sums
+ sha1sum -c sha1sums
+ sha256sum -c sha256sums
+ sha512sum -c sha512sums
- - Having double-checked the release, copy it from ixion to
+ - Having double-checked the release, copy it from atreus to
chiark:ftp/putty-<ver> and to the:www/putty/<ver>.
- Check the permissions! Actually try downloading from the, to make
+ Update the one at the:www/putty/htaccess which points the
virtual subdir `latest' at the actual latest release dir. TEST
THIS ONE - it's quite important.
- + ixion:www/putty/.htaccess has an individual redirect for each
+ + atreus:www/putty/.htaccess has an individual redirect for each
version number. Add a new one.
- Update the FTP symlink (chiark:ftp/putty-latest -> putty-<ver>).
- Update web site.
- + Adjust front page (`the latest version is <ver>').
- + Adjust Download page similarly.
- + Adjust filenames of installer and Unix tarball on links in
- Download page.
+ + Adjust front page to say 'The latest version is <ver>'.
+ + Adjust front page to add a news item.
+ + Adjust Download page to say 'The latest release version (<ver>)'.
+ + Adjust Download page to update filenames of installer and Unix
+ tarball (both in the hrefs themselves and the link text).
+ + Check over the Download page and remove any mention of
+ pre-releases, if there were any before this release. Comment out
+ the big pre-release section at the top, and also adjust the
+ sections about source archives at the bottom.
+ Adjust header text on Changelog page. (That includes changing
`are new' in previous version to `were new'!)
- Check that the web server attaches the right content type to .HLP
and .CNT files.
- - Run webupdate, so that all the changes on ixion propagate to
+ - Run webupdate, so that all the changes on atreus propagate to
chiark. Important to do this _before_ announcing that the release
is available.
- - After running webupdate, run update-rsync on chiark and verify
- that the rsync mirror package correctly identifies the new
- version.
+ - After running webupdate, run update-rsync on chiark and verify that
+ the rsync mirror package (~/ftp/putty-website-mirror) contains a
+ subdirectory for the new version and mentions it in its .htaccess.
- Announce the release!
- + Mail the announcement to putty-announce.
- * Set a Reply-To on the mail so that people don't keep
- replying to my personal address.
+ + Construct a release announcement email whose message body is the
+ announcement written above, and which includes the following
+ headers:
+ * Reply-To: <putty@projects.tartarus.org>
+ * Subject: PuTTY X.YZ is released
+ + Mail that release announcement to
+ <putty-announce@lists.tartarus.org>.
+ Post it to comp.security.ssh.
+ Mention it in <TDHTT> on mono.