зеркало из https://github.com/github/putty.git
157 строки
6.0 KiB
Plaintext
157 строки
6.0 KiB
Plaintext
Checklists for PuTTY administrative procedures
|
|
==============================================
|
|
|
|
Preparing to make a release
|
|
---------------------------
|
|
|
|
Now that PuTTY is in git, a lot of the release preparation can be done
|
|
in advance, in local checkouts, and not pushed until the actual
|
|
process of _releasing_ it.
|
|
|
|
To begin with, before dropping the tag, make sure everything is ready
|
|
for it:
|
|
|
|
- First of all, go through the source (including the documentation),
|
|
and the website, and review anything tagged with a comment
|
|
containing the word XXX-REVIEW-BEFORE-RELEASE.
|
|
(Any such comments should state clearly what needs to be done.)
|
|
|
|
- Also, do some testing of the Windows version with Minefield, and
|
|
of the Unix version with valgrind or efence or both. In
|
|
particular, any headline features for the release should get a
|
|
workout with memory checking enabled!
|
|
|
|
- Double-check that we have removed anything tagged with a comment
|
|
containing the words XXX-REMOVE-BEFORE-RELEASE or
|
|
XXX-REVIEW-BEFORE-RELEASE. ('git grep XXX-RE' should only show up
|
|
hits in this file itself.)
|
|
|
|
- Now update the version numbers and the transcripts in the docs, by
|
|
checking out the release branch and running
|
|
|
|
make distclean
|
|
./release.pl --version=X.YZ --setver
|
|
|
|
Then check that the resulting automated git commit has updated the
|
|
version number in the following places:
|
|
|
|
* putty/LATEST.VER
|
|
* putty/doc/plink.but
|
|
* putty/doc/pscp.but
|
|
* putty/windows/putty.iss (four times, on consecutive lines)
|
|
|
|
and also check that it has reset the definition of 'Epoch' in
|
|
Buildscr.
|
|
|
|
- Make the release tag, pointing at the version-update commit we just
|
|
generated.
|
|
|
|
- If the release is on a branch (which I expect it generally will
|
|
be), merge that branch to master.
|
|
|
|
- Write a release announcement (basically a summary of the changes
|
|
since the last release). Squirrel it away in
|
|
atreus:src/putty-local/announce-<ver> in case it's needed again
|
|
within days of the release going out.
|
|
|
|
- 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
|
|
bob . 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.
|
|
|
|
- Double-check in build.log that the release was built from the right
|
|
git commit.
|
|
|
|
- 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
|
|
and enter the passphrases a lot of times.
|
|
|
|
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.
|
|
|
|
- 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
|
|
is available.
|
|
|
|
- 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!
|
|
+ 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.
|
|
|
|
- Edit ~/adm/puttysnap.sh to disable pre-release builds, if they were
|
|
previously enabled.
|
|
|
|
- Relax (slightly).
|