You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by Apache Wiki <wi...@apache.org> on 2009/03/20 09:28:08 UTC

[Thrift Wiki] Update of "InstantReleases" by DavidReiss

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Thrift Wiki" for change notification.

The following page has been changed by DavidReiss:
http://wiki.apache.org/thrift/InstantReleases

New page:
= InstantReleases =

== What? ==

Instant releases are '''unofficial''' release-style tarballs that are
automatically produced after (almost) every commit.

== 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? ==

 * http://instant.thrift-rpc.org/
 * http://gitweb.thrift-rpc.org/?p=thrift.git;a=shortlog;h=refs/misc/instant;hb=HEAD

== 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.