I still have a website still running on zope 2.10.9 which is functioning flawlessly. However, I decided to try to catch up with evolution. To start with, I installed zope 4.4 and got it up and running.
Please note, I do not want to upgrade my zodb. I also have no interest in Plone. My website gives me a specific type of functionality which is what I want to preserve, not what I have done with it in the past. To provide me that functionality I developed a series of zope products. I do not intend to publish these products. What I want is to hook up these legacy zope products in the new zope machinery of a 4.4 install, but I have no idea how to do that.
Is there any simple example out there that I could use to learn how to do that?
Formerly, Zope required its own extension mechanism (called "Zope products"). Nowadays, it can use standard Python packages for extensions. Any Python subpackage of the (so called) "namespace package"
Products available for your Zope instance is treated as you know this from the former "Zope products". You can use the ZCML directive
five:registerPackage to allow any Python package to be treated as a "Zope product".
The Python documentation contains documents related to packaging/packages.
setuptools to set up and manage (e.g. install, publish, develop) my Python packages. It can publish packages on PyPI, but this is not necessary; it can also install (in a development or production mode) packages locally. I am sure you will find documentation searching for "python setuptools".
I suppose you have already read the Zope 4 documentation. You have learned there that there are different kinds of Zope 4 installations (e.g. "virtual env" based or "buildout" based). How you exactly provide Python packages for your Zope installation depends on the installation type. I use virtual env based installations for Zopes which likely have a short lifetime and "buildout" based installations for Zopes likely to require maintenance for many years ("buildout" facilitates version evolution for the many packages which typically comprise a Zope application).
You will find many product examples on
setuptools related file is
setup.py. Do not install those examples (the installation will execute but not install
setup.py); instead download the source, unpack and explore.
Thanks Dieter, surprising to meet again!
Sounds like a pretty serious job.
I installed zope 4.4 using the zc.buildout option. Would it be ease my learning process to use the pip option?
For both cases, you need to learn how to "package" your product (--> i.e. how to write its
buildout, you use its
eggs (and potentially
zcml) options in incorporate it into your installation; if you use
setuptools for your
setup.py (as I do), you incorporate your product via
python setup.py develop into a "pip" installed Zope. In both cases, your product is integrated in "development" mode: modifications to the product code are seen automatically by Zope (at least after the next restart).
Thanks again. I have been reading and experimenting a lot the last days and can find my way more or less now which feels like being up to date again.
Great to hear that!
If there is any outdated documentation out there and you think you could improve it, please do so.