Differences between revisions 2 and 3
Revision 2 as of 2009-03-20 08:30:30
Size: 2328
Editor: DavidReiss
Comment:
Revision 3 as of 2009-09-20 23:47:11
Size: 2328
Editor: localhost
Comment: converted to 1.6 markup
No differences found!

InstantReleases

What?

Instant releases are unofficial release-style tarballs that are automatically produced after (almost) every commit. These are source tarballs, not builds.

Why?

Instant releases combine the benefits of the SVN HEAD and official releases.

  • The SVN HEAD and instant releases are both the latest and greatest Thrift code (within a few minutes). Release tarballs are only produced periodically.
  • Release tarballs and instant releases include a lot of generated files. The SVN HEAD requires a lot of extra tools to build.

Specifically, instant releases (and normal release tarballs) don't require libtool, autoconf, automake, pkg.m4 (from pkg-config), lex, or yacc. (Though runtime libraries for the latter two might still be necessary.)

Where?

When?

An instant release should be ready within 10 minutes after a change has been committed to the Subversion repository.

Who?

dreiss set this up. You can email thrift-dev with questions.

How?

The following programs are used to generate files in the instant releases:

  • autoconf-2.63
  • automake-1.10.2
  • bison-2.4.1
  • flex-2.5.35
  • libtool-2.2.6a
  • pkg-config-0.23

The scripts relating to the instant releases began here: http://gitweb.thrift-rpc.org/?p=thrift-meta/.git;a=commitdiff;h=f63450c

Storing all of the tarballs on my VPS could get expensive, so I decided to store the contents of the tarballs in Git and use gitweb's snapshot (git archive) feature to provide tarball access. Since most of the files in the releases are already present in the trunk and the rest are identical or nearly so between releases, very little extra space is used. I represent each release as a merge between the trunk commit it is based on and the previous instant release, even though the previous release is not used at all. The benefit of this approach is that most instant releases are empty diffs, so change stick out clearly. The density of the merges makes the instant release branch look really gross in gitk, so I stashed it in refs/misc/instant so git clone wouldn't pull it down and it wouldn't annoy people.

InstantReleases (last edited 2009-09-20 23:47:11 by localhost)