I am seeding this page by jotting down notes on the process of performing the [ReleaseNotes092 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.

+

I am seeding this page by jotting down notes on the process of performing the [[ReleaseNotes092|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

At Kevin's suggestion, I did a

Line 71:

Line 71:

$ cd 0-9-2

$ cd 0-9-2

$ rm -rf `find . -name '.svn'`</code>

$ rm -rf `find . -name '.svn'`</code>

+

+

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,

Within the 0-9-2 directory,

Line 86:

Line 88:

<code>$ make buttons</code>

<code>$ make buttons</code>

+

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.

-

More soon...

+

== Uploading and Finishing Touches ==

-

<code>$ cp ../../../tarballs/*.zip *.gz .

+

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:

+

+

<code>mkdoc ()

+

{

+

rm -rf ~/efoo/doc;

+

echo "starting";

+

rune ~/e/src/esrc/scripts/copyOnly.e '~/'e/doc '~/'efoo/doc .html;

+

echo "html";

+

rune ~/e/src/esrc/scripts/copyOnly.e '~/'e/doc '~/'efoo/doc .gif;

+

rune ~/e/src/esrc/scripts/copyOnly.e '~/'e/doc '~/'efoo/doc .jpg;

+

rune ~/e/src/esrc/scripts/copyOnly.e '~/'e/doc '~/'efoo/doc .jpeg;

+

rune ~/e/src/esrc/scripts/copyOnly.e '~/'e/doc '~/'efoo/doc .png;

+

rune ~/e/src/esrc/scripts/copyOnly.e '~/'e/doc '~/'efoo/doc .txt;

+

echo "copied";

+

rm -rf `find ~/efoo/doc -name .svn`;

+

rm -rf ~/efoo/doc/talks/e-overview;

+

rm -rf ~/efoo/doc/javadoc;

+

echo "prepared";

+

( cd ~/efoo;

+

tar czf ~/e/doc/download/doc.tar.gz doc );

+

echo "packaged";

+

( cd ~/e/doc/download;

+

scp doc.tar.gz combexin@combex.com:e/doc/download );

+

( cd ~/e/doc/download;

+

scp doc.tar.gz markm@www.cypherpunks.to:e/doc/download )

+

}</code>

+

+

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

+

+

<code># Remotely at the combex.com site

+

$ cd ~/e

+

$ tar xzf doc/download/doc.tar.gz</code>

+

+

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.

+

+

<code># Locally again in my 0-9-2 directory

+

$ cp ../../../tarballs/*.zip ../../../tarballs/*.gz .

$ scp *.zip *.gz combexin@combex.com:e/doc/download/0-9-2</code>

$ scp *.zip *.gz combexin@combex.com:e/doc/download/0-9-2</code>

+

+

I use my browser to check that the website looks good and that the download links work. I update [[ReleaseNotes092]] to point at [http://erights.org/download/0-9-2/]. I update [[Downloads]]. Oops. I notice that I forgot to edit the [http://erights.org/download/index.html 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 [http://www.eros-os.org/pipermail/e-lang/2009-May/013126.html announce on e-lang].

Latest revision as of 01:50, 13 May 2009

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.

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.

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.

(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. 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:

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 [1]. 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.