On Thu, Jan 6, 2011 at 4:45 PM, David-Sarah Hopwood <[email protected]> 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. Regards, Zooko _______________________________________________ tahoe-dev mailing list [email protected] http://tahoe-lafs.org/cgi-bin/mailman/listinfo/tahoe-dev
