Important for 3.9 submissions and fixes

Avi Bryant avi.bryant at gmail.com
Sat Sep 10 19:27:21 UTC 2005


On Sep 10, 2005, at 12:19 PM, Daniel Vainsencher wrote:

> I think that the solution is counter intuitive but simple. When  
> moving things from Morphic to EToys, with M.1, E.1 being the  
> initial versions, you need to publish M.2, E.2 with M.2 depending  
> on E.2, so that E.2 (the version that already has the stuff) is  
> loaded before M.2 (the version that's missing the stuff).
>
> So the dependencies seem inverse, but if you think about them as  
> just a way to order loading, rather than as a way to specify what  
> packages need what other packages, it makes sense. And this can be  
> changed in the next release of the packages.

Actually, I think either way would work, because IIRC Monticello  
doesn't actually use dependencies as a way to specify ordering,  
simply as a way to figure out which versions of which packages to  
load together.  It then dumps all of the methods and classes into a  
big pool and sorts out the load order itself.  As long as you make  
sure to load M.2 and E.2 at the same time, you should be fine.

As Marcus mentioned earlier, our current configurations system  
*doesn't* do this - it's trying to enforce a particular order, and so  
loads every package individually.  All in all, I think this is a  
mistake.  In the rare cases where Monticello can't get the order  
right on its own, we can post sequential configurations to the update  
stream to force its hand.  Otherwise, I think we should be doing it  
as a bulk load.

Programatically, by the way, that looks like this:

MCVersionLoader new
    addVersion: ...;
    addVersion: ...;
    addVersion: ...;
    load

Avi




More information about the Squeak-dev mailing list