There are now two tickets which are important to me as a Nevow user (in the http://allmydata.org Tahoe project) and which have simple patches to solve them, but which patches are not applied because installation of Nevow does not get automatically tested, and exarkun doesn't want to apply patches to code that isn't getting automatically tested.
Those tickets are #2629 (Nevow doesn't declare its dependency on Twisted in a machine-parseable way) and #2527 (Nevow can't find its own package resources at run-time on certain platforms, or if installed in a zip file such as for py2exe). See also #857 (Source release process does not include important files).
Here is an excerpt from the Twisted master.cfg, thanks to Radix, which tests installation of Twisted. If we apply this code to the Nevow master.cfg then installation of Nevow using easy_install will be automatically tested, exarkun will accept my patches that fix these issues, and I will be very relieved that I can go ahead and release the imminent v1.1.0 of allmydata.org Tahoe without exposing my users to these issues.
Thanks.
class TwistedEasyInstallFactory(TwistedBaseFactory):
treeStableTimer = 5*60
def __init__(self, source, uncleanWarnings, python="python",
reactor="epoll", easy_install="easy_install"):
TwistedBaseFactory.__init__(self, source, uncleanWarnings)
if type(python) == str:
python = [python]
setupCommands = [
["rm", "-rf", "install"],
["mkdir", "-p", "install/bin", "install/lib"],
[easy_install, "--install-dir", "install/lib",
"--script-dir", "install/bin",
"."],
]
for command in setupCommands:
self.addStep(shell.ShellCommand, command=command,
env={"PYTHONPATH": "install/lib"},
haltOnFailure=True)
self.addTrialStep(
name=reactor, python=python,
reactor=reactor, flunkOnFailure=True,
warnOnFailure=False, workdir="Twisted/install",
env={"PYTHONPATH": "lib"})