[tahoe-dev] new foolscap version requirement

Zooko O'Whielacronx zooko at zooko.com
Fri Jan 7 06:25:52 UTC 2011

On Thu, Jan 6, 2011 at 4:45 PM, David-Sarah Hopwood
<david-sarah at jacaranda.org> wrote:
>> Good point, but how could it be otherwise? The only thing that could
>> avoid this would be if executing tahoe at runtime triggered automatic
>> installation of new versions of dependencies. I'm sure nobody here
>> wants that. :-)
> Er, setuptools support scripts will *use* newly installed versions of
> dependencies automatically, whenever they satisfy the requirements.

Okay. The part I'm still not quite getting is what behavior you and/or
Brian want from your ideal build system. I'll write a quiz below.

> Compare the effect of the code you posted with what is on current trunk:
>  - on trunk, foolscap >= 0.6.0 is a requirement so upgrading to
>   twisted 10.2 will not break anything.
>  - with your code, upgrading to twisted 10.2 will break an existing
>   Tahoe build/install.

This is entirely due to my code relaxing the requirement on foolscap
from >= v0.6 to >= v0.5.1, which I thought was what Brian wanted.

>> The best thing we could do in that case, I believe, is emit a specific
>> error message saying that we require foolscap >= 0.6, perhaps with an
>> associated comment saying that the reason we require foolscap >= 0.6
>> is that we have Twisted >= 10.2.
>> Hm, oh look! That's exactly what tahoe will do:
>> http://tahoe-lafs.org/trac/tahoe-lafs/browser/trunk/src/allmydata/_auto_deps.py?annotate=blame&rev=4893#L99
> That code doesn't always work (in particular, due to the side-by-side
> installation problem in #1246 and #1258). Note that the code at
> <http://tahoe-lafs.org/trac/tahoe-lafs/attachment/ticket/585/bb-freeze.darcs.3.patch#L225>
> does work in those cases.

Okay. I would be okay with using the current code even though it has
issues #1246/#1258, or with merging your improvements if we can do
that for v1.8.2. (As far as I understand, it often works, currently,
despite those issues.)

Here's the quiz:

1. You have Twisted < 10.2 installed on your system. You download
Tahoe-LAFS v1.8.2 and run "python setup.py build". What do you want
the build system to do?

option a: require foolscap >= 0.5.1

(Note: this was an easy question just to get you started.)

2. You have Twisted >= 10.2 installed. You build Tahoe-LAFS v1.8.2.
What do you want it to do?

option a: require foolscap >= 0.6.0

(Okay that was another easy one.)

3. You have Twisted < 10.2 and Foolscap < 0.6.0 installed. You build
Tahoe-LAFS. It is satisfied with the packages already installed
(because 1=>a). Then you manually upgrade your Twisted to == 10.2.
Then you do *not* run Tahoe-LAFS's "python setup.py build" again, but
you do run "tahoe start". What do you want it to do?

option a: emit a clear error message saying that it has Foolscap
v0.5.1 installed but it needs Foolscap v0.6.0 and stop.

option b: ?

4. Please write in your own quiz question here and answer it.



More information about the tahoe-dev mailing list