So you don't get anywhere without big goals right? I mean, I would
have never started DataMapper without thinking we could pull off
something great. :-)
So here's the idea: DataMapper goes 1.0 by MWRC.
This means:
* We need at least one of the three styles of ClassicMigrations to
make it into trunk, we need to document it, we need a page on the
website, and it needs to be relatively feature complete.
* We need full Transaction support. I think Paul has taken the lead on
some of this, getting in a patch to DataObjects to make it happen. We
just need to get it the rest of the way... I'm thinking
Adapter#connection could call #create_connection when not in a
transaction, and return the current transaction when in one.
* DataObjects needs some love. Lets get those paths fixed! Let's get a
Windows binary! Lets get rid of SWIG! Let's get rid of the mysql-dev
package dependency! I know there's some experienced C guys out there,
let's make it happen!
* We need to swap in the new Query class. It'd be nice to have the OR
condition support that's been chatted up lately...
* We need to use the Property instances generated by
DM::Persistence::property, and not access the Table#columns directly
anymore. This will lead to letting us...
* Make one Table instance for each table in the database. Right now
you have an instance for each mapped class, along with an instance
that gets returned when you look it up by String. This is extra memory
overhead (granted, not a ton, but still), slower performance (ditto),
but most of all, it just makes things more complex and makes it harder
to conceptualize the *runtime* internals of DM.
* Associations! They suck :p I mean, the code just isn't well factored
or consistent right now, and I've killed their performance. Let's
clean 'em up and get 'em back up to speed. Make the internals of
TypedSet use an Array, not a SortedSet, it's too slow. :-(
* Optimistic Locking: I'm against automatic locking, but value locking
with property :lock => true, and row-locking with
property :row_version, :string are definitely needed.
* Sharon Rosner and Ezra Zygmuntowicz were nice enough to join forces
on the Assistance gem (
http://rubyforge.org/projects/assistance),
let's beef it up! Get it used in DM, get rid of our own Inflector,
etc.
There's lots of great work that has gone into DM so far, but it's
leaking a bit at the seams right now. Let's patch it up, iron the bugs
out and get it out the door! I'm going to be spending every minute I
can on this in the coming month, but I need your help!
w00t!