How to create a release

This guide will walk you through the process of creating a release candidate. Once the release candidate has passed a successful vote you can then publish the release

Preparing the Release

  1. Create a branch from TRUNK to branches/N.x where N is the version you are attempting to release. For instance, 0.5.x or 1.2.x.
  2. Check out the new branch locally.
  3. Update Version Info:
    1. configure.ac's [thrift] variable to the version you are releasing
    2. update language related files that contain version info, see How To Version
    3. commit these change
  4. Generate the contents of the CHANGES file.
  5. Run ./bootstrap.sh && ./configure
  6. Run "make dist". This should produce thrift-[version].tar.gz in the root of your project.
  7. Change the name of thrift-[version].tar.gz to thrift-[version]-rc[release candidate num].tar.gz. The release candidate numbers should start at zero.
  8. Sign the tarball: gpg -ba [tarball.tar.gz] > [tarball.tar.gz].asc
  9. Compute the sha1 and md5 hashes of the tarball: sha1 [tarball.tar.gz] > [tarball.tar.gz].sha1 && md5 [tarball.tar.gz] > [tarball.tar.gz].md5
  10. Copy the tarball, signature, and hashes to somewhere public. Recommended place is release managers people.apache.org:~/public_html folder
  11. Write an email to thrift-dev mailing list with the following information:
    1. The SVN branch that contains the code you're releasing
    2. The link to download the tarball and signature
    3. The md5 and or sha1 hashes
    4. Language formally proposing that the tarball be accepted as the release at such-and-such version
  12. After this vote has been open for 72 hours, check if it has passed.
  13. If the vote has passed, congratulations, you have a valid release. Now you are ready to publish the release

Creating a binary version of thrift compiler for Windows

  1. unpack release tarball: tar -xzf thrift-[version].tar.gz ; cd thrift-[version]/
  2. cross compile using i586-mingw32msvc
    1. sh contrib/mingw-cross-compile.sh
    2. cp thrift.exe thrift-[version].exe
  3. Sign the exe: gpg -ba [thrift-[version].exe] > [thrift-[version].exe].asc
  4. Compute the sha1 and md5 hashes of the tarball: sha1 [thrift-[version].exe] > [thrift-[version].exe].sha1 && md5 [thrift-[version].exe] > [thrift-[version].exe].md5