At 12:06 PM 10/12/2005 -0700, Bryan Stearns wrote:
I've got some concerns about this proposal: the ability to upgrade seems centered around being able to upgrade running Python code on-the-fly,

Code reloading is an internal development feature that has been requested by John and Donn. In implementation terms, it's entirely unrelated to the rest of the issues. As you may recall, I listed four different issues I would talk about; these could be subgrouped into "reloading issues" and "schema issues", with the former having to do with on-the-fly upgrades, and the latter being independent (and implicitly assumed to be operations requiring a restart).

Frankly, the idea of changing the schema with Chandler running (aside from adding new classes, which already works) never occurred to me as a requirement or even a possibility.


as well as to upgrade Chandler's schema without quitting Chandler. These abilities appear to complicate the solution you've chosen,

Not so. I simply commented on the fact that there are a few types of schema change that work *now* without quitting Chandler. I never stated this as a requirement, and it never was a requirement. I was simply enumerating the types of changes that can happen and their current effects on the system as it exists today.

No part of the schema evolution mechanism I discussed called for any sort of on-the-fly upgrading. For all practical purposes, you can cut my post in half and consider the items relating to updating code and UI items, entirely separately from those involving schema and user data items. If you do that, it should be clear that I'm in agreement with you: on-the-fly schema upgrading is not required. I merely mentioned that adding new classes on-the-fly is in fact possible now, without comment on the usefulness or desirability of that feature.


Instead, I'd suggest a much simpler strategy is appropriate:
- Build a mechanism for schema upgrades that runs against a closed repository; it could run as a separate tool, or at Chandler startup time when Chandler detects an older repository.

The portion of my post that deals with schema evolution and user data upgrades actually assumes that this will be the approach, so this suggestion doesn't change anything in my post or reduce the essential complexity of the problem in any way.


- Take advantage of John's suggestion to have the upgrade mechanism be cognizant of our ability to discard and reload UI blocks completely; only worry about upgrading content item schema and instances, and preference/account settings.

As it happens, I didn't even get into this subject at all, so your suggestion also doesn't reduce any of the complexity in the issue I did write about. UI evolution in the presence of user preferences is an entirely separate problem, caused by the conflation in CPIA between what's effectively "code" (or template) and what's effectively "data" (or parameters), placing them in the same item instead of different items. (The need to have any block copying in the first place, is also a symptom of this confusion.)

The topic of UI upgrades does indeed fall under my theme of "upgrading", but my understanding was that we were going to assume that UI location preferences would be lost under upgrade for the time being, so I chose not to delve into this at the present time.

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

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

Reply via email to