Andreas Jung wrote at 2007-9-22 09:00 +0200:
--On 22. September 2007 07:59:48 +0200 Dieter Maurer <dieter@handshake.de> wrote:
During our latest discussion to put my most important Zope2 products into a public repository, I have promissed to publish them on PyPI instead. Yesterday, I started work to fulfill this promiss and carefully read the PyPI related documentation -- to find out, that it is not easy to publish Zope2 products.
As the name suggests, PyPI is for Python packages. And Zope2 products rightfully are no Python packages: .... My current ideas towards a solution:
We define a package prefix for Zope2 products, e.g. "zope2.products". Zope2 products are published to PyPI as "<prefix>.<productname>".
We extend the Zope2 configuration with an option "additional-products" which lists the products used by the instance that are not at a standard place -- such as those installed by "setuptools"
I came across a Plone products GSXML that is shipped as egg and configured through a slug. See the docs at
<http://plone.org/products/gsxml>
Isn't that a suitable solution?
What does "configured through a slug" mean? Looking at the page referenced above, I could not recognize how "gsxml" is made available as a Zope2 product. Looking into the egg, it looks like a standard package and not like a Zope2 product. Let me clarify my wish: I think we need an instance specific way to tell Zope 2 that it should treat something installed via "setuptools" as an additional (Zope2) product (without treating also other things laying around there as products as well); especially during startup look for an "initalize" function and call it -- beside potential Five related magic performed for Zope 2 products (such as looking for "*.zcml" files). The "zope2.product" prefix proposed above is not essential. It only tells people looking into "site-packages" that the content of this package is supposed to be used as Zope 2 products and not as standard Python packages. -- Dieter