[Distutils] MANIFEST destiny :)
Phillip J. Eby
pje at telecommunity.com
Wed Nov 16 20:39:56 CET 2005
At 08:21 PM 11/16/2005 +0100, Christopher Lenz wrote:
>Am 16.11.2005 um 18:53 schrieb Phillip J. Eby:
> >> Again, not everybody is using distribution processes
> >> built around CVS or Subversion. Left aside that there
> >> are quite a few other SCM tools out there, you also have
> >> the case where you create distributions from plain
> >> directories (which is what MANIFEST.in and MANIFEST
> >> are targetting).
> > The source control is a supplement to the "add_defaults" of the sdist
> > process, not a replacement for MANIFEST.in. Some users need to add
> > non-source-controlled files, for example. But *simple things
> > should be
> > simple*, and treating source control info as part of the defaults
> > makes
> > them work simply for most people. And if you don't want the defaults,
> > there should be only one way to turn them off - by excluding files in
> > MANIFEST.in, not by a command line option.
>I'm not sure I understand this proposal completely, but I don't think
>it's a good idea to have a project's build/setup process rely on
>having version control meta-data around. Wouldn't that mean that the
>built package would be incorrect when the setup is run from an `svn
>export`ed (or otherwise cleaned up) copy?
The MANIFEST file would be generated from that data, and then source
distributions would contain the MANIFEST, which would then be read in place
of the source control metadata when it's not available.
There's a similar feature in setuptools now for tagging releases with SVN
revision numbers; if you don't have the metadata available, setuptools
looks in PKG-INFO to get the revision number that the source release was
You're right, however, in that 'svn export' doesn't work with either
scheme, in that setuptools assumes the One Obvious Way to distribute source
is by running "sdist" on your code base, not by making an export from your
revision control. If you don't have that option (or don't use CVS or SVN),
you don't get to use setuptools' convenience features, and have to do
things the distutils way, with an explicit MANIFEST.in file.
More information about the Distutils-SIG