From erik at hollensbe.org Sat Jul 26 00:09:23 2008 From: erik at hollensbe.org (Erik Hollensbe) Date: Fri, 25 Jul 2008 21:09:23 -0700 Subject: [ruby-dbi-users] ANN: Ruby/DBI 0.4.0 now in alpha test Message-ID: <200807252109.23668.erik@hollensbe.org> 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 0.4.0. 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 complexity. - 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: http://rubyforge.org/tracker/?atid=967&group_id=234&func=browse -Erik