A heads up: amqp gem 0.7.2 and 0.8.0.RC14 releases in the next few days

3 views
Skip to first unread message

Michael Klishin

unread,
Jul 16, 2011, 10:02:20 PM7/16/11
to ruby...@googlegroups.com, rabbitmq...@lists.rabbitmq.com
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.
Reply all
Reply to author
Forward
0 new messages