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