Upgrading Zope
Zope 3 Is Not Zope 2
In the Zope world, we take it for granted that everybody knows this, but maybe not :-)
You cannot trivially upgrade a Zope 2 site to Zope 3.
Zope 2 is still maintained and developed and will be for years to come.
See Zope2OrZope3 for more information.
Very Old Zope 2?
See http://www.zope.org/Products/Zope/swpackage_releases for the complete collection of Zope releases.
If you are upgrading a version older than 2.2, read http://www.zope.org/Products/Zope/2.2.0/upgrading_to_220
If you are upgrading a version older than 2.4, read: http://www.zope.org/Products/Zope/2.4.0/Zope24MigrationGuide.html/view
It may be advisable to upgrade in stages. Upgrading "third-dot" releases (e.g. from 2.7.0 to 2.7.1) is usually trivial and safe, so at each stage you should upgrade to the highest "third-dot" release available. For example, if you are running Zope 2.3.0 and want to upgrade to Zope 2.7, you would upgrade in five stages: first 2.3.3, then 2.4.4, then 2.5.1, then 2.6.4, then 2.7.8; and after each upgrade you would verify that all is well. (Automated functional tests would be very very useful here, using e.g. Zelenium.) See below about always using the right version of Python for your upgrade.
Use the Right Python Version
Be aware that each Zope 2 release recommends (and sometimes requires) a very specific version of Python. For example,
- Zope 2.9-2.10 requires Python 2.4 (ideally 2.4.4)
- Zope 2.7-2.8 requires Python 2.3 (ideally 2.3.5)
- Zope 2.4-2.6 requires Python 2.1 (ideally 2.1.
- Zope 2.0-2.3 requires Python 1.5.2
It is highly recommended (for stability and security) to not use any other version of Python. If you install a binary version of zope using e.g. the Windows installer, it includes the right version of python.
Products
The most likely source of trouble when upgrading an old Zope 2 site is third-party Products.
You will want to make a list of what products are installed, and if possible verify that they are all really being used (no sense wasting effort on something that somebody installed for an experiment five years ago and then forgot about). add advice for newbies how to do this
Google each product and find out what versions have been released since the version you have. Conscientious product authors will document what versions of Zope their product has been developed and tested with. Use this information to help decide what version of Zope to upgrade to. For example, if you rely on a third-party product that is no longer actively developed and last known to work with Zope 2.6, you will want to know that and test it before deciding for sure that you're upgrading to Zope 2.9. Often, it will still "just work" - but you will be happier if you make sure.
The actual upgrade procedure
- install proper Python (if changed)
- install new version Zope source
- backup instance (with Data.fs and all products etc. - all of it!)
- edit the paths in INSTANCE_HOME/etc and INSTANCE_HOME/bin to point to the new Zope - or - some people prefer to make a new instance and copy over the old Data.fs and all the products
- start up the changed instance with ./zopectl fg and have fun with the stuff that broke (which usually isn't very much)
Need Help?
The Mail lists are a great resource whenever problems crop up, and always remember to give complete version information (for python, zope, OS, and any relevant third-party stuff you rely on). Especially when you are running very old versions, we will need to know that to give you correct advice.
Just as important, rather than "it doesn't work", give complete information about problems - especially a python traceback if you can get one.