[Zope3-dev] Packages

Paul Everitt paul@zope.com
Thu, 13 Jun 2002 13:33:46 -0400


R. David Murray wrote:
> On Thu, 13 Jun 2002, Matt Behrens wrote:
> 
>>On Thu, Jun 13, 2002 at 05:31:23PM +0100, Steve Alexander wrote:
>>
>>
>>>That's pretty much what they are in Zope3 too. :-)
>>>
>>>A Package is a directory with an __init__.py in it, right?
>>>
>>>Usually it contains other files too.
>>
>>Humm.  Then I don't understand what "configuration of components"
>>means.  Perhaps I'm just dense :-)
> 
> 
> I would think they'd be installed using disutils, too.  As for
> configuration of components, that means creating zcml override
> files.  Someday ChrisW will write us a GUI for that.... <grin>

I'm interested in this kind of question/answer as well.  In fact, I'll 
accept any of the above.  I'm most concerned in getting jargon and 
expectations right.

Let's say Plone appears for Zope 3.  It contains a number of components 
(presentation, service, adapters, etc.) plus configuration files to 
allow people to adapt and customize it.

There is nothing inside Plone that is actually called "Plone".  Instead, 
you have things like Site, Document, etc. (just being hypothetical).

Thus, Plone is kind of <fill in the blank>.  Plone-2.0.1.tgz is a kind 
of <fill in the blank>.

It's absolutely fine for this to be called "package".  I'm fine if the 
decision is that:

a. Plone-2.0.1.tgz is nothing more than a Python package.

b. Plone packagers use distutils to make Plone-2.0.1.tgz.

c. Plone "customers" download Plone-2.0.1.tgz and run python setup.py 
install to get Plone into Zope 3.

I'm not lobbying for the above, I'm just lobbying for an official list 
similar to the above.  However, I *am* lobbying for the next part.

Zope 2 has some conventions in which you can inspect a tgz and deduce 
some facts from it:

   a. "Product" name, version, and platform all come from the filename.

   b. Version comes from version.txt

   c. Other adhoc standards like install, license, readme,
   help, interfaces, etc.

For this data in Zope 3, I suppose we have the following choices:

   a. None of it matters, it's just a convention.

   b. Use the same as Zope 2.

   c. Use distutils as is.

   d. Use distutils plus PEP 241:

     http://www.python.org/peps/pep-0241.html

   e. Get data from a zcml file/namespace.

Any other choices?  Any votes on these choices?

--Paul