blt/rabbit_common — comment on commit f5d513f9c1016977f6d6d56f74dc9803e126d681
File:  line 0
By blt:

> One thing that concerns me is that these are the unaltered sources from the RabbitMQ distribution.

That is a problem. The RabbitMQ folks have a fairly closed development model, which is causing problems in the Erlang AMQP client ecosystem: there are many forks of the RabbitMQ source libraries available in public git repositories (and, thus, usable through rebar) but all in various states of disrepair. Libraries that require the forks--gen_bunny or bunny_farm, which are linked in the [client list](http://www.rabbitmq.com/devtools.html#erlang-dev)--all use out-of-date or otherwise idiosyncratic forks and are, themselves, slowly rotting. Moreover, as my patch addresses, the libraries coming out of RabbitMQ don't hit the sort of coding standards you might expect in foundational libraries.

The _ultimate_ solution is to convince RabbitMQ to put their client libraries in a public repository and accept community contributions. An interim solution would be to produce _the_ community fork which all other clients can base themselves on, sufficient to build a client library of similar caliber to other language's, like, say, [ruby-amqp](http://rubyamqp.info/). That, or marginalize RabbitMQ's client libraries entirely and implement a new client just to the protocol, agnostic to the underlying server implementation.

Not great options. I'm shooting for the interim solution now: while I'm going to reach out to the RabbitMQ folks, having a well-maintained community fork would strengthen the argument that they should open up a bit, have them accept patches etc. Yours was the most up-to-date community fork and I'm looking to fix up bunny_farm based on top of your fork.

Probably the most simple strategy for managing changes from upstream is to pop each new release into a branch, patching manually upward. That is, generate a patch from branches v2.7.0-community to v2.7.1 and apply the patch selectively to create v2.7.1-community. Base branch master as desired.

Not ideal, and I _completely_ understand if you have no interest. Thoughts?

---

Forgive me if this is a bit of a ramble. I believe I might be coming down with a seasonal illness.