[tahoe-dev] problems with the build/install/test process

zooko zooko at zooko.com
Wed Jan 14 12:36:32 PST 2009


Folks:

Chris Galvan contributed some patches to our buildbot config to make  
each buildslave test what happens when you do commands like:

python setup.py build_tahoe
python setup.py trial
./bin/tahoe --version
python setup.py bdist_egg
mkdir installdir && easy_install -d installdir dist/*.egg
PATH=$PWD/support/bin:$PATH && PYTHONPATH=$PWD/installdir:$PWD/ 
installdir/support/lib/python2.5/site-packages && cd installdir &&  
trial allmydata

It's great to have these tested -- thanks, Chris! -- but currently  
our setup.py fails to do the right thing in many of these cases.

Here are my notes as I look at our numerous failing builders.

First: cygwin

http://allmydata.org/buildbot/builders/cygwin/builds/1660/steps/ 
installtest/logs/stdio

This failure is because setup.py doesn't pass "--reactor=poll"  
whenever starting twisted, including when starting trial.  I guess  
that the best way to solve this is to add a "reactor" parameter to  
the setuptools_trial plugin, but I'm not sure the best way to do  
that, so I think I'll just hack the sys.argv to append "-- 
reactor=poll" until Chris tells me a better way to do it.  :-)

There, done in the kludgey way in patches [3421] and [3422].


Next: edgy, etch,

http://allmydata.org/buildbot/builders/edgy/builds/1874/steps/ 
installtest/logs/stdio

This is the problem of what to do when a dependency is installed, and  
Tahoe requires a newer version of that dependency.  Ideally, I would  
like for the tahoe build process to install the newer version next to  
the older already-installed version, and arrange to use the newer  
version at runtime.  Setuptools comes with this functionality, but I  
don't know how to use that functionality when doing a plugin like  
"trial" -- I know how to do it only when installing with easy_install  
or when running "setup.py develop".  It is called "--multi-version",  
and is the subject of ticket #530 (use setuptools's --multi-version  
mode).


Next: hardy

http://allmydata.org/buildbot/builders/hardy/builds/480/steps/test- 
egg/logs/stdio

Hm, this points to a deeper problem: the buildbot's attempt to run  
"trial allmydata" to test the current source code from its newly  
installed location might accidentally run the unit tests of a  
different version of allmydata installed in the system.  This could  
be related to #145 ("make test" tests the installed version of  
allmydata, not the local sandbox version of allmydata).


Next:

Next: Mac OS X

http://allmydata.org/buildbot/builders/Mac%20OS-X/builds/806/steps/ 
mac_exe/logs/stdio

Hm.  The building of Macintosh packages is currently unsupported, but  
the changes we've made shouldn't have broken the tests that were  
previously passing.

By the way, does anybody want to take over the code to automatically  
build Macintosh packages of Tahoe?  There are many people who have  
expressed desire for such packages.


Regards,

Zooko

patches mentioned in this mail:

http://allmydata.org/trac/tahoe/changeset/3421
http://allmydata.org/trac/tahoe/changeset/3422

tickets mentioned in this mail:

http://allmydata.org/trac/tahoe/ticket/530 # use setuptools's --multi- 
version mode
http://allmydata.org/trac/tahoe/ticket/145 # "make test" tests the  
installed version of allmydata, not the local sandbox version of  
allmydata



More information about the tahoe-dev mailing list