[Modeling-users] [Core] Release 0.9pre2
Status: Abandoned
Brought to you by:
sbigaret
From: Sebastien B. <sbi...@us...> - 2003-02-23 21:38:40
|
Hi all, At last, it is there! It contains important bug-fixes, plus the implementation of feature request "Nested EditingContexts" #617997: https://sourceforge.net/tracker/index.php?func=3Ddetail&aid=3D617997&gr= oup_id=3D58935&atid=3D489338 This feature makes it possible to have ``sessions''/transactions within the object world itself: a nested EditingContext would either commit or cancel a set of changes to its parent, in a transactional way. This brings 3 of the ACID properties available at the object level: Atomicity, Consistency and Isolation. This is 0.9pre2, not 0.9, because: 1. while committing the changes I noticed that two bugs might exist in a very specific situation --i.e. when an object is inserted then deleted in an EC, provided that ec.saveChanges() is not called in the meantime. These have never been triggered in real-life applications I know ; however I need to write tests and fix them before 0.9 2. The documentation for nested editing contexts still has to be written. In the meantime, you can refer to tests/test_EditingContext_ParentChild.py for example of use. This release is in production for about 4 months, and it has been observed that it is stable --I will also document the exact configurations for the applications in production along w/ 0.9. Please read carefully the changelog, it contains important informations, such as the modification of the behaviour of EditingContext.objectsWithFetchSpecification(). Last, you'll now find the API for Modeling and Notification frameworks on the w3site http://modeling.sf.net, generated by epydoc. Best regards, -- S=E9bastien. ------------------------------------------------------------------------ 0.9-pre-2 (2002/02/23) --------- This release is known to be stable in two different production environments for about 4 months now. Full description of these environments will be publicly released with v0.9. * Feature Request #617997: "Nested EditingContexts" Added/Implemented: isaChildOf(), saveChangesInEditingContext() Modified: faultForGlobalID(), initializeObject() Documentation for this feature will be available when 0.9 is released. In the meantime users can refer to tests/test_EditingContext_ParentChild.py for example of use. While committing the changes I noticed that two bugs might exist in a very specific situation --i.e. when an object is inserted then deleted in an EC, provided that ec.saveChanges() is not called in the meantime. See the announce on sourceforge's mailing-list for more details. 0.9-pre-1 (2002/02/23) Project milestone, CVS-tagged but no public tarb= all --------- * EditingContext and related changes in DatabaseContext: [committed in EC v1.15 and DBContext v1.13] - Fixed deleteObject(): it failed when called on an previously inserted object (inserted, but not saved): 1. _insertedObjects was not examined, only _pendingInsertedObjects, and 2. deleting an inserted object wrongly registered it in the list of deleted objects, instead of simply forgetting it. - Updated docstrings for (all)inserted/updated/deletedObjects() - Changed: objectsWithFetchSpecification(): the result set now includes inserted objects even if they have not been saved yet ; it also does not include any more the objects that have been marked for deletion. This makes this method reflect the changes made in the EditingContext rather than the sticking to the database state. Similarly, DatabaseContext.objectsWithFetchSpecification() does NOT take anymore about deleted objects in the calling editing context. This participates of the same logic: a DBContext has no internal state and should not be aware of any changes made in an ObjectStore somewhere higher in the ObjectStore hierarchy. cf.: test_01b_objectsWithFetchSpecification_and_insertObject in test_EditingContext_Global - GlobalIDChangedNotification is now correctly used for notifying observers that an inserted object as been saved, thus has received a KeyGlobalID in remplacement for its TemporaryGlobalID. Changes made in: - EC.recordChanges(): register the EC as an observer - EC.handleNotification() - DatabaseContext.finalizeCommitChanges() posts the notification, when appropriate, instead of doing the real job on behalf of the EC. - Implemented: ownsObject() * CustomObject: fixed snapshot(): now raises ObjectNotRegisteredError when the object is not registered in an EditingContext, or if at least one of the objects it is in relation w/ is not known to the object's EC. + Implemented: updateFromSnapshot() * doc/ + HomePage: removed the frames and replaced them with a html table + Added API for Modeling and Notification (online+tarballs), generated by epydoc ------------------------------------------------------------------------ |