This site is a static archive of the Aegir community site. Documentation has moved to http://docs.aegirproject.org. Other community resources can be found on the Contacting the community page.
Skip navigation

Revision of Release process from Mon, 11/22/2010 - 22:12

Help

Release process

Tagged:

This page aims to document our release process.

The release cycle

In general, each major Hostmaster release comprises of a simultaneous release of all the modules part of the project. We generally go through a few releases before doing the first release.

  • First an alpha is released to test new functionalities and to proceed accomplishing the goals decided in the Project Roadmap for that major version.

  • When we have covered most of the functionalities outlined in the roadmap, we bump that to a beta. We push out beta releases until no more critical issues show up.

  • Then we go into feature freeze and release a first release candidate (RC).

  • If no critical bug is found, a complete release is done, otherwise critical bugs are fixed and a new RC is done. That cycle repeats until no critical bugs are found.

Making a release

Each time we make a new release, we run a script called 'release.sh' in provision

This script should only be used by the core dev team when doing an official release. If you are not one of those people, you probably shouldn't be running this.

This script does all the 'hard' work in that it doesn't forget all the very many places to edit version numbers etc of relevant documentation and other scripts. This includes INSTALL.txt, UPGRADE.txt, install.sh.txt and upgrade.sh.txt.

Paraphrasing from the script itself:

The following operations will be done:
1. change the makefile to download tarball
2. change the INSTALL.txt to point to tagged install.sh
3. change the UPGRADE.txt to point to release tags
4. change the install.sh.txt version
5. change the upgrade.sh.txt version
6. display the resulting diff
7. commit those changes to git
8. lay down the tag (prompting you for a changelog)
9. revert the commit
10. (optionally) push those changes

The operation can be aborted before step 6 and 9. Don't forget that as long as changes are not pushed upstream, this can all be reverted (see git-reset(1) and git-revert(1) ).

Tarballs are automatically created on http://files.aegirproject.org with associated md5sums once the tag is pushed. The install/upgrade documentation scripts in that release were automatically modified so that the URLs to those tarballs reflects the correct release.

Announcing the release

We build complete release notes for every release. Those are made up of a summary of the release, an outline of key changes, of known issues, install and upgrade instructions and a full list of bugfixes and new features.

We have a handy bookmarklet that takes the list of issues and build a release-notes-ready list:

javascript:(function(){x%20=%20open().document;$(".views-field-title a").each(%20function()%20{%20x.write('* [' + $(this).attr('href').replace(/\/node\//, '#') + ': ' + $(this).text()+'](http://drupal.org'+$(this).attr('href')+ ')<br%20/>')%20})})()

The developers then proceed to format/edit the list of fixes as well as list other significant information/changes for this release. These notes end up becoming the Release Notes for the release.

The release notes are published on:

  • News on community.aegirproject.org
  • The aegir-announce mailing list
  • Twitter as @aegirproject
  • Optionally, blog posts on developmentseed.org and elsewhere may go into further detail about significant changes, screencasts etc.
Need help?

Documentation

The notebook section provides a way for you to store and share information with your group members. With the book feature you can:

  • Add book pages and organize them hierarchically into different books.
  • Attach files to pages to share them with others.
  • Track changes that others have made and revert changes as necessary.
  • Archive books that are no longer of interest to the group. Archived books can be reactivated later if needed.

The revisions let you track differences between multiple versions of a post.