Package Organization (was Re: [Zope3-dev] Voting on Schema design)

Jim Fulton jim@zope.com
Mon, 15 Jul 2002 12:38:39 -0400


Martijn Faassen wrote:
> Gary Poster wrote:
> 
...


> Okay, I was wrong and Stephan was right apparently, we do need a vote. :)
> 
> I got the impression that lib/python/Zope *was* the 'should be useful
> out of Zope' directory, though I'm not sure what lib/python then would
> be. :)

Yes, the Zope package *is* normally the right place to put packages that would
be useful outside of Zope, for the reasons that Shane gave.

Zope is a pure container package containing useful packages created as part
of the Zope project. Packages the depend on the Zope application, or that have
excessive dependencies on other Zope packages should go in the Zope.App package.

The Zope package is motivated by name conflicts that *did* occur early on with
modules from other projects. The Zope project should inflict as few names on the
top-level Python namespace as possible.

Consider this a Papel edict. :)

Now, there are, as always, exceptions to the rule. Some packages have a ver strong
identity outside of Zope, so I've put them in the global namespace. For example,
the Interface package was proposed at IPC 7 in Houston, in 1998. This proposal,
and the software release that followed soon after, specified a top-level package.

One could argue that the ZODB packages should move into Zope.

Jim

-- 
Jim Fulton           mailto:jim@zope.com       Python Powered!
CTO                  (888) 344-4332            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org