[rabbitmq-discuss] Plugin filenames

Matthew Sackman matthew at rabbitmq.com
Wed Jun 29 16:19:06 BST 2011


On Wed, Jun 29, 2011 at 10:28:35AM -0400, Greg Swallow wrote:
> The first plugin I try to install is mochiweb.  It fails because the
> mochiweb plugin is named
> mochiweb-1.3-rmq2.5.0-git9a53dbd.ez<http://www.rabbitmq.com/releases/plugins/v2.5.0/mochiweb-1.3-rmq2.5.0-git9a53dbd.ez>.
> 
> I can modify my cookbook to store plugins and their filenames as a
> hash.  However, could you guys consider creating predictable plugin
> filenames in the future?

Ahh, but they are entirely predictable.

Things like mochiweb present a problem because to give them just the
Rabbit version is misleading. Equally we can't just use the upstream
version because in some cases we patch some upstream code. So as a
result we do -$upstream_ver-rmq$rabbit_ver-$hg_or_git$short_hash where
the hash is grabbed from hg or git, as per:

ifdef UPSTREAM_GIT
	echo UPSTREAM_SHORT_HASH:=`git --git-dir=$(CLONE_DIR)/.git log -n 1 HEAD | grep commit | cut -b 8-14` >$$@
endif
ifdef UPSTREAM_HG
	echo UPSTREAM_SHORT_HASH:=`hg id -R $(CLONE_DIR) -i | cut -c -7` >$$@
endif

This allows us to make it clear which versions of upstream projects
we're shipping, which is important for many reasons, not least of which
is the ability to identify the status of bugs uncovered and so forth.

Really, I wonder whether you might be better off trying to semantically
understand http://www.rabbitmq.com/plugins.html such that by scraping
that, you can figure out what plugins are available, and what their
dependencies are. Utterly gross, I know, but I can't think of a better
solution atm.

Matthew


More information about the rabbitmq-discuss mailing list