Answer Diff [33]
== Procedures for doing a MariaDB release
¶
¶
This page documents the release process for MariaDB. ¶
¶
=== Release Steps ¶
¶
# Commit fixes into the appropriate tree until ¶
[[https://buildbot.askmonty.org/buildbot/waterfall|Buildbot]] looks OK ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.1&category=package|branch=5.1]] ¶
([[http://buildbot.askmonty.org/buildbot/grid?branch=5.1-release&category=package|5.1-release]]) ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.2&category=package|branch=5.2]] ¶
([[http://buildbot.askmonty.org/buildbot/grid?branch=5.2-release&category=package|5.2-release]]) ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.3&category=package|branch=5.3]] ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.5&category=package|branch=5.5]] ¶
# The **[[release-coordinator|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) ¶
# The release coordinator notifies the following of the tag, the build number ¶
(see Note 6, below), and that the tree is ready for release: ¶
## The Maria Docs team ¶
(<<code>>maria-docs [at] lists (dot) launchpad (dot) net<</code>>) ¶
## The Maria Dev team ¶
(<<code>>maria-developers [at] lists (dot) launchpad (dot) net<</code>>) ¶
## The community team (<<code>>community [at] askmonty (dot) org<</code>>) ¶
# The Builbot buildslaves build packages and the release coordinator informs ¶
the Docs team when they are ready to be copied over ¶
# 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. ¶
# Someone on the release team creates the Debian and Ubuntu repositories then ¶
uploads them to osuosl. (See note 4) ¶
# Someone on the release team signs the RPM packages and then uploads them to ¶
osuosl. (See note 5) ¶
# Once all files are uploaded to osuosl, run the trigger script, to push the ¶
new files out to the public server:<<code lang=bash inline=false>>./trigger-mariadb<</code>> ¶
# Packages get uploaded to mirrors (this happens automatically as soon as the ¶
above trigger script is run) ¶
# The Docs team imports the new release into the ¶
[[http://downloads.askmonty.org|MariaDB Download system]] ¶
# The Docs team fills in, edits, and finishes the release notes and changelog ¶
pages and removes the <<code>>unreleased<</code>> template (if it is there) ¶
about the information on the page being about an unreleased version ¶
# 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">>}}} ¶
# The Docs team preps updates to other documentation as necessary ¶
# The [[release-coordinator|Release Coordinator]] updates the status of all bugs fixed in the release to "Fix Released" in [[https://bugs.launchpad.net/maria|launchpad]] ¶
# Once all packages have been mirrored, the Docs team activates the new release ¶
on the [[http://downloads.askmonty.org|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. ¶
# Announce the release ¶
##lower-alpha 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). ¶
## The Docs team updates (if applicable): ¶
*** the [[http://askmonty.org/downloads/feeds/releases/|releases RSS feed]] ¶
*** the [[http://askmonty.org/wiki/Template:MariaDB_Download_Banner|MariaDB Download Banner]] ¶
*** the banners on http://mariadb.org, http://askmonty.org, and http://kb.askmonty.org ¶
## An IRC op (Daniel, etc...) updates the topic in #maria ¶
## The community team announces the release on the ¶
[[http://mariadb.org|announce]] and ¶
[[http://launchpad.net/~maria-discuss|maria-discuss]] ¶
mailing lists, and via ¶
[[http://askmonty.org/blog|blogs]] and other methods ¶
## For major releases, send the release announcement through PR Newswire (Colin does this now) ¶
¶
<<style style="font-size:0.8em;">> ¶
== Notes: ¶
# **Tagging releases:** Here is an example bzr command line to make the tag:<<code lang=bash inline=false>>bzr tag --revision=3402 --directory =lp:~maria-captains/maria/5.1-release3 mariadb-5.1.41-rc3.4<</code>>
¶
# **Creating md5sums:** Here are the commands I (Daniel) use to create the md5sums of a release:<<code lang=bash inline=false>>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 ¶
<</code>> ¶
# **Obtaining info for Changelog and Release Notes:** A raw log of all changes can be obtained from bzr as follows:<<code lang=bash inline=false>>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 ¶
<</code>> ¶
It is then a manual process to read through this and convert it into some kind ¶
of human-readable release notes... ¶
# **Creating Debian and Ubuntu Repositories:** Prior to doing this, branch mariadb-tools from Launchpad:<<code lang=bash inline=false>>bzr branch lp:mariadb-tools/trunk mariadb-tools<</code>>(or update a previously branched copy with "bzr pull"). ¶
##lower-alpha.1 Copy the build over to a working directory. ¶
## Run the following commands:<<code lang=bash inline=false>>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 ../ ¶
<</code>> ¶
## On the osuosl mirror, move the old repo/5.x dir and upload the new repo to repo/5.x<<code lang=bash inline=false>>scp -r repo osuosl:data/repo/5.2<</code>> ¶
## Clean up your working directory by removing the local repo and build-{{{###}}} directories ¶
# **Signing RPM Packages:** ¶
##lower-alpha.1 Prior to beginning, ensure that you have a .rpmmacros file with the following contents (replace '<keyname>' with the actual key name):<<code lang=bash inline=false>>%_signature gpg ¶
%_gpg_path ~/.gnupg ¶
%_gpg_name <keyname> ¶
%_gpgbin /usr/bin/gpg ¶
<</code>> ¶
## Copy the {{{build-###}}} directory over to a working directory. ¶
## Sign the files:<<code lang=bash inline=false>>rpm --addsign $(find build-### -name '*.rpm')<</code>> ¶
## cd into the build dir and regenerate the md5sums: <<code lang=bash inline=false>>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 ¶
<</code>> ¶
## Upload the files to the primary mirror:<<code lang=bash inline=false>>release="mariadb-5.2.7" ¶
for dir in $(ls -d *rpm*);do ¶
scp -r ${dir} osuosl:data/${release}/ ¶
done ¶
<</code>> ¶
# **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: ¶
##lower-alpha.1 Look at the columns ¶
[[https://buildbot.askmonty.org/buildbot/grid?branch=5.2&category=package|here]]. ¶
The headers across the top list the branch (5.2 in this case) and the ¶
revision numbers for the last five builds. ¶
## 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 ¶
[[http://bazaar.launchpad.net/~maria-captains/maria/5.2/changes/|Launchpad]]). ¶
## Select one of the builds in the correct column and look for the property ¶
"tarbuildnum". This is the {{{build-###}}} directory you want. ¶
<</style>> ¶
¶
This page documents the release process for MariaDB. ¶
¶
=== Release Steps ¶
¶
# Commit fixes into the appropriate tree until ¶
[[https://buildbot.askmonty.org/buildbot/waterfall|Buildbot]] looks OK ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.1&category=package|branch=5.1]] ¶
([[http://buildbot.askmonty.org/buildbot/grid?branch=5.1-release&category=package|5.1-release]]) ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.2&category=package|branch=5.2]] ¶
([[http://buildbot.askmonty.org/buildbot/grid?branch=5.2-release&category=package|5.2-release]]) ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.3&category=package|branch=5.3]] ¶
** [[http://buildbot.askmonty.org/buildbot/grid?branch=5.5&category=package|branch=5.5]] ¶
# The **[[release-coordinator|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) ¶
# The release coordinator notifies the following of the tag, the build number ¶
(see Note 6, below), and that the tree is ready for release: ¶
## The Maria Docs team ¶
(<<code>>maria-docs [at] lists (dot) launchpad (dot) net<</code>>) ¶
## The Maria Dev team ¶
(<<code>>maria-developers [at] lists (dot) launchpad (dot) net<</code>>) ¶
## The community team (<<code>>community [at] askmonty (dot) org<</code>>) ¶
# The Builbot buildslaves build packages and the release coordinator informs ¶
the Docs team when they are ready to be copied over ¶
# 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. ¶
# Someone on the release team creates the Debian and Ubuntu repositories then ¶
uploads them to osuosl. (See note 4) ¶
# Someone on the release team signs the RPM packages and then uploads them to ¶
osuosl. (See note 5) ¶
# Once all files are uploaded to osuosl, run the trigger script, to push the ¶
new files out to the public server:<<code lang=bash inline=false>>./trigger-mariadb<</code>> ¶
# Packages get uploaded to mirrors (this happens automatically as soon as the ¶
above trigger script is run) ¶
# The Docs team imports the new release into the ¶
[[http://downloads.askmonty.org|MariaDB Download system]] ¶
# The Docs team fills in, edits, and finishes the release notes and changelog ¶
pages and removes the <<code>>unreleased<</code>> template (if it is there) ¶
about the information on the page being about an unreleased version ¶
# 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">>}}} ¶
# The Docs team preps updates to other documentation as necessary ¶
# The [[release-coordinator|Release Coordinator]] updates the status of all bugs fixed in the release to "Fix Released" in [[https://bugs.launchpad.net/maria|launchpad]] ¶
# Once all packages have been mirrored, the Docs team activates the new release ¶
on the [[http://downloads.askmonty.org|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. ¶
# Announce the release ¶
##lower-alpha 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). ¶
## The Docs team updates (if applicable): ¶
*** the [[http://askmonty.org/downloads/feeds/releases/|releases RSS feed]] ¶
*** the [[http://askmonty.org/wiki/Template:MariaDB_Download_Banner|MariaDB Download Banner]] ¶
*** the banners on http://mariadb.org, http://askmonty.org, and http://kb.askmonty.org ¶
## An IRC op (Daniel, etc...) updates the topic in #maria ¶
## The community team announces the release on the ¶
[[http://mariadb.org|announce]] and ¶
[[http://launchpad.net/~maria-discuss|maria-discuss]] ¶
mailing lists, and via ¶
[[http://askmonty.org/blog|blogs]] and other methods ¶
## For major releases, send the release announcement through PR Newswire (Colin does this now) ¶
¶
<<style style="font-size:0.8em;">> ¶
== Notes: ¶
# **Tagging releases:** Here is an example bzr command line to make the tag:<<code lang=bash inline=false>>bzr tag --revision=3402 --directory
# **Creating md5sums:** Here are the commands I (Daniel) use to create the md5sums of a release:<<code lang=bash inline=false>>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 ¶
<</code>> ¶
# **Obtaining info for Changelog and Release Notes:** A raw log of all changes can be obtained from bzr as follows:<<code lang=bash inline=false>>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 ¶
<</code>> ¶
It is then a manual process to read through this and convert it into some kind ¶
of human-readable release notes... ¶
# **Creating Debian and Ubuntu Repositories:** Prior to doing this, branch mariadb-tools from Launchpad:<<code lang=bash inline=false>>bzr branch lp:mariadb-tools/trunk mariadb-tools<</code>>(or update a previously branched copy with "bzr pull"). ¶
##lower-alpha.1 Copy the build over to a working directory. ¶
## Run the following commands:<<code lang=bash inline=false>>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 ../ ¶
<</code>> ¶
## On the osuosl mirror, move the old repo/5.x dir and upload the new repo to repo/5.x<<code lang=bash inline=false>>scp -r repo osuosl:data/repo/5.2<</code>> ¶
## Clean up your working directory by removing the local repo and build-{{{###}}} directories ¶
# **Signing RPM Packages:** ¶
##lower-alpha.1 Prior to beginning, ensure that you have a .rpmmacros file with the following contents (replace '<keyname>' with the actual key name):<<code lang=bash inline=false>>%_signature gpg ¶
%_gpg_path ~/.gnupg ¶
%_gpg_name <keyname> ¶
%_gpgbin /usr/bin/gpg ¶
<</code>> ¶
## Copy the {{{build-###}}} directory over to a working directory. ¶
## Sign the files:<<code lang=bash inline=false>>rpm --addsign $(find build-### -name '*.rpm')<</code>> ¶
## cd into the build dir and regenerate the md5sums: <<code lang=bash inline=false>>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 ¶
<</code>> ¶
## Upload the files to the primary mirror:<<code lang=bash inline=false>>release="mariadb-5.2.7" ¶
for dir in $(ls -d *rpm*);do ¶
scp -r ${dir} osuosl:data/${release}/ ¶
done ¶
<</code>> ¶
# **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: ¶
##lower-alpha.1 Look at the columns ¶
[[https://buildbot.askmonty.org/buildbot/grid?branch=5.2&category=package|here]]. ¶
The headers across the top list the branch (5.2 in this case) and the ¶
revision numbers for the last five builds. ¶
## 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 ¶
[[http://bazaar.launchpad.net/~maria-captains/maria/5.2/changes/|Launchpad]]). ¶
## Select one of the builds in the correct column and look for the property ¶
"tarbuildnum". This is the {{{build-###}}} directory you want. ¶
<</style>> ¶