[Distutils] Deprecate MANIFEST.in

Marius Gedminas marius at pov.lt
Tue Apr 7 19:17:22 CEST 2009


On Tue, Apr 07, 2009 at 08:12:39PM +0300, Marius Gedminas wrote:
> On Tue, Apr 07, 2009 at 07:20:11AM +0200, Lennart Regebro wrote:
> > OK, here is a usecase. I have a directoy with a module, foo.bar. I
> > have also in that directory saved a project file from my IDE, because
> > naturally I save a project file into the directory of every project I
> > have. But since that's not a part of the module itself I never check
> > it in.
> > 
> > My friend Bobo, however, does not use an IDE, and does not create a
> > project file.
> > 
> > In case number one, I specify the files to be included with a wildcard.
> > 
> > In case number two, I do not specify the files to be included at all,
> > but let sdist determine the files by looking at which files are
> > version controlled.
> > 
> > Now, in which of these cases will the sdist created by me an d by Bobo
> > be identical? Right. In the one where the file list is determined by
> > which files are version controlled. Can we then really say that this
> > case is more dependent on the environment?
> 
> Consider a different use case: my friend's friend Alice does not like
> svn.  She uses git-svn to get a local git repository containing a copy
> of the subversion code.  She then uses the usual 'python setup.py sdist'
> build process.  It produces a broken distribution (silently) because
> setuptools doesn't support git, and Alice didn't know she had to install
> a plugin.
> 
> Users don't expect version control system metadata to have an influence
> on the build process (other than recording the revision number/ID
> somewhere in the built package).

I guess, what I'm saying boils down to: the failure should not be silent
and unnoticed.  If the package's maintainer wants to use $VCS metadata
to define the contents of the sdist, that's fine, but

  (1) it should be specified explicitly, e.g.

          setup(use_vcs_for_manifest=True)

and

  (2) if setuptools is unable to find VCS metadata for any of the VCSes
      it supports (including through plugins), it should abort
      with an error (suggesting the user to look for plugins for the
      appropriate VCS)

The remaining question is: what do you do when the tree is included in
multiple VCSes?  (I've been known to place bzr trees into svn for backup
purposes.  It didn't work out too well.)

Marius Gedminas
-- 
Only great masters of style can succeed in being obtuse.
                -- Oscar Wilde

Most UNIX programmers are great masters of style.
                -- The Unnamed Usenetter
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20090407/e9baf812/attachment.pgp>


More information about the Distutils-SIG mailing list