[zpkg] Packaging a standalone zope3 package
Fred Drake
fred at zope.com
Mon Oct 24 14:11:04 EDT 2005
On Monday 24 October 2005 13:13, Lennart Regebro wrote:
> No, but it clarifies a bit. It also simplifies, as you say, but only
> to the point that the list of dependencies for zope is one instead of
> three lines.
In this case, yes, the wildcard only saves a few lines. In other cases, it
can save more. The savings of lines is a fairly minor point, I think, and is
mostly interesting when additional packages are being added to a tree on an
obgoing basis (as for the Zope 3 tree), because it avoids needing to update
the map every time a package is added.
> Actually, my main recommendation would be to get rid of all the
> different config files, and put everything into one, with a
> standardized name. That would make everything MUCH easier.
I've thought about that, and there's some serious appeal to that. Jim has
objected to the idea because he wants the dependencies information separate
from the other packaging information because it's also part of the package's
contract: it should be a considered design decision to change a released
package to require packages it did not require before the change.
In principle, each of the files that can appear within a package has a
different application:
DEPENDENCIES.cfg
This forms part of the contract, as described above. As such, it is of
interest to designers/implementors (collectively: developers).
PACKAGE.cfg
This contains information that is only needed by zpkg at the time a
distribution is constructed.
PUBLICATION.cfg
This contains information that distutils wants only for the "top-level"
package in a distribution. The "odd-ball" format is used since it exactly
matches the format of the PKG-INFO files that distutils generates; we didn't
have to invent something new, we simply expanded the application of the
format (it's now input as well as output). Given that ZC has gotten a lot
of negative feedback for creating new formats in the past, we try to re-use
existing formats when possible.
SETUP.cfg
This contains information that, if present, distutils will need to when
working with any package in a distribution, top-level or not.
That said, I completely agree that the importance of these distinctions isn't
clear, and spreading information over several files isn't always a good idea.
Having several packaging-related files in a Python package can be somewhat
distracting, especially when dealing with small packages.
-Fred
--
Fred L. Drake, Jr. <fred at zope.com>
Zope Corporation
More information about the zpkg
mailing list