Release process

From PeopleAggregator

Jump to: navigation, search

More to come here on who has responsibility for everything, but for the moment, here's how you get everything set up for auto-update, and build the release tarball/zipfile.

NOTE: most of the commands below require quite a lot of network traffic between the system they are run on and the update.peopleaggregator.org / paalpha.svn.broadbandmechanics.com / pokemon.broadbandmechanics.com server, so it's quite a bit quicker if you can run them on the server itself.

Note that the version of Subversion on pokemon is too old to run build_dist_files_txt.py, so you'll have to install the standalone version mentioned in the error message you'll get the first time you try to do a build.

Contents

[edit] Get everything in dev Subversion

First, make sure everything is in the development subversion repository (http://paalpha.svn.broadbandmechanics.com/svn/paalpha). This should have been given a proper test by the test team and had their signoff on a particular revision.

At least the following testing should have been performed, to prevent embarrassing bugs:

  • Install PA on a new server
  • Create a user
  • Create a group
  • Post content - user, group, homepage
  • Upload an image

[edit] Update version numbers

  • Edit config.inc and script/version.sh and change the version number.
  • Edit web/update/version.php and add a log entry for the new release. (Also blog about it - and link to your post.)

[edit] Push the stable revision into release-test Subversion

Inside a checked out copy of the signed-off revision from development subversion, run this:

script/official/update_test_repository_from_here.sh

This will invoke svn_load_dirs.pl to copy any changes to the development repository over to the test repository (http://update.peopleaggregator.org/svn/testing).

[edit] Build a test tarball

In your development subversion working directory, run:

script/official/make_test_release.sh

This will check out a copy of the test repository and build a set of distribution files, which will be placed under script/official/dist.tmp in the development working directory.

[edit] Test the test distribution

Send the files from dist.tmp to the testers for release testing.

At least:

  • Unpack the tarball on a web server.
  • Test that the installation works properly.
  • Create a user, post some content.

[edit] Test that older test distributions can successfully upgrade to the new version

Install an older test distribution (i.e. built from an older version of the test repository). Run auto-update. Make sure all files are correctly updated and the database is updated properly.

Ideally, repeat this for several older distributions: the previous version, the first ever released version, and a version in the middle.

Phil has a few example installs of older versions on vega.broadbandmechanics.com, in: /var/www/pa-vega.myelin.co.nz

You can find older distributions to install in: http://update.peopleaggregator.org/svn/testing/tags

[edit] Tag the new version

Tag the new version in the testing repository (replace v1.2345 with the actual version string):

svn copy http://update.peopleaggregator.org/svn/testing/pa http://update.peopleaggregator.org/svn/testing/tags/v1.2345

[edit] Push the test files into the release repository

Once the testers are happy with the test tarball, and you have ensured that older versions of the software correctly update to the new version, you can release the code. This action will make it immediately live, so all users will be able to upgrade using the auto-update function.

Go to the update administration page at http://update.peopleaggregator.org/admin/ and click the 'click here!' link at the bottom.

Now the release repository (http://update.peopleaggregator.org/svn/release) will contain the same data as the testing repository.

[edit] Build a release tarball

In your development working directory, run:

script/official/push_official_release.sh

That's it! The official release tarball and zipfile will be built and uploaded to http://update.peopleaggregator.org/dist/peopleaggregator-1.0-release-123.tar.gz (where 1.0 is the version and 123 is the subversion revision).

[edit] Quick start

Here's the cheat sheet for updating from paalpha on pokemon:

  • preparing
cd
mkdir -p bin
cp /usr/share/doc/subversion-1.1.4/svn_load_dirs.pl bin/
mkdir -p tmp
cd tmp
wget http://www.uncc.org/svntools/clients/linux/subversion-1.4.3-linux-x86.tar.gz
tar -vzxf subversion-1.4.3-linux-x86.tar.gz
mv bin/svn* ~/bin/

Also make sure that your ~/.bash_profile has the line:

PATH=$HOME/bin:$PATH

You'll have to log out and back in again after doing this.

  • building the test release
cd tmp
svn checkout https://paalpha.svn.broadbandmechanics.com/svn/paalpha
cd paalpha
script/official/update_test_repository_from_here.sh
script/official/make_test_release.sh
ls script/official/dist.tmp/
  • making the official release

First - go to http://update.peopleaggregator.org/admin/ and make sure you can log in.

If you can't log in, get someone with root access on pokemon to do this:

htpasswd /var/www/update.peopleaggregator.org/admin-htpasswd yourusername

Now click the 'update' button (and the 'confirm' button).

Now on pokemon again:

cd tmp
script/official/push_official_release.sh

When it asks for a password, give it your pokemon one, as it will scp the release files to pokemon. You'll need to have write perms to the /var/www/update.peopleaggregator.org/htdocs/dist directory.

  • tell everyone about it!

Now the release is final, so you can blog about it, or e-mail all your friends :)

Check that the text on http://update.peopleaggregator.org/ is correct - sometimes it refers to the current version or has a note about it. If you want to change it, edit /var/www/update.peopleaggregator.org/htdocs/index.php on pokemon.

Personal tools