Just a quick note to remind anyone interested in the desktop rearchitecture branch, that I post/blog library-related design notes to the PEAK mailing list at:

  http://www.eby-sarna.com/mailman/listinfo/peak

For example, yesterday I wrote up some thoughts about object-relational mapping with the Trellis here:

  http://www.eby-sarna.com/pipermail/peak/2008-February/002862.html

I send these posts to the PEAK list as they are of general interest to other PEAK users, even though they often cite Chandler requirements as a driving force in design. (Also, they are usually unstructured brain dumps of my thoughts, and so less suitable for posting here. When there are significant new releases, however, I will usually post announcements here.)

Currently, I'm working on the storage layer for the rearchitecture branch, specifically investigating ways to map EIM (or "EIM 2") record schemas onto SQLAlchemy table schemas, and ways to use SQLAlchemy's mapping strategies for possible semi-automatic conversion between objects and EIM records. I'm also working on designing what might be considered an EIM query/update API, to wrap SQLAlchemy and also serve as a basis for certain kinds of non-persisted application needs. (For example, displaying generated recurrence objects that might not be actually stored in the underlying database.)

The expected programming model for storage will be to define an application class' EIM schema, and appropriate translation code (maybe in the form of an SQLAlchemy-like mapping specification). Thus, all plugins will automatically have a shareable and dump/restorable schema, since they will need an EIM schema to work at all. :)

And, as a side effect of having the mapping+EIM schema, it should then be possible to express queries as Python list comprehensions (or genexps) in the form of strings, so application level code won't need to deal in indexes and other such things. Instead, SQL-level indexing and any other storage-specific optimizations will be specified via "hints" attached to the EIM schema.

As the specification and design progress over the next few weeks, I'll be posting the details to the PEAK list. Again, keep in mind that such postings are highly stream-of-consciousness and shouldn't be considered official design documents, feature commitments, etc. at this time. Any "stable" designs, announcements, etc. will still be sent here.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev

Reply via email to