Actions

Difference between revisions of "Developer Area/Release Instructions"

From Mahara Wiki

< Developer Area
(better links to major release and RC)
Line 3: Line 3:
 
For the purposes of these instructions, assume we are releasing version X.Y.Z of Mahara.
 
For the purposes of these instructions, assume we are releasing version X.Y.Z of Mahara.
  
'''''Note: for major releases, there are [[Developer Area/Release Instructions/Major Release|a few more steps]].'''''
+
'''Also see these pages for more instructions:'''
 +
 
 +
* [[Developer Area/Release Instructions/Major Release|Major release]]
 +
* [[Developer Area/Release Instructions/Release Candidate|Release candidate]]
  
<div id="section_1">
 
  
 
====Pre-requisites:====
 
====Pre-requisites:====
Line 13: Line 15:
  
 
  manage-credentials create -c ubuntu-dev-tools -l 2
 
  manage-credentials create -c ubuntu-dev-tools -l 2
 
<div id="section_2">
 
  
 
===1. Make sure your mahara-scripts checkout is up to date===
 
===1. Make sure your mahara-scripts checkout is up to date===
  
 
You need to have an up-to-date version of the [http://gitorious.org/mahara/mahara-scripts mahara-scripts] repo in order to get the latest copy of the [http://gitorious.org/mahara/mahara-scripts/blobs/master/release.sh release script]. That's the only repo you need to have since the release script will clone the gitorious repo all by itself.
 
You need to have an up-to-date version of the [http://gitorious.org/mahara/mahara-scripts mahara-scripts] repo in order to get the latest copy of the [http://gitorious.org/mahara/mahara-scripts/blobs/master/release.sh release script]. That's the only repo you need to have since the release script will clone the gitorious repo all by itself.
 
</div><div id="section_3">
 
  
 
===2. Run the first part of the release script===
 
===2. Run the first part of the release script===
Line 29: Line 27:
 
   
 
   
  
<br /> This will create tarballs as well as a changelog and some release notes to paste into Launchpad. It will also spit out another script (release-X.Y.Z-cleanup.sh) to be run later.
+
This will create tarballs as well as a changelog and some release notes to paste into Launchpad. It will also spit out another script (release-X.Y.Z-cleanup.sh) to be run later.
  
 
Note that the repos that will be pushed back to gitorious are live in your /tmp. '''Do not reboot your machine''' in the middle of doing a release or you will have to run through the release script again.
 
Note that the repos that will be pushed back to gitorious are live in your /tmp. '''Do not reboot your machine''' in the middle of doing a release or you will have to run through the release script again.
 
</div><div id="section_4">
 
  
 
===3. Testing===
 
===3. Testing===
Line 54: Line 50:
 
# install a fresh X.Y.Z-1 site, then upgrade to Z.Y.Z on Postgres and quickly check that everything works (create a portfolio, a blog with a blog post, a group with a forum and a forum post)
 
# install a fresh X.Y.Z-1 site, then upgrade to Z.Y.Z on Postgres and quickly check that everything works (create a portfolio, a blog with a blog post, a group with a forum and a forum post)
 
# repeat that last step on MySQL
 
# repeat that last step on MySQL
 
</div><div id="section_5">
 
  
 
===4. Create the release on Launchpad===
 
===4. Create the release on Launchpad===
Line 66: Line 60:
  
 
Paste in the release notes and the changelog that were generated for you by the release script. You can remove the "bump version number" commits from the changelog since they aren't very useful :)
 
Paste in the release notes and the changelog that were generated for you by the release script. You can remove the "bump version number" commits from the changelog since they aren't very useful :)
 
</div><div id="section_6">
 
  
 
===5. Sign and upload the tarballs===
 
===5. Sign and upload the tarballs===
Line 75: Line 67:
 
  ./release-X.Y.Z-cleanup.sh
 
  ./release-X.Y.Z-cleanup.sh
  
<br /> When prompted by lp-project-upload for release notes and a changelog, don't enter anything there since you've already put them on Launchpad in the last step. You will be prompted twice for each file upload (6 times in total).
+
When prompted by lp-project-upload for release notes and a changelog, don't enter anything there since you've already put them on Launchpad in the last step. You will be prompted twice for each file upload (6 times in total).
 
 
</div><div id="section_7">
 
  
 
===6. Update bugs on the tracker===
 
===6. Update bugs on the tracker===
  
 
On [https://bugs.launchpad.net/mahara Launchpad], click on all of the bugs targetted for that milestone and move them from "Fix committed" to "Fix released".
 
On [https://bugs.launchpad.net/mahara Launchpad], click on all of the bugs targetted for that milestone and move them from "Fix committed" to "Fix released".
 
</div><div id="section_8">
 
  
 
===7. Put the release notes on the wiki page===
 
===7. Put the release notes on the wiki page===
  
 
[[Release Notes|Release notes page]]
 
[[Release Notes|Release notes page]]
 
</div><div id="section_9">
 
  
 
===8. Quick announcements===
 
===8. Quick announcements===
Line 98: Line 84:
  
 
You may need to ask a previous release manager to get access to some of these accounts.
 
You may need to ask a previous release manager to get access to some of these accounts.
 
</div><div id="section_10">
 
  
 
===9. Security advisories===
 
===9. Security advisories===
  
 
If this release includes security fixes, then publish the advisories on the [http://mahara.org/interaction/forum/view.php?id=43 security forum].
 
If this release includes security fixes, then publish the advisories on the [http://mahara.org/interaction/forum/view.php?id=43 security forum].
 
</div><div id="section_11">
 
  
 
===10. Update the news at [http://www.mahara.org/ http://mahara.org/]===
 
===10. Update the news at [http://www.mahara.org/ http://mahara.org/]===
Line 114: Line 96:
  
 
Now is a good time to notify translators about changed strings, if this is a stable release. I tend to do this with a forum post in the Translations forum.
 
Now is a good time to notify translators about changed strings, if this is a stable release. I tend to do this with a forum post in the Translations forum.
 
</div><div id="section_12">
 
  
 
===11. Update the demo.mahara.org install (currently Catalyst hosted)===
 
===11. Update the demo.mahara.org install (currently Catalyst hosted)===
Line 127: Line 107:
  
 
Send it to the e-learning repo and install it.
 
Send it to the e-learning repo and install it.
 
</div></div>
 
  
 
===Subpages===
 
===Subpages===

Revision as of 13:20, 20 May 2011

This document details the procedure to follow when building a release for general download. Other documents related to this one include the Version Numbering policy and the Release Policy.

For the purposes of these instructions, assume we are releasing version X.Y.Z of Mahara.

Also see these pages for more instructions:


Pre-requisites:

manage-credentials create -c ubuntu-dev-tools -l 2

1. Make sure your mahara-scripts checkout is up to date

You need to have an up-to-date version of the mahara-scripts repo in order to get the latest copy of the release script. That's the only repo you need to have since the release script will clone the gitorious repo all by itself.

2. Run the first part of the release script

Using the script you got in the previous step, run the first step of it like this:

./release.sh X.Y.Z X.Y_STABLE

This will create tarballs as well as a changelog and some release notes to paste into Launchpad. It will also spit out another script (release-X.Y.Z-cleanup.sh) to be run later.

Note that the repos that will be pushed back to gitorious are live in your /tmp. Do not reboot your machine in the middle of doing a release or you will have to run through the release script again.

3. Testing

Here is the testing that needs to be done using the tarballs you generated in the last step:

  1. install the Selenium firefox plugin if you don't already have it
  2. untar the release you want to test somewhere and make sure you can connect to it and login as admin
  3. check the right branch out (X.Y_STABLE for X.Y.Z)
  4. cd test/selenium/ && ./generate-testsuites.py
  5. in firefox: Tools | Selenium IDE
  6. in Selenium: File | Open Test Suite
  7. open test/selenium/TestSuite.html
  8. set the Base URL to where you can connect to that Mahara site
  9. drop the db and create a new blank one (the selenium tests start by running the install)
  10. hit the "play entire test suite" green "play" button.

The test suite should be run both on MySQL and Postgres. Then run these manual upgrade tests (no need to run the Selenium test suite):

  1. install a fresh X.Y.Z-1 site, then upgrade to Z.Y.Z on Postgres and quickly check that everything works (create a portfolio, a blog with a blog post, a group with a forum and a forum post)
  2. repeat that last step on MySQL

4. Create the release on Launchpad

At https://launchpad.net/mahara/+milestone/X.Y.Z

Click on "create release" and give it today's date.

Leave "Keep the X.Y.Z milestone active." unchecked.

Paste in the release notes and the changelog that were generated for you by the release script. You can remove the "bump version number" commits from the changelog since they aren't very useful :)

5. Sign and upload the tarballs

Run the next part of the release script, i.e. the script that was spit out by the release script.

./release-X.Y.Z-cleanup.sh

When prompted by lp-project-upload for release notes and a changelog, don't enter anything there since you've already put them on Launchpad in the last step. You will be prompted twice for each file upload (6 times in total).

6. Update bugs on the tracker

On Launchpad, click on all of the bugs targetted for that milestone and move them from "Fix committed" to "Fix released".

7. Put the release notes on the wiki page

Release notes page

8. Quick announcements

  • Change the topic of #mahara
  • Put a note on Twitter and Identica.
  • Update freshmeat to report the new release

You may need to ask a previous release manager to get access to some of these accounts.

9. Security advisories

If this release includes security fixes, then publish the advisories on the security forum.

10. Update the news at http://mahara.org/

Posting in the news forum does this.

Include links to the security advisories and a link to the download page on Launchpad.

Now is a good time to notify translators about changed strings, if this is a stable release. I tend to do this with a forum post in the Translations forum.

11. Update the demo.mahara.org install (currently Catalyst hosted)

demo.mahara.org is in the client repository, on the demo-mahara-org branch.

git fetch origin
 git merge origin/1.0_STABLE
 dch -v 1.0.X~testing-1 (changelog: 1.0.X)
 make

Send it to the e-learning repo and install it.

Subpages