[ruby-dbi-users] ANN: Ruby/DBI 0.4.0 now in alpha test

Erik Hollensbe erik at hollensbe.org
Sat Jul 26 00:09:23 EDT 2008

I'm pleased to announce that our next release is on the horizon.

Ruby/DBI 0.4.0 is a very ambitious release, and requires extensive testing. 
While I would love to have the resources to test Ruby/DBI against every 
supported environment imagineable, I don't. Not to mention, I imagine there 
are plenty of things that users like you use everyday that aren't tested as 
well as they should be.

Please note that DBDs that do not exist in this package will *not* work as of 
current (OCI8 in particular). Since there are many changes, I will attempt to 
get a OCI8 patch to the project before release, so your DBD will work with 

To get at the code:

git clone http://hollensbe.org/git/ruby-dbi.git
git checkout -b dbi_alpha origin/development

Documentation is lacking but is a requirement before 0.4.0 will reach 
rubyforge. Also, you may notice there are several DBDs missing, as previously 
announced I am limiting the scope of maintainership for DBI proper. If you 
are missing a DBD you use, consider maintaining it independently; not only 
will your application have a fully supported database, but you will have the 
added bonus of being able to strongly influence future development of DBI.

There are still a few missing features. Type coercion is currently forced on 
and troublesome to turn off,  native binding APIs are not being leveraged 
(they never were), and several more antiquated features such as Tracing, the 
Proxy and ODBC DBDs, and the commandline scripts have not been updated to 
work in the new environment. For a full list of what's to be finished before 
0.4.0, there is a file named TODO in the development branch.

So what comes new to 0.4.0? Here's the short list:

- Rubygems support. DBI and DBDs are independently gemmed and otherwise 
packaged, independently tested and able to be independently maintained.

- Type coercion. Recognized types are now coerced to corresponding ruby types, 
both in and out. This includes complex types such as PostgreSQL arrays. 
Binding in general has been significantly refactored, mostly to reduce 

- DBDs honor the spec much more strictly than they used to be. In most cases, 
the spec is enforced inside DBI, providing users a level of consistency and 
DBD developers a way to ensure they are conforming to spec more explicit than 
a document.

- Code cleanup. While there is still a long way to go, most files have been 
broken out into smaller, task-oriented files, making the code easier to read 
and manage. Many of the hairier parts of the code have been refactored to 
ease readability and debugging.

- Tests. More tests generally indicates more stability for common cases. 
Ruby/DBI's assertion count increases daily.

- Reduced scope. Many DBDs were deprecated, either due to better solutions 
(OCI8 DBD for Oracle, f.e.), or to limit the burdens of testing. This allows 
us to make larger changes and manage the impact much better; this only 
benefits the greater good. If you wish to maintain a deprecated DBD, contact 
me off-list.

Thanks for your time; please feel free to contact me privately or here if 
there are any questions. If you test and find bugs, please push them to the 
bug tracker: 



More information about the ruby-dbi-users mailing list