[tahoe-dev] depending upon numpy/sqlite (was: buildbot status -- Ruben Fedora)
Brian Warner
warner-tahoe at allmydata.com
Mon Jun 1 00:12:50 PDT 2009
On Fri, 24 Apr 2009 17:19:31 -0600
"Zooko O'Whielacronx" <zookog at gmail.com> wrote:
> In a related story, Brian, could we add "reliability_tool" as an
> "Extras" feature to the Tahoe metadata and show that it requires numpy
> for that, as described here:
>
> http://peak.telecommunity.com/DevCenter/setuptools#declaring-extras-optional-features-with-their-own-dependencies
>
> Or, alternately, just mark numpy as required for Tahoe (making the
> reliability tool non-optional)?
I wouldn't mind seeing numpy (for the reliability tool) and/or sqlite (for
the backupdb) added to a setuptools metadata field for some optional
"reliability_tool" and "backupdb" features. On the other hand, I don't want
to burden first-time users with the decision of whether they need to fulfill
these dependencies or not. Imagine the thought process: "hm, reliability
sounds important, I guess I want some of that, so I guess I have to figure
out how to install this lumpy dumpy numpy thing. Eww, Fortran? Really?".
I'm really against forcing a hard dependency on numpy, because the
cost-benefit ratio is too low. Imagine trying to build numpy, with all
its transcendental fortran-interfacing lapack/atlas/blas optimized
excitement, on Zandr's little NAS box with its 128M of ram. Then
imagine discovering that it's only used for one web page that you never
touch and could just as easily access from testgrid.allmydata.org
instead. Then imagine cursing at the person who decided that life would
be "easier" if numpy were a hard requirement. I don't want to be either
of those people :).
Sqlite is a bit easier of a requirement, because it's batteries-included in
py2.5 and py2.6 . The cost of requiring it for py2.4 is somewhat less than
numpy (it's still an extension module, but at least it's fairly
small and in plain C), and the benefit is somewhat higher (if you're
actually doing backups, the backupdb is awfully nice, and eventually
we're likely to start using sqlite for things like accounting tables).
So it wouldn't be the end of the world if Tahoe forced you to install
pysqlite or be running 2.5/2.6, as long as the metadata format allows
us to actually express that. (I would not be surprised if it were
difficult to tell setuptools to be happy with the
probably-.egg-info-less sqlite3 that comes included with py2.5, and I
won't be happy with metadata that obligates py2.5 users to install a
redundant sqlite3 library just to appease setuptools).
cheers,
-Brian
More information about the tahoe-dev
mailing list