Some thoughts 2/3: Preparing 3.9

Avi Bryant avi at beta4.com
Tue Sep 14 09:07:11 UTC 2004


On Sep 14, 2004, at 10:19 AM, Bert Freudenberg wrote:

>> We actually discussed this a bit earlier (although no one summarized 
>> the reasons as well as you did here) and generally agreed that 
>> Monticello should go in 3.8.  It's actually in the plan for 3.8:
>>
>> http://minnow.cc.gatech.edu/squeak/3832
>
> I assume you're speaking about the full image, right? We agreed 
> earlier on that no packaging system should go into the base image, but 
> only the infrastructure necessary to build one, in particular 
> PackageInfo. I agree it should make it into the full image which has 
> all sorts of developer tools.

We've agreed various things at various times, mostly because "agreeing" 
in this case usually means that a few people say "yes, sounds good" and 
those who object don't notice the thread or choose not to argue.

 From my point of view, the crucial issue is not what goes into the 
image so much as how we manage the update stream.  People can always 
install Monticello from SqueakMap if they want to, and actually SM now 
does a pretty good job of installing it automatically when it's needed. 
  But a lot of our process revolves around the update stream, and given 
that more and more core packages are being managed by Monticello 
(Markus is using it for his Compiler work and for SUnit, for example), 
there needs to be *some* kind of integration between them.

I can think of two ways this can happen: one would be to allow .mcz or 
.mcd files to be put into the update stream directly, and handle them 
by using Monticello's automatic merging to update the image but 
preserve any local changes.  This would make the user aware of any 
conflicts, and would correctly preserve the ancestry of any changes 
they made correctly, so that if the user then publishes their changes 
they can be correctly merged into other people's images as well.  
However, it would obviously require that Monticello be included at a 
fairly basic level, because the update stream wouldn't work without it.

The second option would be for me to set up some mechanism where you 
can "commit" MC versions to the update stream, where a diff is 
automatically done against the last version of the same package that 
went in, a changeset automatically produced, and this is what actually 
goes out to people's images.  Although this doesn't require MC to be in 
the base image, it means that if people *do* have MC loaded, then their 
images are going to get somewhat screwed up, since they're making 
changes to packages managed by MC without properly adjusting the MC 
ancestry metadata.

I would prefer the first, but if there's opposition to that, then let's 
decide soon that we're not going to do it, so that at least I can 
implement the second and make it available.

Avi




More information about the Squeak-dev mailing list