[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
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
More information about the ruby-dbi-users
mailing list