An uncomfortable question

goran.hultgren at bluefish.se goran.hultgren at bluefish.se
Thu Oct 31 08:41:50 UTC 2002


Hi all!

"Swan, Dean" <Dean_Swan at Mitel.COM> wrote:
[SNIP]
> And regarding SqueakMap and DVS, realize that these are based on the monolithic image model.  They are more or less fancy user interfaces to manage filing in the various change sets (I know I'm oversimplifying a bit, but the point is still valid).

Well... No, I think you are oversimplifying a bit too much. SqueakMap is
a distributed catalog of packages that can be installed into a Squeak
image. It is already supporting different package formats:

-.st, .cs, .st.gz, .cs.gz (Simple fileins as you mention)
-.pr (Implemented but not released)
-.sar (Neds new megaformat capable of anything, probably similar to
debs, rpms)
-.st DVS (Avi's DVS .st format which both can be filed in conventionally
AND filed in using DVS thus making a package more or less upgradeable)

My point here is that SM doesn't just handle changesets but any package
format. And when the package formats evolve further we will start seeing
new ways to deal with them - like a controlled upgrade for example. Or
uninstall.

I am not sure what you mean with "based on the monolithic image model"
but IMHO SqueakMap together with DVS etc is changing this. As a small
example, very soon Celeste can be cut out of the image and be published
on SM - I think Daniel is itching to do that and we already have all the
tools that it takes.

In fact SM itself is probably (this is the current proposal) the very
first package that is NOT going into the image! Yep, eating my own
dogfood. For the curious this means that when SM hits the update stream
for 3.2 (we are hopefully talking days now) it will actually only be a
little bootstrap script going in - not SM itself. What does this mean in
practice?

It means that when you update 3.2 you will get a chance to install SM
into it "by remote". As the user you will not see the difference but for
us package developers it is a huge difference. The SM code that you now
have in your image is NOT maintained using the regular update stream. It
is maintained outside of the image. When I (being the maintainer of SM)
integrate new fixes etc and decide to release a new version of SM I can
do that independently and you will be able to upgrade (from within SM)
SM itself when you decide to, also independently of other packages.

In short, packages published in SM (including SM itself) have their own
maintainers, their own "updatestreams" and their own place of storage on
the net - so they are completely independent of the image.

> Of course, monolithic systems have the issue of shared namespaces which can make it difficult to make different packages play nice together in the same image, so like I said, the problem is non-trivial.

Yes, namespaces etc is cool and we will probably end up with it
sometime. But we don't need to solve all problems at once - simple class
name prefixes go a long way.

SqueakMap does work pretty nicely already - and we all know things are
missing but we are working on it. The next big step for SM will probably
be versions of packages and handling dependencies (in some way - there
are different ways to do it) between them. Before that though I want to
wrap up the extensions sent to me from Ned and Avi, smack down on a few
silly bugs and get 1.0 out the door.

regards, Göran




More information about the Squeak-dev mailing list