New submission from John Dennis <jden...@redhat.com>:

The behaviour of sdist has changed dramatically in Python 2.7. Some projects 
prefer to maintain their own manifest file instead of utilizing automatic 
manifest generation from a template. The defined behaviour of sdist is to check 
for the presence of both a template and a manifest, if the template is absent 
but a manifest exists sdist is supposed to read the existing manifest, it no 
longer does this. Instead it creates a default file list with the catastrophic 
result of omitting the bulk of a projects files.  

It appears this bug was introduced in r81255 and is discussed in #8688. 
Unfortunately #8688 contained a number of different issues and was closed 
addressing only a subset of the problems. Changeset r83996 was introduced to 
prevent sdist from overwriting a project maintained manifest by testing for a 
comment at the head of the manifest file. It's not clear to me this was 
necessary because the write_manifest() should never have been called if the 
template was absent but a manifest existed.

Even after the application of changeset r83996 one of the fundamental problems 
in #8688 remained, the manifest is not read. The solution is to check for both 
the manifest and template (as was formerly done) and if the template is absent 
but the manifest exists then the manifest should be read.

I have made modifications to get_file_list() to reintroduce the defined 
behaviour. With the introduction of r83996 it is now legal syntax to have 
comments in the manifest however read_manifest() was not enhanced to account 
for the possible presence of comments. I also modified read_manifest() to 
handle comments.

These suggested fixes are attached as a patch against the current 2.7 
maintenance branch. I've also attached a file with the two modified methods 
because sometimes it's difficult to comprehend a patch.

----------
assignee: tarek
components: Distutils
messages: 127777
nosy: eric.araujo, jdennis, tarek
priority: normal
severity: normal
status: open
title: distutils sdist ignores MANIFEST
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue11104>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to