Release process notes

I am seeding this page by jotting down notes on the process of performing the E 0.9.2 release, as a guide to others who may do future releases or more fully automate the process (please!). This information is descriptive; not prescriptive.

At Kevin's suggestion, I did a

to gather all the log entries since the last release. I then summarize them in the Highlights, Features, Bug Fixes, and Other Changes below.

Kevin enumerated the release blockers for the this release:
 * Since r468, help shows no methods.
 * Since ???, epatt__quasiParser always throws a parse error.

Fixed them as of r635.

= Building the Release =

Once all other changes are checked in and ready to go, on a Windows Cygwin shell (with gcc and a sun jdk installed), bring all sources up to date. (svn update, etc).

In e/src/Makefile, change to     to

The DOTVER is used to generate the names of the tarballs and the value of the  property. TAGVER is no longer used, but was used for cvs tagging.

In the "e" directory, i.e., the parent of the "e/src" directory, do

# verify the directories are actually gone.

None of the above should be necessary, but helps to work around various weirdnesses that seem to crop up on Windows, such as directories that can't be deleted. However, the permissions fixes may only be needed on systems in which Polaris is installed.

For reference, this time the output looked like

Note that the  can take vastly longer on Windows than it does on Unix. Or maybe it's just our old PC. Or maybe it's a bad interaction with Polaris. We don't know.

For normal development, you normally don't need MAKE_PARSERS. However, this should be on when building a release and prior to the final checkin. If the make succeeds and everything looks good, then try installing the  by unpacking it into a fresh directory, where you'd like E installed, such as. Make the directory if necessary. Double click on. If E installs successfully, your should see a monologue box pop up saying "Welcome to E 0.9.2a".

Run whatever other tests you need to feel comfortable that E still works after the changes since the last release. (Ideally, this would be an automated set of tests that are normally all green. We are not yet ready for that.)

If it all checks out, then do an SVN commit.

or interactively using Tortoise SVN (recommended). The commit message should state that this corresponds to this release.

= Updating the web site =

Check out and/or SVN update the erights.org website. The following assumes that the "doc" directory is placed under "e" as a sibling to "src".

We see an "0-9-1" directory but no "0-9-2" directory. We copy 0-9-1 to make an initial draft 0-9-2, remove all 0-9-2 ".svn" subdirectories, and modify 0-9-2 to reflect the new release.

Note that this directory copy-and-revise is not a good practice. We should switch towards documenting the current release on wiki.erights.org, and maintain a single canonical set of install documentation, rather than a per-release copy.

Within the 0-9-2 directory, (The tool I happen to use for search-and-replace is also my favorite almost-wysiwyg html editor, Dreamweaver.)
 * Replace all occurrences of "0.9.1b" with "0.9.2a".
 * Replace all "0-9-1" with "0-9-2". This will inappropriately change some of the navigation button links at the top and bottom of the page, but we will repair those below.
 * Because I have stupidly temporarily lost access to my account on cypherpunks.to, I am replacing all "https://www.cypherpunks.to/erights/download/0-9-2/" with nothing, turning the rest of these links into links into the local directory.

Then, back up in the doc directory (the root of the website)

I edit toc.txt to include the new 0-9-2 copy of the files. Save. Then rebuild the page navigation buttons

Next, I revise the text on the pages in this directory to more accurately describe the 0.9.2a release. Kevin reminds me that these pages have carried forward many old issues, like daffE, which are no longer relevant. Since this leads to the removal of several files (README.html, highlights.html, linux-motif-x86-install.html, linux-gtk-x86-install.html, and mac-ppc-install.html), I also remove any that appear in the 0-9-2 section of toc.txt and re "make buttons" as above.

I do an SVN commit of all relevant files.

Uploading and Finishing Touches
Then I build the doc.tar.gz representing the surface of the new erights.org website. I use the following private bash function (in my "~/.bashrc" which is not checked in because it hasn't yet been engineered for use by anyone else:

Because I don't currently have access to my cypherpunks.to account, the last scp above will fail.

Once the scp'ing is done, I then manually ssh into each of these sites (currently just combex.com) and do

Yes, I know that I can do this directly with ssh commands, but whether out of habit or a false need for hand-on comfort, I don't.

With the new website in place, I finally transfer the E distribution tarballs there. I do so by first copying them into my local 0-9-2 directory, so that my local directory will more faithfully reflect the real site.

I use my browser to check that the website looks good and that the download links work. I update ReleaseNotes092 to point at. I update Downloads. Oops. I notice that I forgot to edit the download page to point at the 0-9-2 directory. Go through the edit, SVN commit, mkdoc, scp, ssh, unpack, check cycle again.

And finally I announce on e-lang.