[V3dot10] stable 3.10 universe

Ralph Johnson johnson at cs.uiuc.edu
Sun Oct 7 13:15:21 UTC 2007


On 07 Oct 2007 14:17:55 +0200, Lex Spoon <lex at lexspoon.org> wrote:
> I intend for there to be a stable 3.10 universe that goes along with
> the 3.10 image.  Such a universe would have all known packages that
> load into Squeak 3.10 and do not conflict with each other.

As you know, I am a big fan of Package Universe.  I think that
deciding to use it was the best thing we did in 3.10.

That said, I disagree with everything in your message.

Packages will always be less stable than the core image on which they
are built.  Most of the creativity and energy of the Swueak community
will take place in packages, not in the core image.

Consequently, it is silly to think that a Universe will be static.  It
will be constantly evolving.  If we want people to use 3.10, they must
be able to use the latest Universe.

The current 3.10 development universe is less than ideal.  Lots of
things don't even load properly.  Part of the problem is that most
packages are part of squeak-dev and they will load fine as part of
squeak-dev, but not on their own.  There are some dependencies that
are not expressed properly.  Like everything else, a universe needs to
be tested if you want it to work.

> 1. It would be nice if 3.10 pointed to this universe by default.
>    Thus, before making a final release, please change it from using
>    the "development" universe to the "stable3.10" universe, like
>    this:
>
>      UUniverse switchSystemToUniverse: UUniverse squeak310Universe
>
>    This universe is empty right now, but can be populated quickly
>    without needing changes to the image.

No, first you populate the universe, and then we'll point to it.  We
don't want to release an image that is less useful than the one we
just released.

> 2. No package in this universe should conflict with another.  I have
>    thought long about how much I want to be involved in Squeak
>    releases, and this is the one thing I really care about.  It's not
>    a very good package universe if loading package A harms or even
>    obliterates package B.  This includes the case of package "A beta"
>    obliterating package "A" !
>
>
> Thoughts?  There are many ways to satisfy rule 2, and I am happy with
> pretty much any of them.  The simplest solution is to pick a single
> version of each package.

Any solution requires that you test all the packages.  Strictly
speaking, you ought to test every combination of every package, but
that is too much work to be practical.  But you ought to test each one
in isolation.  Popular combinations will be their own packages, so the
policy of testing every package is probably good enough.

I agree that there should be only one version of each package.  In
fact, I would prefer that were true of the development package
universe, too.  I find the proliferation of versions confusing and
useless.

> To give some perspective, the 3.7 and 3.9 universe releases were
> independently released images.  I would like it if the 3.10 image is
> the first one that actually is a stable universes release.  I believe
> we can make that happen given the interests of everyone that is
> involved.

I do not know what you mean by a "stable universes release".  If you
mean that once we release the final 3.10 image that you will never
change the 3.10 universe then I think that is a mistake.  I think that
the 3.10 universe must be continually updated.  Forever.  Until nobody
cares about it anymore.

In practice, most 3.11 packages will work in 3.10.  People will be a
lot happier with 3.10 if proven 3.11 packages get added to 3.11.  This
does not have to happen right away, but every month or so, the 3.10
universe should be updated with improved versions of packages, and
with new packages that have proven their use.  Of course, there will
be some 3.11 (or 3.12, or 4.0) packages that do not work in 3.10, and
they should not be added to its universe.

I suppose we could have a policy that once 3.11 (or 4.0, or whatever
comes next) comes out that we no longer update the 3.10 universe.  The
real point I am making is that a package universe should be more
flexible (i.e. less stable) than the image it is based on.

Also, you need to test every package in the package universe.  The
biggest problem is that a lot of the packages have problems.  But you
probably don't want to release those anyway.  I can give you my
script, or you can use Keith's system and make your own script.  That
part is easy.

-Ralph


More information about the V3dot10 mailing list