Here are my current plans for implementing the EIM API for the sharing parcel.
The first pieces to be implemented will be the layers relating to data
types and type mapping:
* sharing.typedef()
* sharing.BytesType
* sharing.TextType
* sharing.IntType
* sharing.DateType
* sharing.LobType
* ...and various APIs for performing type registration, conversion and
introspection
Second will be the record types, fields, and APIs relating thereto:
* sharing.Record
* sharing.typeinfo()
* sharing.field()
* sharing.NoChange
* predefined record types for exchanging record type information
* "diff" or "delta" records
* ...etc.
The third and hopefully final stage will implement sharing.Schema and all
the matters associated therewith, including key lookups and inter-record
dependency management. The idea is that by doing the above-listed things
first, there will be a basis for doing development of the "wire format" for
exchanging records between Chandler and Cosmo. That way, work on the
format itself won't be blocked any more at that point, and can proceed in
parallel with the development of the "mapping" layer.
The documentation will also be produced in stages. The initial doctests
used to drive construction will probably assume some existing knowledge of
EIM concepts. Later, the docs will likely split into a "Parcel Developer's
Guide to Supporting Sharing and Backup/Restore" and a "Sharing Developer's
Guide to the EIM API", for the two different audiences that will be using
these APIs.
There is still a lot of detail-level design to do, as all of my proposals
so far have been high-level structural sketches. My current target is to
complete the first layer (and part of the second) in the next two weeks,
after which I will be away for a week (17th-23rd).
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "chandler-dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/chandler-dev