On Sun, 19 Sep 2004 20:19:42 -0400, James Y Knight
On Sep 19, 2004, at 12:30 PM,
twisted/web2 has an unacceptable dependency on nevow that will need to be discussed or removed before this subpackage can be added.
First off -- I consider this a rude thing to do, considering I am far from being unreachable. What was the emergency that prompted this removal at midnight on a saturday night? None? Yeah, that's what I thought.
I'm sorry you took it this way. I assure you I had nothing in mind but the best interest of Twisted at the time. I appreciate all the work you've done on the web rewrite. As to the "emergency" which prompted the removal: I was trying to commit a patch to twisted.mail; various problems led to this taking several hours. Several of these problems had nothing to do with web2, but the failing web2 tests were a contributing factor. I did not come up with the idea to revert the web2 commit on the spot. Commits which introduce broken tests have always been fair game for reversion. Since the web2 tests were _new_, perhaps a different policy might apply. I'd certainly be willing to entertain arguments to that effect to decide what should be done in the future. I do not think reverting the commit was unreasonable here, though.
There is no release of Nevow.
There is. Although it's old. This is a very good reason for not releasing twisted.web2. Fortunately, since we have decoupled releases now, it doesn't affect anything else.
Perhaps I should have added "that which make this code work." Decoupled releases are good, yes. That solves one problem with checking broken tests (the tests may pass with nevow installed, I still haven't tried, that doesn't mean they aren't broken though). There are others.
None of the buildslaves have even an SVN trunk checkout installed, nor have any of them been asked to install one.
So before we re-add twisted.web2, let's see what we can do about fixing this situation.
Developers weren't told about this new dependency, so they may not have it installed.
twisted-web ml was. I don't expect developers that don't care about twisted web to install Nevow.
If the tests were skipped when nevow was not installed, this would be reasonable. Since they're not, developers who don't care about twisted web are forced to care about it.
This leads to strangely failing tests, making it difficult to tell if outstanding changes that a developer wants to commit are broken.
I assume you mean "Could not import twisted.web2.test.test_web: Traceback: exceptions.ImportError, No module named nevow.". If so, "strangely failing tests" is quite a hyperbole.
The technical reasons:
Nevow imports Twisted. Therefore, Twisted should not import Nevow.
Twisted is the networking framework and the web server framework. It is lower level than the application server and the templating system. The latter should depend on the former, if a dependency exists, not the reverse. _If_ it is desired for Twisted to gain functionality from a Nevow installed, Nevow must be careful to only import certain things from Twisted.
I would much prefer if Nevow gained functionality from Twisted and not the reverse, but if twisted.web/nevow developers desire things to work as they do currently in twisted.web2, at least the above issues need to be addressed. This thread should serve to resolve one of them (hopefully Twisted developers are now aware of the potential dependency ;).
Most of Twisted web2 does not/will not depend on Nevow. Generation of some server-generated pages does/will. Those tests should just be skipped if Nevow isn't installed. That they aren't is an issue, sure.
Okay, let's get that fixed as well, then I will gladly re-add web2 for you. If you like, I will also merge the minor fixes that were made to trunk into the web2 branch, so that those are not lost.
If you want to have any input on these technical matters I suggest participating on the twisted-web mailing list instead of just randomly removing code.
I am happy with my current level of avoidance of twisted web, discounting this most recent event. I hope that in the future web2 can be handled in such a way that it is not disruptive to those of us who are not interested in it. Jp