The future of SM...

goran.krampe at bluefish.se goran.krampe at bluefish.se
Sat Jul 31 17:00:28 UTC 2004


Hi Lex and all!

Trying to squeeze in an answer here...

lex at cc.gatech.edu wrote:
> Okay, here is a response to a few important issues in this thread.
> 
> 1. Just to be clear, what I have called "multiple maps" is pretty much
> equivalent to local servers plus the ability for a server to have
> multiple parents.  I'll call it "multiple parents" from now on, if I am
> talking about potential changes to SqueakMap.

Yes, I am still "reflecting" on the various use cases and effects. :)
We will see. It is currently on the "back burner" though, I want to
incorporate a solution for dependencies first (including making it
possible for Stephan to experiment with his model).

> 2. SMCategories could be used to designate universes, but they are not
> used that way right now.  It should be a big deal to put a package into
> a universe, but putting a package into "3.6" is currently just a simple
> click of the mouse in a web browser.  If we want to implement universes
> with categories (not my prefered implementation), then we need to define
> which category goes with which universe, and we need to modify the UI to
> make it clear that teleporting a package from one universe into another
> is a big deal that requires careful thought.  For some universes, it
> should even require permission to add things in.

Sure. But all this is very doable. Adjustements to the UI, adding some
mechanisms like perhaps some permissions etc.

> 3. No one seems to get my distinction between a catalog of everything,
> and a one-click no-hassle package installer, updater, and remover. 

Well, I think see the distinction.

> SqueakMap, today, is a catalog of everything.  You can expect to go to
> SqueakMap and find any package that exists.  However, you can't really
> expect to click on an item in SqueakMap and have it install successfully
> along with any dependencies it needs.

Of course not - because it doesn't *have* dependencies yet. Pretty
obvious to me.

> That's fine for a catalog of everything.
> 
> In a one-click installer, though, you should not even *see* stuff that
> cannot be installed.

This is just filtering, trivial IMHO.

> You should not have to answer questions about
> different versions of stuff, unless you have explicitly asked to get
> into the nitty gritty.  Every package version you see in the tool,
> should be consistent with whatever universe you are operating in.

Fine, again filtering and preferences.

> All of these requirements seem to add up to a different system.  To

I don't agree. :) I just see it as new use cases and requirements that
we need to implement.

> begin with, it seems both necessary and useful to admit that universes
> exist and to have the tools talking about them.  One way to do that is
> to associate different categories, maps, or catalogs with different
> universes, so that you choose your universe by choosing which
> categories/maps/catalogs to get packages from, but this kind of
> association will not happen unless we plan for it.

My biggest problem with "multiple maps" (in a loose meaning) is that we
very likely will loose the very important aspect of today - there is ONE
place to go to. I don't want to chase around looking for "maps" etc. Why
should I need to?

I want to solve the use cases and STILL maintain our very nice complete
singular place that we can go to.

> Anyway, if you want SqueakMap to be a reliable auto-installer, then you
> are pushing yourself to have to deal with the issues in this point at
> some point.

I am. All the time. Why do you think I am working on dependencies?!

> On the other hand, if you are happy with it being a catalog
> of everything -- a humongously valuable service -- then maybe a lot of
> the issues in this post go away, because you can just tell people to use
> some other tool if that's what they want.

I want to solve as many use cases as possible. I have always wanted to
do that.

> 4. As a general rule of thumb, it is nice if the system lets any
> particular thing be decided in a decentralized way, even if we don't
> expect to need it immediately.  No matter how benevolent a power is
> controlling the central server, there are likely to be some cases that
> someone legitimately wants different things locally.    Let's late bind
> our policies.  :)
> 
> That's the general decentralization mantra.  Let's consider one
> particular case, to give you the idea: who decides what is allowed to go
> into the map?  Several people have suggested that every package should
> have an entry in the "main" SqueakMap server.  If you think about it,
> though, there are actually plenty of packages that would make sense to
> put into *a* SqueakMap, but not into *the* "main" SqueakMap server.  For
> example:
> 	
> 	a. Home movies by one of my relatives.  The main SM will probably not
> want to hold a terabyte of stuff that only a handful of people care
> about.
> 	
> 	b. Stuff that is illegal to post on a server in some countries.  The
> central server will probably want to shy away from such things, but
> since such things include DVD-playing software, other people in the
> world might reasonably want to do it.
> 	
> 	c. Stuff *offensive* to large portions of the regular Squeak community.
>  I won't try to draw an exact line, but to get your imagination going,
> SM should surely be child-friendly and religion-neutral.
> 
> 	d. Stuff that is private to one organization, e.g. Disney's software
> for a new ride at DisneyWorld.
> 	
> It would be extremely nice if people in the above categories can use the
> SqueakMap software without having to coordinate with any central Squeak
> authority, much less having to register their packages on the "main" SM
> server.  They don't want their stuff public, and for the most part
> nobody else wants to see it, either.

You know - I have always planned for this! That is the whole point with
many of the use cases for the new architecture which I was planning as a
tree of servers - and now am undecided on.

You make it sound like I am opposed to this - and I am NOT. Really.

> This "what goes in?" question is just one example.  For just about any
> property you can name for "the" SqueakMap, there is a legitimate reason
> for some people to want to do something different locally.  We should
> strive not to *force* these decisions to be made centrally whenever we
> can avoid it.  We should strive not to hamper our future organizational
> possibilities due to assumptions in the architecture.
> 
> 
> 5. Mixin repositories are very valuable, even though we don't need them
> immediately.  Debian has hundreds of these, and it is only through the
> mixins mechanism that Debian users can use Squeak itself through the
> standard Debian tools.  In the above listing, everything in a-c is
> likely to be prefered as a mixin; individual items matching those
> categories can be independent from each other, and different people will
> want different subsets of those servers to be visible in their universe.
> 
> Since mixins seem to be valuable, we should surely think carefully
> before we make any architectural assumption that would make them
> impossible.  Is the single-parent assumption such an assumption?  It
> appears to be.

Well, I am rethinking the model after discussions with Julian. I still
don't want to end up in a world where people have to hunt around for
"maps".
 
> 6. Goran asks about my solution for merging.  I look at class
> SMSqueakMap and I see no problem with simply concatenating the variables
> that come from the parents.  I really don't see what the big deal is,
> because you would only try to merge SM's that are friendly with each
> other and mostly consistent.  If the parent maps use different UUID's
> for the same category, then it's two different categories.   If name
> conflicts are bothersome, then rename one of them.  Etc.

Well, you are ignoring several cross links in the model, but whatever I
don't bother discussing that anymore...

> At any rate, however hard it is to do a merge, it is only going to get
> harder as the model gets more complicated.  If merging is valuable --
> and it seems to be -- then the sooner it is addressed the less painful
> it will be.

Well, I have chosen to get the model a bit more evolved first -
dependencies. Then I will go for the new arch.
 
> The prototype Universes package has merging in it, for any who want to
> see its solution to merging.  Look at class UCompoundUniverse.
> 
> 7. You say that the versioned configurations will automatically contain
> unversioned dependency, but I don't see how that can be so.  Here is an
> unversioned dependency:
> 
> 	Scamper depends on URL
> 	
> How can this be inferred from a big soup of packages like I have in my
> present image?  It seems like the developer needs to give a hint at some
> point.

Don't understand. But whatever. If Scamper-r1 depends on URL-r3 then I
see the dependency, don't I?

> Along these lines, can anyone give a *specific* response to the
> A,B,C,Collections example, that uses versioned configurations?  Goran's
> response either had the tool asking the user on the very first upgrade,
> which does not seem the right behavior for a no-hassle one-click
> installer, or it had some as-yet-undefined compatibility level.  How
> does a compatibility level work, and is it really going to give
> something more reliable than simply "grab the most recent version" ?

What?! I gave you a *specific* response exactly along my model. And the
questions can easily be changed to auto actions based on preferences.
The compatibility level IS ALREADY ON SM. Just create a new release and
you will see. And I have explained TONS of times what it is.

Sigh. I gave my "specific response".
 
> 8. What "mess" in Debian is Goran talking about?  If SqueakMap worked as
> well as Debian's apt I'd be ecstatic, so clearly I must be missing
> something.  It is surreal to mention the mixing of testing and unstable

Well, you can't compare the two when SM HAS NO DEPENDENCIES YET.

> as a problem, because that is precisely what I am suggestiong that we
> *not* do in the auto-install tool.

And *I* am suggesting that it will not be problematic to do it in MY
model.

>  Testing and unstable are different
> universes in Debian, and they should not be mixed.  In fact, the Debian

What do you mean should not be mixed? I think that is up to the user.

> tools do *not* mix them unless you go hack the files manually or unless
> you circumvent the main tools.  SqueakMap, on the other hand, has

That is wrong AFAIK. I used Galeon from unstable when running testing.
Don't recall all the details on pinning etc, but mixing sure is doable.

> everything mixed to begin with, which leads to people searching for ways
> to separate the universes back out.
> 
> 
> 
> -Lex

regards, Göran



More information about the Squeak-dev mailing list