[Twisted-Python] Deferred on PyPI

Hello, A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted. Later, Mikeal made a branch that extracted Deferred out of the rest of Twisted, and I contributed a patch to make it more correct. You can find the latest release at: http://pypi.python.org/pypi/deferred/0.2 I've also made a project for it on Launchpad: https://launchpad.net/deferred So you can get the code with 'bzr branch lp:deferred'. Mikeal is maintaining the official trunk branch on Github. I haven't heard anything about it on this list, so I thought I'd mention to see what you all think and whether we should do anything about it. cheers, jml

On 09:26 am, jml@mumak.net wrote:
Hello,
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted. Later, Mikeal made a branch that extracted Deferred out of the rest of Twisted, and I contributed a patch to make it more correct.
You can find the latest release at: http://pypi.python.org/pypi/deferred/0.2
I've also made a project for it on Launchpad: https://launchpad.net/deferred
So you can get the code with 'bzr branch lp:deferred'. Mikeal is maintaining the official trunk branch on Github.
I haven't heard anything about it on this list, so I thought I'd mention to see what you all think and whether we should do anything about it.
I think this is a good idea, except you didn't mention anything about the plan for keeping this separate codebase synchronized with Twisted development. I hope the plan isn't to allow it to become out of date. Jean-Paul

On Mon, Dec 7, 2009 at 6:29 AM, <exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote:
Hello,
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted. Later, Mikeal made a branch that extracted Deferred out of the rest of Twisted, and I contributed a patch to make it more correct.
You can find the latest release at: http://pypi.python.org/pypi/deferred/0.2
I've also made a project for it on Launchpad: https://launchpad.net/deferred
So you can get the code with 'bzr branch lp:deferred'. Mikeal is maintaining the official trunk branch on Github.
I haven't heard anything about it on this list, so I thought I'd mention to see what you all think and whether we should do anything about it.
I think this is a good idea, except you didn't mention anything about the plan for keeping this separate codebase synchronized with Twisted development. I hope the plan isn't to allow it to become out of date.
Well, I don't know if there's a plan per se. I'm personally not intending to maintain the code. However, if I were the maintainer, I think that I would like Twisted to depend on this code, dropping its own Deferred implementation. jml

On 09:10 pm, jml@mumak.net wrote:
On Mon, Dec 7, 2009 at 6:29 AM, <exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote:
Hello,
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted. Later, Mikeal made a branch that extracted Deferred out of the rest of Twisted, and I contributed a patch to make it more correct.
You can find the latest release at: �http://pypi.python.org/pypi/deferred/0.2
I've also made a project for it on Launchpad: �https://launchpad.net/deferred
So you can get the code with 'bzr branch lp:deferred'. Mikeal is maintaining the official trunk branch on Github.
I haven't heard anything about it on this list, so I thought I'd mention to see what you all think and whether we should do anything about it.
I think this is a good idea, except you didn't mention anything about the plan for keeping this separate codebase synchronized with Twisted development. �I hope the plan isn't to allow it to become out of date.
Well, I don't know if there's a plan per se. I'm personally not intending to maintain the code.
Hm. Is Mikeal? Is he on this list?
However, if I were the maintainer, I think that I would like Twisted to depend on this code, dropping its own Deferred implementation.
It would be pretty neat to be able to do that. I don't think it will happen unless someone is actively working towards it, though. Jean-Paul

On Sun, Dec 6, 2009 at 3:35 PM, <exarkun@twistedmatrix.com> wrote:
On 09:10 pm, jml@mumak.net wrote:
On Mon, Dec 7, 2009 at 6:29 AM, <exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote:
Hello,
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted. Later, Mikeal made a branch that extracted Deferred out of the rest of Twisted, and I contributed a patch to make it more correct.
You can find the latest release at: http://pypi.python.org/pypi/deferred/0.2
I've also made a project for it on Launchpad: https://launchpad.net/deferred
So you can get the code with 'bzr branch lp:deferred'. Mikeal is maintaining the official trunk branch on Github.
I haven't heard anything about it on this list, so I thought I'd mention to see what you all think and whether we should do anything about it.
I think this is a good idea, except you didn't mention anything about the plan for keeping this separate codebase synchronized with Twisted development. I hope the plan isn't to allow it to become out of date.
Well, I don't know if there's a plan per se. I'm personally not intending to maintain the code.
Hm. Is Mikeal? Is he on this list?
Just had to join in order to reply. Anyone who wants to contribute is welcome to fork it and send me pull requests on github. I don't keep up with current Twisted development so I doubt I'll be in the loop enough to keep this up to date. http://github.com/mikeal/deferred
However, if I were the maintainer, I think that I would like Twisted
to depend on this code, dropping its own Deferred implementation.
It would be pretty neat to be able to do that. I don't think it will happen unless someone is actively working towards it, though.
Jean-Paul
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

On Mon, Dec 7, 2009 at 10:35 AM, <exarkun@twistedmatrix.com> wrote:
On 09:10 pm, jml@mumak.net wrote:
On Mon, Dec 7, 2009 at 6:29 AM, <exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote:
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted. Later, Mikeal made a branch that extracted Deferred out of the rest of Twisted, and I contributed a patch to make it more correct.
...
I think this is a good idea, except you didn't mention anything about the plan for keeping this separate codebase synchronized with Twisted development. I hope the plan isn't to allow it to become out of date.
...
However, if I were the maintainer, I think that I would like Twisted to depend on this code, dropping its own Deferred implementation.
It would be pretty neat to be able to do that. I don't think it will happen unless someone is actively working towards it, though.
If there's in principal agreement, I can laconically work towards it. jml

On Dec 8, 2009, at 4:50 AM, Jonathan Lange wrote:
On Mon, Dec 7, 2009 at 10:35 AM, <exarkun@twistedmatrix.com> wrote:
On 09:10 pm, jml@mumak.net wrote:
On Mon, Dec 7, 2009 at 6:29 AM, <exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote:
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted.
However, if I were the maintainer, I think that I would like Twisted to depend on this code, dropping its own Deferred implementation.
It would be pretty neat to be able to do that. I don't think it will happen unless someone is actively working towards it, though.
If there's in principal agreement, I can laconically work towards it.
In (ahem) principle, I agree, but my agreement is contingent upon the theoretical existence of things like "a good package manager for Python" and "installation instructions on our website which clearly explain how to install dependencies in a context-sensitive manner" (i.e. depending on your platform). Still, I think that this work is an excellent proof of concept and therefore immediately useful in its own right. Thank you, Mikeal :). So, I would regard this as a long-term goal. Given the pace of our normal, non-"laconic" work, though, I think there's little risk it will be completed in the near term ;-).

On Wed, Dec 9, 2009 at 2:42 AM, Glyph Lefkowitz <glyph@twistedmatrix.com> wrote:
On Dec 8, 2009, at 4:50 AM, Jonathan Lange wrote:
On Mon, Dec 7, 2009 at 10:35 AM, <exarkun@twistedmatrix.com> wrote:
On 09:10 pm, jml@mumak.net wrote:
On Mon, Dec 7, 2009 at 6:29 AM, <exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote:
A while ago at EuroPython, Mikeal Rogers and I talked about Deferreds and how they don't really depend on the rest of Twisted.
However, if I were the maintainer, I think that I would like Twisted to depend on this code, dropping its own Deferred implementation.
It would be pretty neat to be able to do that. I don't think it will happen unless someone is actively working towards it, though.
If there's in principal agreement, I can laconically work towards it.
In (ahem) principle, I agree,
I can't believe I got that wrong. Sorry.
but my agreement is contingent upon the theoretical existence of things like "a good package manager for Python" and "installation instructions on our website which clearly explain how to install dependencies in a context-sensitive manner" (i.e. depending on your platform).
I'm with you on the installation instructions. Why this should block on a good package manager for Python?
So, I would regard this as a long-term goal. Given the pace of our normal, non-"laconic" work, though, I think there's little risk it will be completed in the near term ;-).
I completely screwed up with the advanced English usage then. :( jml

On 08:27 am, jml@mumak.net wrote:
On Wed, Dec 9, 2009 at 2:42 AM, Glyph Lefkowitz <glyph@twistedmatrix.com> wrote:
On Dec 8, 2009, at 4:50 AM, Jonathan Lange wrote:
On Mon, Dec 7, 2009 at 10:35 AM, �<exarkun@twistedmatrix.com> wrote:
On 09:10 pm, jml@mumak.net wrote:
On Mon, Dec 7, 2009 at 6:29 AM, �<exarkun@twistedmatrix.com> wrote:
On 09:26 am, jml@mumak.net wrote: > >A while ago at EuroPython, Mikeal Rogers and I talked about >Deferreds >and how they don't really depend on the rest of Twisted.
However, if I were the maintainer, I think that I would like Twisted to depend on this code, dropping its own Deferred implementation.
It would be pretty neat to be able to do that. �I don't think it will happen unless someone is actively working towards it, though.
If there's in principal agreement, I can laconically work towards it.
In (ahem) principle, I agree,
I can't believe I got that wrong. Sorry.
but my agreement is contingent upon the theoretical existence of things like "a good package manager for Python" and "installation instructions on our website which clearly explain how to install dependencies in a context-sensitive manner" (i.e. depending on your platform).
I'm with you on the installation instructions. Why this should block on a good package manager for Python?
Probably it shouldn't, if we ever actually want it to happen. We can distribute the top-level deferred package with Twisted when we actually get to that point. Jean-Paul

On Dec 9, 2009, at 3:27 AM, Jonathan Lange wrote:
On Wed, Dec 9, 2009 at 2:42 AM, Glyph Lefkowitz <glyph@twistedmatrix.com> wrote:
but my agreement is contingent upon the theoretical existence of things like "a good package manager for Python" and "installation instructions on our website which clearly explain how to install dependencies in a context-sensitive manner" (i.e. depending on your platform).
I'm with you on the installation instructions. Why this should block on a good package manager for Python?
Perhaps this requirement is over-broad. My concern is the users who already complain "why do I need zope" when installing Twisted, and then can't seem to get ZI installed even when the distinction is explained. If, as Jean-Paul suggests, the "deferred" package were included with the Twisted release *and* silently importable / installable, this concern would be addressed. However, there are other issues: the deferred package would need to be governed by a compatibility policy as strict as Twisted's (or stricter, actually, given its rather central nature). I wouldn't feel comfortable without an equally strenuous review process. Its test suite would have to be run on our buildbots, or on a more comprehensive fleet of its own. It would need to come packaged with its own documentation, which implies that something like Kevin Horn's proposed sphinx migration would be completed first. And we'd need to migrate all the open tickets affecting Deferred and Failure to a new tracker. It seems like this annoying procedural stuff could be deferred (ha ha) until after figuring out the technical problems (for example: coming up with a system of hooks so that it can be integrated with trial without directly depending on Twisted logging) if the work to modify the code itself were done in a Twisted subversion branch first; that way we could still schedule buildbot builds and close existing tickets against Deferred without blocking on schlepping a bunch of infrastructure into a new repository. If Mikeal needs commit access in order to help I'm sure that could be arranged. Sorry if this seems like a lot of stuff. I've tried to be as comprehensive as possible in this message so as not to continue to throw up new, surprising roadblocks as the work goes along.

On Wed, Dec 9, 2009 at 3:27 AM, Jonathan Lange <jml@mumak.net> wrote: ...
I completely screwed up with the advanced English usage then. :(
IMHO it is very simple: extracting Deferreds out of Twisted would benefit (if at all) only people who do not use or develop Twisted. From the packaging point of view recent integration of the half a dozen Twisted related packages into one package was a big win for both users and maintainers. Extracting Deferreds would be a step backwards. As it was already mentioned in this thread it would bring an additional headache of maintaining versions compatibility etc. to Twisted developers. For Twisted users (especially those who uses their system's package managers) it would mean to install bunch of packages instead of only one again ... Let's try to estimate the practical benefits such separation would bring: - ability to write 'from deferreds import Deferred' instead of 'from twisted.internet.defer import Deferred' - IMHO is a very minor one. - ability to use 'python setup.py install' in ~/Deferreds-1.2.3 instead of 'python setup.py install' in ~/twisted-9.0.0 or 'apt-get deffereds' instead of 'apt-get twisted' does not count as a big one either. - ability to save couple of megabytes of disk space during installation - these days it is almost a joke :) - ability to save some when distributing your product with py2exe and such - that is something. But this can be solved without separation - just eliminate dependencies of the twisted.internet.defer from the rest of the system and write smart enough setup.py (I believe patches, examples and docs are welcome as usual) Did I miss something? IMHO from the practical point of view the only case when separation of Deferreds would benefit Twisted community as a whole would be inclusion of it into the standard library, but this is not going to happen soon ... Bottom line - I wouldn't blame Twisted developers for the lack of enthusiasm in this case. Regards, -- Mikhail Terekhov

On Dec 9, 2009, at 4:01 PM, Mikhail Terekhov wrote:
On Wed, Dec 9, 2009 at 3:27 AM, Jonathan Lange <jml@mumak.net> wrote: ...
I completely screwed up with the advanced English usage then. :(
IMHO it is very simple: extracting Deferreds out of Twisted would benefit (if at all) only people who do not use or develop Twisted. From the packaging point of view recent integration of the half a dozen Twisted related packages into one package was a big win for both users and maintainers. Extracting Deferreds would be a step backwards.
I can certainly understand (and sympathize with) this point of view, but...
Did I miss something?
Not quite. You brought it up right here:
IMHO from the practical point of view the only case when separation of Deferreds would benefit Twisted community as a whole would be inclusion of it into the standard library, but this is not going to happen soon ...
If nobody ever takes Deferred and puts it outside of Twisted, then this will happen "never" instead of "not soon". Eventually, somebody does need to bite the bullet and clean up Deferred for submission into the standard library. The work that jml is doing here will help that, and so it's a worthwhile goal, even if it eventually brings some pain along with it. When Deferred is in the standard library, it will enable communication between code written for different asynchronous backends, which is not currently possible.

On Thu, Dec 10, 2009 at 8:01 AM, Mikhail Terekhov <termim@gmail.com> wrote:
On Wed, Dec 9, 2009 at 3:27 AM, Jonathan Lange <jml@mumak.net> wrote: ...
I completely screwed up with the advanced English usage then. :(
IMHO it is very simple: extracting Deferreds out of Twisted would benefit (if at all) only people who do not use or develop Twisted.
I was referring to my misuse of "laconic", which I took to mean "lazy" and actually means "concise". ...
Bottom line - I wouldn't blame Twisted developers for the lack of enthusiasm in this case.
I, of all people, would never blame other Twisted developers for a lack of enthusiasm. jml
participants (5)
-
exarkun@twistedmatrix.com
-
Glyph Lefkowitz
-
Jonathan Lange
-
Mikeal Rogers
-
Mikhail Terekhov