[tahoe-dev] wanted: bindann that I can actually use

zooko zooko at zooko.com
Mon Oct 29 08:58:26 PDT 2007


Folks:

Nathan's tool bindann [1] is in that frustrating state where it is  
good enough and complete enough that I really want to use it, but it  
is buggy enough and not-well-integrated enough that I'm not using it.

For example, I was just now looking at ticket #29 on the foolscap  
wiki [2], which includes a stack trace that ends with:

 >          File "/opt/pyinstances/twisted/lib/python2.5/site- 
packages/foolscap/referenceable.py", line 614, in slice
 >            assert isinstance(tracker.url, str)
 >        exceptions.AssertionError:

and I was thinking "Well, I could always append 'tracker.url' to the  
assert and try again.", and then I remembered that this is what  
bindann is supposed to automate for you.  If bindann had been  
installed in that runtime, then that stack trace would have included  
the valueof tracker.url (as well as the values of other potentially  
interesting things on the stack, such as self.result).

Even better, if bindann had come with foolscap by default, then the  
author of that ticket -- djfroofy -- might have realized what was  
wrong himself, and been able to fix it without opening a trac ticket  
and waiting for someone else to look at it.

So what does it take to get bindann into a state that it can be  
easily added into things like foolscap unit tests?

My idea is:

1.  File trac tickets on the bindann trac [1] for known bugs.
2.  Fix any bugs which make it worse to have bindann than not to have  
bindann.  As far as I know, of the four or five known bugs that I can  
remember, only one of them is in this class -- it is the one that  
makes imports fail weirdly instead of failing nicely [3].
3.  Work on packaging/integration.  What would it take to get Brian  
to use bindann by default in foolscap?  What would it take to get  
Twisted folks to accept the bindann-twisted integration patch (which  
does *not* require that they use bindann by default)?  And so on...

Regards,

Zooko

[1] http://allmydata.org/trac/bindann/wiki
[2] http://foolscap.lothar.com/trac/ticket/29
[3]

> $ python -c 'import allmydata, nada'
> NoneImportError: No module named nada
> $ echo $?
> 0
>
> When what *should* have happened was:
>
> $ python -c 'import allmydata, nada'
> ImportError, No module named nada
> $ echo $?
> 1


More information about the tahoe-dev mailing list