Releasing from Mercurial repo -- procedures?

Stephen J. Turnbull stephen at xemacs.org
Thu Feb 7 15:45:07 EST 2008


Michael Sperber writes:

 > I'm still fuzzy on what exactly you're trying to do.  It seems you could
 > simply do "hg tag", no?

No.  Current release procedure implies changes to all ChangeLogs
(adding release banners) and to CHANGES-beta (sealing it to start the
next release's changes).  I use these very heavily to identify which
changes went into which version when supporting users; I want no
confusion about them.  They must obviously come after any changes
required by bugs found during the release process (which has
happened).  The easiest way to implement that is to not commit.

Here's the current procedure[1]:

1.  Check out tag of previous release.
2.  Check out HEAD in separate directory.
    Required to make a proper patch using makepatch.
3.  Compute ChangeLogs and CHANGES-beta changes, apply to workspace,
    and format into announcement drafts.
4.  Make patches using makepatch.
5.  (optional) Make pristine source tarballs.
6.  Configure and build --with-x11 --with-mule.
7.  Run "xemacs --eval '(progn (sleep-for 5) (save-buffers-kill-emacs))'".
8.  Run "make check".
9.  Commit to HEAD.
10. Tag HEAD.
11. (optional) Make elc-and-info-included tarballs.
12. Sign all products.
13. Upload tarballs to temporary private directory.
14. (By hand) edit announcements (concurrent with 10).
15. mv tarballs into place.
16. Update archive READMEs, LATEST-* stubs in directory, etc.
17. Update website.
18. Post announcements to mailing lists.
19. Download tarballs, unpack into tempdir, configure and
    build --with-x11 --with-mule.

For Mercurial, there would be the following changes and additions, I
believe:

2.  Update from "xemacs-beta" tip.
9.  Commit locally.
9.5. Tag locally.
10. Push to "xemacs-beta" tip.

I want a freeze from 2 to 10.  Since I do no work on "xemacs-beta,"
steps 2 and 10 should both be clean fast-forwards; no merge turds.  If
everything goes well, that procedure is fully automated and completes
in about 30 minutes.

Strictly speaking 13 and 19 should be done before 9, but that would
add about 4 hours to the procedure based on upload speeds for 21.5.27
and 21.5.28.


Footnotes: 
[1]  Somewhat idealized; I think actually I make elc-and-info
     tarballs only, but do that before step 9.  I want to fix that.





More information about the XEmacs-Beta mailing list