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
$ svn log -r321:HEAD svn://svn.synchrona.org/erights/e/trunk
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(<int>) 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
The DOTVER is used to generate the names of the tarballs and the value of the
e.version 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
$ chmod -R a+rX . $ chmod -R u+w . $ rm -rf classes/ dist/ export/ tarballs/ $ ls -la# 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.
$ cd src $ MAKE_PARSERS=true make draft tarballs $ ls -la ../tarballs
For reference, this time the output looked like
$ ls -la ../tarballs total 23888 drwxr-xr-x+ 2 Terry None 0 May 10 20:21 . drwxr-xr-x+ 9 Terry None 0 May 10 20:17 .. -rw-r--r-- 1 Terry None 3143728 May 10 20:21 E-purej-0.9.2a.tar.gz -rw-r--r-- 1 Terry None 15954776 May 10 20:20 E-src-0.9.2a.tar.gz -rw-r--r-- 1 Terry None 5353732 May 10 20:21 E-win32-x86-0.9.2a.zip
Note that the
make 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
E-win32-x86-0.9.2a.zip by unpacking it into a fresh directory, where you'd like E installed, such as
c:/Program Files/erights.org. Make the directory if necessary. Double click on
e.jar. 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.
$ svn ci
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".
$ cd ../doc/dowload $ ls -la
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.
$ cp -r 0-9-1 0-9-2 $ cd 0-9-2 $ rm -rf `find . -name '.svn'`
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,
- 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.
(The tool I happen to use for search-and-replace is also my favorite almost-wysiwyg html editor, Dreamweaver.)
Then, back up in the doc directory (the root of the website)
$ cd ../..
I edit toc.txt to include the new 0-9-2 copy of the files. Save. Then rebuild the page navigation buttons
$ make 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.
$ cp ../../../tarballs/*.zip *.gz . $ scp *.zip *.gz email@example.com:e/doc/download/0-9-2