reliability, project loading idea (was Re: iteration - don't optimize it)

Simon Michael simon at joyful.com
Fri Feb 1 02:43:47 UTC 2002


"Richard A. O'Keefe" <ok at atlas.otago.ac.nz> writes:
> The beauty and power of Squeak is amazing; its fragility is scary.  By
> this I mean the way things stop working between one release and the
> next, the number of projects out there that just don't load any more.

Nicely put, I want to highlight this. It's an important insight for
newcomers, whose first instinct is to load a bunch of projects off BSS and
squeakland in order to see some interesting stuff. 

When this works reliably squeak will start spreading more quickly, and be
a more pleasant end-user tool.

> On the one hand that kind of thing practically doesn't happen in Eiffel;

I'd really like to be able to sling around this phrase with "Squeak" on
the end of it. Hmm, what else could we be doing to make better use of
assertions/tests/peer-review-type safety nets ?

I was thinking about cost-effective ways to improve the project loading
experience. One might be to do semi-automated distributed testing of
project loading, something like this:

- gather image compatibility data for projects: every time a project is
loaded from a super swiki, record the outcome and this image's version
(its highest-numbered update from the main stream) on the server. Eg save
a couple of fields on the project's swiki page:

  successfullyLoadedWith: #(4599 at 1 4640 at 9 ...)
  failedToLoadWith: #(4640 at 1 4102 at 5 4664 at 3 ...)

The second number is a count. Reset these lists or the counts whenever the
project changes.

- optionally, have one or more robots loading projects in various images
to find the problems before we do. Something like mozilla's tinderbox.

- use this data in various clever ways. In particular when browsing
projects for download indicate up front how likely they are to work in
this image.  Eg green = "many people have successfully loaded this project
recently in an image resembling yours", red = the opposite, black =
unknown status. For newbies eg in the squeakland image, list only projects
known to be currently compatible with this image.
 
Comments ? I won't get further with this in the short term, if anyone
feels so moved please jump right in.

-Simon



More information about the Squeak-dev mailing list