[Twisted-Python] Improved StandardIO support in Windows

Hi all, I've recently put together a series of patches and new files that expand upon and improve the work done in Ticket #2157 http://twistedmatrix.com/trac/ticket/2157 I've got working cftp.py and conch.py scripts and imap4client.py also works. The console support works on a Windows-7 buildbot and acts like a normal console with a flashing cursor and working scroll-back (no editing yet, but back-space works). I missed exarkun's message until after I'd uploaded the patches there :( As I got familiar with the code-base again (I was using some of this stuff on windows over 5 years ago), I looked at lots of tests that could be enabled now, and have a set of other patches for more tests (I got up to 6999 :) Not sure how to proceed so I'm doing as exarkun suggested, and posting here, best regards, John Popplewell PS I married a beautiful American woman last year and now reside in Northern Michigan - looking for work, thought I'd try and do something useful.

On Fri, Apr 19, 2013 at 1:21 AM, John Popplewell <johnnypops@gmail.com>wrote:
Hi all,
I've recently put together a series of patches and new files that expand upon and improve the work done in Ticket #2157 http://twistedmatrix.com/trac/ticket/2157
I've got working cftp.py and conch.py scripts and imap4client.py also works. The console support works on a Windows-7 buildbot and acts like a normal console with a flashing cursor and working scroll-back (no editing yet, but back-space works).
I missed exarkun's message until after I'd uploaded the patches there :(
As I got familiar with the code-base again (I was using some of this stuff on windows over 5 years ago), I looked at lots of tests that could be enabled now, and have a set of other patches for more tests (I got up to 6999 :)
Not sure how to proceed so I'm doing as exarkun suggested, and posting here,
best regards, John Popplewell PS I married a beautiful American woman last year and now reside in Northern Michigan - looking for work, thought I'd try and do something useful.
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
Fantastic to see someone picking up this work! -- Kevin Horn

On Fri, Apr 19, 2013 at 2:21 AM, John Popplewell <johnnypops@gmail.com>wrote:
Hi all,
I've recently put together a series of patches and new files that expand upon and improve the work done in Ticket #2157 http://twistedmatrix.com/trac/ticket/2157
Not sure how to proceed so I'm doing as exarkun suggested, and posting here,
The main issue is that the patch is too big? The easiest way to solve that is to split it up into multiple tickets, each addressing a subsection of the problem, with a corresponding small patch. It's fine to say "and this patch requires ticket #1234 to be fixed."

On Fri, Apr 19, 2013 at 02:21:48PM -0400, Itamar Turner-Trauring wrote:
On Fri, Apr 19, 2013 at 2:21 AM, John Popplewell <johnnypops@gmail.com>wrote:
Hi all,
I've recently put together a series of patches and new files that expand upon and improve the work done in Ticket #2157 http://twistedmatrix.com/trac/ticket/2157
Not sure how to proceed so I'm doing as exarkun suggested, and posting here,
The main issue is that the patch is too big? The easiest way to solve that is to split it up into multiple tickets, each addressing a subsection of the problem, with a corresponding small patch. It's fine to say "and this patch requires ticket #1234 to be fixed."
OK, thanks, I'll do that.

On 06:55 pm, johnnypops@gmail.com wrote:
On Fri, Apr 19, 2013 at 02:21:48PM -0400, Itamar Turner-Trauring wrote:
The main issue is that the patch is too big? The easiest way to solve that is to split it up into multiple tickets, each addressing a subsection of the problem, with a corresponding small patch. It's fine to say "and this patch requires ticket #1234 to be fixed."
OK, thanks, I'll do that.
To add to what Itamar wrote a bit, an important part of this strategy is that the individual pieces the task gets split into need to each make some kind of sense on their own. It's fine for there to be dependencies (but the dependencies should only go in one direction), but a ticket the summary of which is "apply this patch to _win32stdio.py that I wrote" won't work very well. Instead, be sure that the tickets are things like "implement feature foo for Win32EventsReactor". Jean-Paul

On Apr 19, 2013, at 12:58 PM, exarkun@twistedmatrix.com wrote:
On 06:55 pm, johnnypops@gmail.com wrote:
On Fri, Apr 19, 2013 at 02:21:48PM -0400, Itamar Turner-Trauring wrote:
The main issue is that the patch is too big? The easiest way to solve that is to split it up into multiple tickets, each addressing a subsection of the problem, with a corresponding small patch. It's fine to say "and this patch requires ticket #1234 to be fixed."
OK, thanks, I'll do that.
To add to what Itamar wrote a bit, an important part of this strategy is that the individual pieces the task gets split into need to each make some kind of sense on their own. It's fine for there to be dependencies (but the dependencies should only go in one direction), but a ticket the summary of which is "apply this patch to _win32stdio.py that I wrote" won't work very well. Instead, be sure that the tickets are things like "implement feature foo for Win32EventsReactor".
And to refine this even further: It's OK for the patches to be smaller than "implement feature foo", as long as they make sense on their own. For example if we already implement feature foo, but you want to re-factor it so that it's easy to implement feature bar in terms of that same code, you could have a ticket just for doing the inner refactoring, that does not expose any new public classes or features, as long as that refactoring has a good explanation and a good impact on the internal API. Based on the last patch I see on this ticket, it looks like that's what you're trying to do with a lot of the 'Channel' objects; these need better documentation and test coverage, but it looks like some of that work could be off on its own. -glyph

On Fri, Apr 19, 2013 at 01:35:41PM -0700, Glyph wrote:
On Apr 19, 2013, at 12:58 PM, exarkun@twistedmatrix.com wrote:
On 06:55 pm, johnnypops@gmail.com wrote:
On Fri, Apr 19, 2013 at 02:21:48PM -0400, Itamar Turner-Trauring wrote:
The main issue is that the patch is too big? The easiest way to solve that is to split it up into multiple tickets, each addressing a subsection of the problem, with a corresponding small patch. It's fine to say "and this patch requires ticket #1234 to be fixed."
OK, thanks, I'll do that.
To add to what Itamar wrote a bit, an important part of this strategy is that the individual pieces the task gets split into need to each make some kind of sense on their own. It's fine for there to be dependencies (but the dependencies should only go in one direction), but a ticket the summary of which is "apply this patch to _win32stdio.py that I wrote" won't work very well. Instead, be sure that the tickets are things like "implement feature foo for Win32EventsReactor".
And to refine this even further:
It's OK for the patches to be smaller than "implement feature foo", as long as they make sense on their own.
For example if we already implement feature foo, but you want to re-factor it so that it's easy to implement feature bar in terms of that same code, you could have a ticket just for doing the inner refactoring, that does not expose any new public classes or features, as long as that refactoring has a good explanation and a good impact on the internal API.
Based on the last patch I see on this ticket, it looks like that's what you're trying to do with a lot of the 'Channel' objects; these need better documentation and test coverage, but it looks like some of that work could be off on its own.
-glyph
Ok, I'm following this. Just been off my PC for 18 hours. I'm up for doing things properly (unlike some of my previous, um, code dumps). I've had some practice figuring out tests, I've had a look at the coding standard and I'm happy to have a go at some documentation. I'm finally getting the patch+test coverage message especially as several of the existing tests (after I enabled them) pointed out short-comings in the code as I was working on it. I should be able to get something together in the next day or two, right now I need some sleep. Thanks for your helpful reponses, I'm keen to make a useful contribution to Twisted as it has served me well over the years, best regards, John.
participants (5)
-
exarkun@twistedmatrix.com
-
Glyph
-
Itamar Turner-Trauring
-
John Popplewell
-
Kevin Horn