]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Big revision to CHECKLST.txt for release.pl and Mason.
authorSimon Tatham <anakin@pobox.com>
Thu, 12 Nov 2015 19:11:07 +0000 (19:11 +0000)
committerSimon Tatham <anakin@pobox.com>
Thu, 12 Nov 2015 19:11:07 +0000 (19:11 +0000)
Half the release checklist has changed recently, what with me
completely reworking the website and also writing all this release
automation. I think these are all the checklist changes needed now the
dust has settled, though of course when I do the next actual release I
expect there'll turn out to be something I missed...

CHECKLST.txt

index 51e11593cdbafa15b674dd9148b4642e95cb5ea1..dd1218a7745b9caf4004d0ef97ce57c343e240ec 100644 (file)
@@ -35,10 +35,6 @@ The documentation (both the preamble blurb and the licence appendix):
  - putty/doc/blurb.but
  - putty/doc/licence.but
 
-The website:
-
- - putty-website/licence.html
-
 Preparing to make a release
 ---------------------------
 
@@ -68,7 +64,7 @@ for it:
    checking out the release branch and running
 
       make distclean
-      ./release.pl --set-version=X.YZ
+      ./release.pl --version=X.YZ --setver
 
    Then check that the resulting automated git commit has updated the
    version number in the following places:
@@ -92,29 +88,23 @@ for it:
    atreus:src/putty-local/announce-<ver> in case it's needed again
    within days of the release going out.
 
- - Update the web site, in a local checkout.
-   + 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.
-   + Do the same on the Docs page.
-   + Adjust header text on Changelog page. (That includes changing
-     `are new' in previous version to `were new'!)
-   + .htaccess has an individual redirect for each version number. Add
-     a new one.
-
- - If there are any last-minute wishlist entries (e.g. security
-   vulnerabilities fixed in the new release), write entries for them
-   in a local checkout of putty-wishlist.
-
- - Update the wishlist mechanism for the new release. This can be done
-   without touching individual items by editing the @releases array in
-   control/bugs2html.
+ - Update the website, in a local checkout:
+    * Write a release file in components/releases which identifies the
+      new version, its release date, a section for the Changes page,
+      and a news announcement for the front page.
+    * Disable the pre-release sections of the website (if previously
+      enabled), by editing prerel_version() in components/Base.mc to
+      return undef.
+
+ - Update the wishlist, in a local checkout:
+    * If there are any last-minute wishlist entries (e.g. security
+      vulnerabilities fixed in the new release), write entries for
+      them.
+    * If any other bug fixes have been cherry-picked to the release
+      branch (so that the wishlist mechanism can't automatically mark
+      them as fixed in the new release), add appropriate Fixed-in
+      headers for those.
+    * Add an entry to the @releases array in control/bugs2html.
 
  - Build the release, by checking out the release tag:
      git checkout 0.XX
@@ -126,9 +116,13 @@ for it:
  - Double-check in build.log that the release was built from the right
    git commit.
 
- - 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.
+ - Do a bit of checking of the release binaries:
+    * make sure they basically work
+    * check they report the right version number
+    * if there's any easily observable behaviour difference between
+      the release branch and master, arrange to observe it
+    * test the Windows installer
+    * test the Unix source tarball.
 
  - Sign the release: in the `build.out' directory, type
      sh sign.sh -r putty
@@ -140,61 +134,36 @@ The actual release procedure
 Once all the above preparation is done and the release has been built
 locally, this is the procedure for putting it up on the web.
 
- - Save the link maps. Currently I keep these on atreus, in
-   src/putty-local/maps-<version>.
-      rsync -av maps-x86/ atreus:src/putty-local/maps-X.YZ
-
- - Upload the entire release directory to atreus:www/putty/<version>.
-      rsync -av putty/ atreus:www/putty/X.YZ
-
- - Do final checks on the release directory in its new location:
-    + verify all the signatures:
-      for i in `find . -name '*.gpg'`; do case $i in *sums*) gpg --verify $i;; *) gpg --verify $i ${i%%.gpg};; 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 atreus to
-   chiark:ftp/putty-<ver> and to the:www/putty/<ver>.
-      rsync -av putty/ chiark:ftp/putty-X.YZ
-      rsync -av putty/ the:www/putty/X.YZ
-
- - Check the permissions! Actually try downloading from the, to make
-   sure it really works.
-
- - Update the HTTP redirect at the:www/putty/htaccess which points the
-   virtual subdir `latest' at the actual latest release dir. TEST THIS
-   ONE - it's quite important.
-
- - Update the FTP symlink (chiark:ftp/putty-latest -> putty-<ver>).
-
- - Check the Docs page links correctly to the release docs. (It
-   should do this automatically, owing to the `latest' HTTP
-   redirect.)
-
- - Check that the web server attaches the right content type to .HLP,
-   .CNT and .CHM files, by downloading one of each and checking
-   they're all application/octet-stream.
-     for ext in hlp cnt chm; do curl -v http://the.earth.li/~sgtatham/putty/X.YZ/putty.$ext 2>&1 >/dev/null | grep Content-Type; done
-
- - Run 'git push' in the website checkout, and then 'git pull' in
-   ~/www/putty on atreus to fetch the website updates.
-
- - Push the changes to PuTTY itself. Something like:
-     git push origin master        # update the master branch
-     git push origin --tags        # should push the new release tag
-     git push origin :pre-0.XX     # delete the pre-release branch
-
- - Run 'git push' in the putty-wishlist checkout. Then run 'git pull'
-   in ~/pub/putty-wishlist on atreus, and update the wishlist web
-   pages with the commands
-     cd ~/pub/putty-wishlist/control
-     perl bugs2html
-
- - Check over the web site to make sure all the changes to wishlist
-   and main web pages are present and correct.
+ - Upload the release itself and its link maps to everywhere it needs
+   to be, by running this in the build.out directory:
+      ../release.pl --version=X.YZ --upload
+
+ - Check that downloads via version-numbered URLs all work:
+      ../release.pl --version=X.YZ --precheck
+
+ - Switch the 'latest' links over to the new release:
+    * Update the HTTP redirect at the:www/putty/htaccess .
+    * Update the FTP symlink at chiark:ftp/putty-latest .
+
+ - Now verify that downloads via the 'latest' URLs are all redirected
+   correctly and work:
+      ../release.pl --version=X.YZ --postcheck
+
+ - Push all the git repositories:
+    * run 'git push' in the website checkout
+    * run 'git push' in the wishlist checkout
+    * push from the main PuTTY checkout. Typically this one will be
+      pushing both the release tag and an update to the master branch,
+      plus removing the pre-release branch, so you'll want some
+      commands along these lines:
+        git push origin master        # update the master branch
+        git push origin --tags        # should push the new release tag
+        git push origin :pre-0.XX     # delete the pre-release branch
+
+ - Run ~/adm/puttyweb.sh on atreus to update the website after all
+   those git pushes.
+
+ - Check that the unpublished website on atreus looks sensible.
 
  - Run webupdate, so that all the changes on atreus propagate to
    chiark. Important to do this _before_ announcing that the release