- based on pip and other PyPA tools
- includes references to the new Python Packaging User Guide
where appropriate (and the relevant section is at least
partially filled in)
- started new FAQ sections
- both guides aim to introduce users to basic open source
concepts if they aren't aware of them
- existing guides have been relocated (now linked from the
distutils docs) rather then removed, since there is
some needed material that has yet to be relocated to the
distutils docs as a reference for the legacy formats
When running external programs such as a C compiler and getting an
error code, distutils only prints the program name. With this change,
one can get the full command line by setting the DISTUTILS_DEBUG
environment variable.
This should have no compatibility issues, unless there are tools
that depend on the exact format of distutils debug messages.
The stdlib docs for package distribution and building extensions
are rather dated, and that isn't expected to change for 2.7 and
3.3.
The Python Packaging User Guide isn't complete either, but it's
already a much better road map for new users than the existing
stdlib docs.
These files are created by some NFS clients a file is edited and removed
concurrently (see added link in doc for more info). If such a file is
removed between distutils calls listdir and copy, it will get confused.
Other special files are ignored in sdist (namely VCS directories), but
this has to be filtered out earlier.
Requested by Florent Xicluna with the rationale that they make the docs
look unfinished. I’ve also removed a few XXX notes that were not
visible in the HTML but could waste contributors’ time by suggesting
improvements that are never going to happen for distutils.
In the install and library docs, I changed the text to refer to
packaging instead of distutils. I also checked that the documented
paths correctly reflect what’s really defined in sysconfig; the main
difference with paths defined in distutils.install is that include
directories don’t end with the distribution name anymore (i.e. distutils
uses include/python3.3/spam, sysconfig include/python3.3), I have no
idea why.
The changed behavior of sdist in 3.1 broke packaging for projects that
wanted to use a manually-maintained MANIFEST file (instead of having a
MANIFEST.in template and letting distutils generate the MANIFEST).
The fixes that were committed for #8688 (76643c286b9f by Tarek and
d54da9248ed9 by me) did not fix all issues exposed in the bug report,
and also added one problem: the MANIFEST file format gained comments,
but the read_manifest method was not updated to handle (i.e. ignore)
them. This changeset should fix everything; the tests have been
expanded and I successfully tested the 2.7 version with Mercurial, which
suffered from this regression.
I have grouped the versionchanged directives for these bugs in one place
and added micro version numbers to help users know the quirks of the
exact version they’re using.
Initial report, thorough diagnosis and patch by John Dennis, further
work on the patch by Stephen Thorne, and a few edits and additions by
me.