let's build package universes

Lex Spoon lex at cc.gatech.edu
Sun Jan 30 22:33:14 UTC 2005


Let's build package universes as part of our main release cycle.  It's
easy to do, now that the package universes toolset is all together, and
it provides an important artifact both for newbies, and for people who
want to build something *in* Squeak.  It also gives us a mechanism for
building really stable Squeak's, should enough people ever be interested
in trying to make that happen.


Specifically, I am proposing:

	1. Whenever we make a release, we make the standard basic and full
images be based on universes, just like in this 3.7u1 image I announced
in the previous email.  These are the images a user should download by
default.
	
	2. We should have a standard development universe at all times. 
Developers who want their package to be in the standard public set of
packages, should post entries to this universe just like they post to
SqueakMap right now.
	
	2b. If we want to get fancy, we can have a "freeze" period near the end
of each release, where the only updates allowed to the dev universe are
for bug fixes.
	
	3. It is considered a bug for entries in the current development
universe to not load properly.  If such bugs persist until a release is
about to happen, the offending package is removed from the universe.
	

These are easy things to do.  I ought to have enough time to produce the
universized images, so don't worry about that.  The rest of the Squeak
developers simply need to post their packages to the current development
universe.  That's easy: install universes from SqueakMap, open a
Universes Editor, create an account, and post your package.  The instructions
are on the Swiki page (linked below).

Package universes address a big problem we are having regarding version
skew.  People who simply build on top of Squeak, want to have a stable
basis to work from.  Further, I'm itching like heck from hearing people
whine about version skew, and from running into it in practice.  Debian
has 8000+ packages and 900+ developers, and they routinely produce
stable releases where all the most critical bugs have been fixed, all
the packages are loadable, and (at worst) the truly messed up packages
have been removed as standard install options.  Package universes let us
follow something like their process, and accomplish the same thing.

Along these lines, I believe they address Peter's concerns about every package
changing the base system and thus being incompatible with each other.  With
a universes mindset, it is considered a bug for two packages to interfere in
this way, and if the bug doesn't get fixed, eventually one of the two packages
must be removed from the universe.

Package universes also address our small problem of package
dependencies.  It's kinda nice to just click on Chuck and say "install"
and it happens.  With our current setup, you have to install several
pre-reqs before installing Chuck will work, and you have to carefully
read the package descriptions to see.


For the record, I don't care whether we use my universes toolset to
accomplish all this.  In fact, I started this discussion half a year ago
by saying I think that SqueakMap should have multiple maps--one map per
package universe.  If an alternative toolset comes along that does the
same thing, I am happy to pass the baton and see that toolset used
instead.  I don't even really have time to work much on this, and am
simply doing it because I think it's extremely important.  In the
meantime, of course, let's use the tools we have.


LINKS

"Package Universes"
http://minnow.cc.gatech.edu/squeak/3785

"The Future of SM" thread which started all this:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2004-July/080007.html
http://lists.squeakfoundation.org/pipermail/squeak-dev/2004-July/080190.html

the original universes announcement:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2004-July/080585.html



-Lex



More information about the Squeak-dev mailing list