[Zope-dev] How to publish Zope2 products on PyPI

Dieter Maurer dieter at handshake.de
Sat Sep 22 05:32:56 EDT 2007

Andreas Jung wrote at 2007-9-22 09:00 +0200:
>--On 22. September 2007 07:59:48 +0200 Dieter Maurer <dieter at handshake.de> 
>> 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
>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.


More information about the Zope-Dev mailing list