Ticket #4138 (new enhancement)
A fresh Twisted checkout should support "setup.py sdist"
Description
This ticket is a stepping-stone towards #1696, but this is an independent, self-contained sub-goal that I expect will involve lots of discussion and exploration of alternatives, so I thought I'd file a new ticket.
Steps to reproduce:
- Download the official Twisted 9.0.0 source tarball
- Run the following commands:
tar tjf Twisted-9.0.0.tar.bz2 | sort > /tmp/official-tarball-files tar xjf Twisted-9.0.0.tar.bz2 cd Twisted-9.0.0 ./setup.py sdist tar tzf dist/Twisted-9.0.0.tar.gz | sort > /tmp/sdist-tarball-files
- Compare /tmp/official-tarball-files and /tmp/sdist-tarball-files with your favourite diff tool.
Expected results:
- File lists should be identical, at least as far as executable code and tests go.
Actual results:
- The sdist tarball does not include Pyrex source files for Twisted's extension modules, or various test-data files required by test suites, which rather cripples the resulting tarball.
- The sdist tarball also does not include documentation, but I'm not so fussed about that (see "as far as executable code and tests" above).
Why this is a problem:
- People (including but not limited to me) want to build RPMs of Twisted so they can depend on newer versions of Twisted than are shipped with their production platform (say, CentOS or RHEL).
- Building RPMs with bdist_rpm is superior to building RPMs with admin/twisted.spec because:
- Nearly every Python project that uses distutils can be built as an RPM this way, reducing documentation and training needs.
- For those whose production systems depend on changes to Twisted that will be pushed upstream, running bdist_rpm from the branch is much, much simpler than writing a build-system to download official tarballs and bundle a patch-set and custom twisted.spec.
- Working sdist is a precondition for working bdist_rpm.
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

