In order to ensure the monkey patches work with the correct version how about adding a line like this in the patch files:
gem('a_gem', '~> 1.2.0')
I think it is a good way of ensuring to right version is used without adding it as a gem dependency, what do you think ?
I already had one or two times problems with using a gem newer than the patch.
em-synchrony is pretty cutting edge, so I don't think too much legacy support is in order, but it's also not going to be able to keep up, at all times, with the gems it's monkeypatching. I'm all for gracefully locking it down to the latest known good version, and trying to keep it working for the most popular release span if possible. As this project matures and the projects it extends settle down, maybe it'll be easier.
That exactly how I see it, I do not see em-synchrony able to support any gem version but by stating clearly what gem is supported I am sure many problem will be avoided.
Yeah, I think this is sane. We can update the require blocks to do a version lock, and we should also update the rescue messages as well to indicate how to install the specific version.
Just for reference, some good discussions on gem vs require:
"Merging" with #97 - similar discussions in there.
Also, need to fix the mongo spec as load order, as discussed in #97.