[tahoe-dev] new foolscap version requirement
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:
> 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
> 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