Release Process

You are viewing an old version of this article. View the current version here.

Procedures for doing a MariaDB release

This page documents the release process for MariaDB.

Release Steps

  1. Commit fixes into the appropriate tree until Buildbot looks OK
  2. The Release Coordinator adds a release tag to the release tree (e.g. tag:mariadb-5.2.5 for the 5.2.5 release, see note 1 below for sample command line)
  3. The release coordinator notifies the following of the tag, the build number (see Note 6, below), and that the tree is ready for release:
    1. The Maria Docs team (maria-docs [at] lists (dot) launchpad (dot) net)
    2. The Maria Dev team (maria-dev [at] lists (dot) launchpad (dot) net)
    3. The community team (community [at] askmonty (dot) org)
  4. The Builbot buildslaves build packages and the release coordinator informs the Docs team when they are ready to be copied over
  5. Someone with the proper access logs in to the osuosl mirror and updates the get.sh script with the correct values and then runs the script. This script uploads the source tarball, the generic Linux binaries, and the windows builds.
  6. Someone on the release team creates the Debian and Ubuntu repositories then uploads them to osuosl. (See note 4)
  7. Someone on the release team signs the RPM packages and then uploads them to osuosl. (See note 5)
  8. Once all files are uploaded to osuosl, run the trigger script, to push the new files out to the public server:
    ./trigger-mariadb
    
  9. Packages get uploaded to mirrors (this happens automatically as soon as the files are uploaded to osuosl)
  10. The Docs team imports the new release into the MariaDB Download system
  11. The Docs team fills in, edits, and finishes the release notes and changelog pages and removes the unreleased template (if it is there) about the information on the page being about an unreleased version
  12. The Docs team creates release notes and changelog pages for the next release (so that the developers can fill them in as they work on the release)
    • The unreleased banner should be placed on these pages to let users know that the information on the page is about an unreleased version. The creole syntax for including the template is: <<include slug="unreleased">>
  13. The Docs team preps updates to other documentation as necessary
  14. Once all packages have been mirrored, the Docs team activates the new release on the MariaDB Downloads page and activates any other documentation changes/additions
    • Use the "Check Mirrors" feature of the downloads system to check if the files are fully mirrored.
  15. Announce the release
    1. Consolidate release announcements when possible (e.g. one release email for a set of 5.1/5.2/5.3 releases in a single week).
    2. The Docs team updates (if applicable):
    3. An IRC op (Daniel, etc...) updates the topic in #maria
    4. The community team announces the release on the announce and maria-discuss mailing lists, and via blogs and other methods
    5. For major releases, send the release announcement through PR Newswire (Colin does this now)

Notes:

  1. Tagging releases: Here is an example bzr command line to make the tag:
    bzr tag --directory lp:~maria-captains/maria/5.1-release mariadb-5.1.41-rc
    
  2. Creating md5sums: Here are the commands I (Daniel) use to create the md5sums of a release:
    cd /path/to/dir/with/releases/
    release='mariadb-5.2.1-beta'
    for dir in $(find ${PWD}/${release} -type d); do echo; echo ${dir};cd ${dir};md5sum *;echo;echo;done
    
  3. Obtaining info for Changelog and Release Notes: A raw log of all changes can be obtained from bzr as follows:
    sourcedir="5.1"
    oldrelease="mariadb-5.1.44b"
    newrelease="mariadb-5.1.47"
    bzr branch --no-tree -rtag:${oldrelease} ${sourcedir} ${oldrelease}
    bzr branch --no-tree -rtag:${newrelease} ${sourcedir} ${newrelease}
    cd ${newrelease}/
    bzr missing --line --include-merges ../${oldrelease} > /tmp/short.txt
    bzr missing --include-merges ../${oldrelease} > /tmp/long.txt
    
    It is then a manual process to read through this and convert it into some kind of human-readable release notes...
  4. Creating Debian and Ubuntu Repositories: Prior to doing this, branch mariadb-tools from Launchpad:
    bzr branch lp:mariadb-tools/trunk mariadb-tools
    
    (or update a previously branched copy with "bzr pull").
    1. Copy the build over to a working directory.
    2. Run the following commands:
      mkdir repo
      cd repo
      eval $(gpg-agent --daemon)
      path/to/mariadb-tools/buildbot/mkrepo-debian.sh debian path/to/build-buildnum
      path/to/mariadb-tools/buildbot/mkrepo-ubuntu.sh ubuntu path/to/build-buildnum
      cd ../
      
    3. On the osuosl mirror, move the old repo/5.x dir and upload the new repo to repo/5.x
      scp -r repo osuosl:data/repo/5.2
      
    4. Clean up your working directory by removing the local repo and build-### directories
  5. Signing RPM Packages:
    1. Prior to beginning, ensure that you have a .rpmmacros file with the following contents (replace '<keyname>' with the actual key name):
      %_signature gpg
      %_gpg_path ~/.gnupg
      %_gpg_name <keyname>
      %_gpgbin /usr/bin/gpg
      
    2. Copy the build-### directory over to a working directory.
    3. Sign the files:
      rpm --addsign $(find build-### -name '*.rpm')
      
    4. cd into the build dir and regenerate the md5sums:
      for dir in $(ls -d *rpm*);do
      cd ${dir};
      pwd;
      rm -v md5sums.txt;
      md5sum $(find . -name '*.rpm') >> md5sums.txt;
      md5sum -c md5sums.txt;
      cd ../;
      done
      
    5. Upload the files to the primary mirror:
      release="mariadb-5.2.7"
      for dir in $(ls -d *rpm*);do
        scp -r ${dir} osuosl:data/${release}/
      done
      
  6. Determining build numbers for releases: Build numbers come from Buildbot. To get the build number for a specific buid, e.g. for MariaDB 5.2 builds:
    1. Look at the columns here. The headers across the top list the branch (5.2 in this case) and the revision numbers for the last five builds.
    2. Pick the column that corresponds to the revision number with the with the correct release tag (you can view the tags and revision numbers on Launchpad).
    3. Select one of the builds in the correct column and look for the property "tarbuildnum". This is the build-### directory you want.

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.