[Zope] Upgrading a product

rgines@purina.com rgines@purina.com
Wed, 15 Dec 1999 11:06:10 -0600


Ran into an interesting thought yesterday which I have not seen addressed
in this discussion list.

Let's say that I create a Zope product and create a distribution for it
calling it version 1.0.

All is well and good, this product becomes successful and it is in use
across hundreds of Zope based web servers.

Six months go by and through the assistance of my Open Source friends and
my own coders, we have a brand new awesome version which we are calling
version 2.0.

This new version is installed and when  a Zope server is restarted; all is
well.

Let's say the product allows you to create a container (product folder)
which stores all of the primary methods and controls customized to your
particular installation.   In the container are the objects of interest
with their own sets of properties.

Here is the question.   Our new version has new methods, properties and
controls for the container and new objects for the container now have new
properties to them.    So that users of this product do not need to start
from scratch, how would the old (version1) objects get upgraded to match
new objects created under our new version 2 of the product?  I can think of
a few methods that all seem very ugly to me.   I was hoping that someone
has thought through this and may have some suggestions.

Thanks a bunch.