Skip to content

Release Manager's checklist

crowbot edited this page Feb 8, 2013 · 22 revisions

This is a checklist of things to do in order to make a new release of alaveteli, which involves creating a release branch according to the git flow model, updating translations, and letting various people know. For more details on translation, see the translation documentation. For more details on git flow, see this description.

The process begins when the develop branch (almost) reflects the desired state of the new release.

Before the release candidate date

  • Pick a date for the release branch to be cut ("release candidate date")
  • Make an announcement to the translators (using the "announcements" feature in Transifex) that they should ensure they have any pending translations saved in Transifex before the release candidate date
  • Make an announcement to the developers that all new strings should be committed before the release candidate date

On the release candidate date

  • Download (tx pull -a -f) the current translations
  • Convert the translations to a standard msgmerge format (bundle exec rake gettext:clean) and commit them (important: there's no revision history in Transifex!)
  • You should also commit these translations to a hotfix for the previous version, so they are preserved against the last known good msgids
  • Regenerate the POT file and individual PO files for each language, using bundle exec rake gettext:store_model_attributes, followed by bundle exec rake gettext:find
  • Reupload (tx push -s -t) the POT and PO files to Transifex from the current release branch
  • Re-pull from Transifex to remove the fuzzy strings from the local PO files
  • Clean the pulled files (bundle exec rake gettext:clean) and commit.
  • Create the release branch from the develop branch - call it 'release/[release number]'
  • Rename the current "Release N" milestone to "Release [release number]" and move any open issues to a new "Release N".
  • Send a message to the dev group to let people know they can try the release branch
  • Test/fix the release...

On the release date

  • Make sure that all dependent themes (alavetelitheme, adminbootstraptheme, whatdotheyknow-theme) have master branches that are compatible with the release branch
  • Tag all the dependent themes with a use-with-alaveteli-x.x.x tag
  • Download and commit all the current translations to the current release branch
  • Add a description of the release to the Changes file in the release branch
  • Update the ALAVETELI_VERSION constant in the release branch.
  • Merge the release branch into master
  • Tag that commit on the master branch with the release number
  • Merge the release back into the develop branch
  • Send a message to the dev group with a link to the Changes file
  • Tweet and/or blog about the new release!
Clone this wiki locally