AW: [Zope3-dev] Re: AW: Where should we place 3rd party packages?

Philipp von Weitershausen philipp at weitershausen.de
Sat Jul 3 14:24:45 EDT 2004


Roger ineichen wrote:
> I help Nicolas Évrard to checkin a LDAP implementation (ldapauth).
> This package has dependency to the python-ldap package.
> That's a non-zope package.
> 
> Jim told me, to checkin a top-level package in the repository.
> I think that's OK. 

Right, packages with non-zope dependencies should be top-level packages,
like Zope3 or Zope itself.

> My proposal was to use a conatiner for this like we hav had
> with Porducts3 or Packages3 (perhaps z3addons).
> 
> In this package you can checkin packages like the ldapauth 
> or bugtracker or whatevere you whant.
> 
> I don't feel good that everybody has to checkin top-level packages
> with own code. Because that's the same level in the repository like
> Zope3 is.
> 
> What do you mean?

I think that a container is unnecessary. And as we've already discussed,
a container *package* is definitely unwanted. You shouldn't feel bad
about checking in a top-level package. I guess Jim wants it there and I
agree with him. And if worst comes to worst, we can always move it
somewhere else. After all, this is subversion, not CVS.

> Another problem is where should we checkout this package.
> I think we have to write a README for the installation and 
> where you can download the python ldap package, ....

Well, the package should probably have a setup.py (can be generated with
zpkg). You would then install it in the instance's lib/python directory,
like I suggested earlier:

$ tar xzf ldapauth.tgz
$ cd ldapauth
$ python2.3 setup.py --home INSTANCE_HOME

For you as developers, you could either check it out into Zope3/src or
into some other directory that is part of your PYTHONPATH. You are
*free* to put it *anywhere* :).

> Should we tell the people that's up to their?

You can mention that. But I would probably make a setup.py for them.

> I prefere
> to write something like put a container called addons to the src/ folder
> and checkout the package ldapauth to this folder. And now the 
> "important part" use the line <include package="addons.ldapauth"/>
> for to include the ldapauth package.
> I think thats much clearer the everything else.

Again, we agreed not having a Products, zopeproducts or addons package.
Just top-level ones.

> Let's say one top-level folder in the svn.zope.org repository has a
> defined location in the <Zope>/src of the installation.

Repository layout, package layout and installation layout are three
separate things. They don't have to look alike *at all*. We developers
usually checkout all of Zope3 and dump our extra stuff into Zope3/src
because we are lazy :).
In a production environment, you would install a packaged Zope3 by using
setup.py and then install extra packages by putting them into some place
that's picked up by the PYTHONPATH, or even use the package's setup.py.

> I'm not looking for a standard way for all developer.

The standard way for community packages is top-level packages. You in
yourself are always free to enforce a top-level package for your
private/commercial packages.

I hope that helps :).

Philipp



More information about the Zope3-dev mailing list