On May 3, 2014, at 5:20 AM, exar...@twistedmatrix.com wrote:

> On 1 May, 07:23 pm, gl...@twistedmatrix.com wrote:
>> 
>> On Apr 30, 2014, at 5:21 AM, exar...@twistedmatrix.com wrote:
>>> I've just noticed that the changeset for #5190 included some untested code. 
>>>  Specifically, there are no tests for the code which detects missing 
>>> dependencies and emits warnings about them.
>> 
>> My bad.  Well, technically hawkowl's bad; hawkowl is a committer and did the 
>> review and therefore has all the criminal liability in this case, but as the 
>> author who wrote the code I bear some responsibility, at least in some 
>> abstract, hypothetical sense ;-).
> 
> My hope is that by drawing attention to examples of this kind of mistake will 
> help us avoid making the mistake in the future.  Considering what my email 
> prompted you to write, I think it may work. :)

Mission accomplished, I guess :-).  Please continue doing so.  I wish that 
every commit to trunk would prompt a thread on this list, really.  Despite the 
epically ridiculous amount of email I get, this list is still a bit too 
low-traffic for my taste.

>> Thanks for working on the fix; it looks like the relevant ticket is 
>> <https://twistedmatrix.com/trac/ticket/7097>.  I'll try to review that as 
>> soon as it's ready; let me know.
> 
> No problem.  I probably should have started my previous email with thanks to 
> you and hawkowl for working on that feature.  It is *really* good to have 
> service identity checking support in Twisted.

Thanks for saying so.

>> The problem with code like this is that, in some configurations, it is in 
>> fact reported as covered by coverage.py.  It requires manual examination to 
>> get the intersection of a diff and a coverage report, and even when you do, 
>> we still have too many places where it's "okay" to skip coverage.
> 
> This is true - but I'm not sure the code in this case is particularly 
> special.  It's nearly always possible to write code and tests such that 
> coverage.py says your code is covered but without actually having any 
> meaningful test coverage of the implementation.  After all, coverage.py only 
> knows that a line ran or didn't.
> 
> The problem of platform- or environment-specific code requiring multiple 
> branches which can never always all run is an extra challenge but I think a 
> widely applicable solution is to not do that.  To add to your comments below, 
> if there is platform- or environment-specific code then parameterize it on 
> the environment and write tests for all of the cases.

I think what really makes this an extra challenge is that we (well, all Python 
programmers, really) have a smattering of different idioms for cases like this 
and we don't have a succinct way of expressing the optional dependency both in 
the import, the implementation, and the tests.

>> So until someone has a month to spend on an all-singing all-dancing combined 
>> ratcheting coverage report for all the builders and a fantastic 
>> visualization for its output which highlights every possible coverage issue, 
>> here are some specific suggestions which might avoid some parts of this 
>> class of error:
> 
> I don't think we even have a plan for a tool that will report whether a 
> change introduces code that isn't *really* tested (contrast "tested" with 
> "executed").

Indeed not.  So we need some ideas in the meanwhile :-).

> I think this may be an area where we do actually need to rely on people doing 
> a good job. Perhaps to counter balance that we need to eliminate more of the 
> other crap involved in the development process?  For example, if reviewers 
> never had to spend any time thinking about whether the whitespace in a change 
> was correct, they would have that much more brain power to apply to assessing 
> the quality of the test suite.

Speaking of thanking people for things, we should also thank richard wall, 
david reid, you, and hawkowl for maintenance of twistedchecker.  It's a lot 
better than it was :).

> Thanks!  These are great suggestions.  Can we record them in a way that lets 
> all Twisted contributors learn from this case (instead of only the people 
> reading this thread) - but without adding to the already unreasonably large 
> quantity of text new contributors are ostensibly already responsible for 
> reading?

Those sound like diametrically opposed ideas :-).

> How's the unified Contributing-to-Twisted documentation effort coming?

Yeah, how is that coming?
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to