It’s been way too long in the making, but v2.0 of cql-rb is very nearly here. I released the first release candidate yesterday, and the final version should be released this week.
The reason it has taken so long is twofold: first I wasn’t sure enough that I’d found all the bugs, but didn’t have the time to take it through the process I usually use before releasing a version, and after I had come that far I wanted to be sure about the public API.
What I do to satisfy myself that a new version is completely stable and reasonably bug free is a blog post I’ve been meaning to write for a while, but suffice to say that I don’t take it lightly. v2.0 is a big release, there’s a ton of new code and feature support, and lots of things have had to changed to accommodate supporting two protocol versions at the same time. The code that does the initial connection and peer discovery was also heavily refactored, it’s by far the most complex part of the driver, but now it’s at least possible to understand it again. Being confident that you’ve weeded out most of the bugs after such a big change requires more than just some integration tests.
Since bumping the version to a new major means the possibility of making backwards incompatible changes I also wanted to make sure I took full advantage of that and removed things I didn’t want to support, dropped deprecated features, and changed things I wasn’t too happy about. In the end I decided on keeping the API backwards compatible with v1.2, and just remove the deprecated features from the documentation. Some pieces that may have accidentally been in the public API documentation have also been marked as private.
Once v2.0 is released I will start working on new features, and I should probably get going on supporting Cassandra 2.1 features like user defined types.