[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
------------------------------------------------------------------------
|