[rabbitmq-discuss] A heads up: amqp gem 0.7.2 and 0.8.0.RC14 releases in the next few days

Michael Klishin michael.s.klishin at gmail.com
Sun Jul 17 03:02:20 BST 2011


I just want to give the community a heads up: I am going to release amqp gem
0.7.2
release on Sunday and 0.8.0.RC14 will follow in the next few days.

0.8.0.RC14 is fully backwards compatible with RC13 but amq-client library
will need an upgrade to the 0.7.0 (will be released right before amqp
0.8.0.RC14). So when upgrading, make
sure to update your Gemfile or .gemspec dependency on amq-client if
necessary.

0.8.0.RC14 introduces a number of exciting features related to application
recovery from network & broker failures:

* A number of events/callbacks and API methods useful to developers who want
to implement their own recovery strategies.
* Automatic recovery mode that makes it very easy to re-declare all
entities, bindings & consumers when AMQP connection recovers from
  a network outage or broker failure: it is opt-in (not opt-out) and will
make recovery significantly simpler for "the 80%" of apps.

(Not yet compete) documentation of these features is available at
http://bit.ly/amqp-gem-error-handling-and-recovery


There are also other improvements:

* RC14 will no longer have pre-release gem dependencies. This should make
life easier for RubyGems 1.3.7 users, most notably those running on Heroku.
   RubyGems 1.3.7, also know as "the Internet Explorer 6 of the Ruby
ecosystem", has broken pre-release version comparison logic and considers
   version 0.7.0.pre9 to be more recent than 0.7.0.pre35, for example.

* Ability to register more than one consumer per queue on the same channel.
Historically AMQP:::Queue#subscribe only allowed to register one consumer.
  This is still being the case for backwards compatibility but you now can
easily instantiate AMQP::Consumers directly.

* New bitset-based channel id allocator. Previously apps that open & close
channels aggressively could hit connection max channel limit
  pretty quickly because channel id was a growing integer. Now channel id
are allocated from a pool of integers, just as in the RabbitMQ Java client.

* Broker capabilities introspection API. See
http://www.rabbitmq.com/extensions.html#capabilities
* Support for arrays in attribute tables (for example, message headers)

As usual, we keep improving my favorite amqp gem feature: documentation (
http://bit.ly/amqp-gem-docs).

* Documentation is now being proof-read and edited by Chris Duncan, the
creator of the bunny gem.
* Initial bits of the Migration guide 0.6.x and 0.7.x to 0.8.x (
http://bit.ly/amqp-gem-080-migration-guide)
* Initial bits of the Patterns & Use Cases guide (
http://bit.ly/amqp-gem-patterns) that explains how to implement many
patterns from the Enterprise Integration Patterns book (
http://www.eaipatterns.com)
* TLS guide
* Numerous small improvements to all other guides & code examples.

RC14 will be the second to last RC before 0.8.0. RC15 will bring up support
for Ruby 1.8.7-p249 (this particular patch level) that has a bug that
seriously affects amqp gem.
Working around it will take a moderate refactoring on our side. Learn more
in the FAQ at the bottom of
https://github.com/ruby-amqp/amqp/blob/master/README.md

Have a great sunny Sunday.
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20110717/e4b3de04/attachment.htm>


More information about the rabbitmq-discuss mailing list