Skip to content
This repository has been archived by the owner on Jun 12, 2020. It is now read-only.

How to make a TokuDB release

RIch Prohaska edited this page Feb 25, 2015 · 22 revisions

Step 1: Rebase to the current version of MySQL and MariaDB

There are new versions of MySQL and MariaDB released about every 2 months. TokuDB requires several patches to the base MySQL and MariaDB code. So, if we want the latest and greatest MySQL and MariaDB, we have to merge our patches into their code. The Rebase TokuDB patches wiki describes how this is done.

Step 2: Tag the relevant github repositories

The source for TokuDB is spread over several github repositories. Each of these repositories is tagged with a tag chosen for the TokuDB release. For example, the tag for TokuDB 7.5.5 is tokudb-7.5.5.

Step 3: Make the release

The make.mysql.bash script is used to build TokuDB from source into a release or debug package.

The mysqlbuild parameter is used by the make.mysql.bash script to identify the git repositories and tags. For example, make.mysql.bash --mysqlbuild=mysql-5.5.41-tokudb-7.5.5-linux-x86_64 will make a community release package of mysql-5.5.41 using TokuDB 7.5.5. make.mysql.bash --mysqlbuild=mariadb-5.5.41-tokudb-7.5.5-debug-e-linux-x86_64 will make an enterprise debug package of mariadb-5.5.41 using TokuDB 7.5.5.

The tokutek.make.mysql.bash script is used to build TokuDB from source into a release or debug package AND upload the packages to an Amazon S3 bucket.

The make.mysql.release.bash script makes the release and debug packages for all of the targets.

We make the release and debug packages on a CentOS 5 machine configured as follows:

  • Build machine: mork
  • Linux distro: Centos 5.9
  • Compiler: gcc 4.7 in devtoolset-1.1
  • Other packages necessary to build MySQL

Step 4: Test the release

The Testing TokuDB wiki describes the overall test plan for a TokuDB release.

Test status is tracked with a spreadsheet. Here is the TokuDB 7.5.5 Test Status spreadsheet.

Step 5: Publish the release

Publishing the release is fairly complicated and deserves its own document. Here it is:

Clone this wiki locally