On Sat, 31 Aug 2013, Chris Muller wrote:
>>> When I prepare a new "shrunk trunk", I run this guy:
>>>
https://github.com/squeak-smalltalk/squeak-ci/blob/master/shrink-trunk.st.
>>> You'll see it just unloads packages and implicitly trusts that those
>>> packages know how to correctly unload themselves.
>>
>> What do you think about having shrink-trunk.st simply be:
>>
>> Smalltalk unloadAllKnownPackages
>>
>> so we can then we can maintain it from the image..?
>
> That method does a lot of stuff which is somewhat redundant. It's too
> long anyway so I'll factor it so we can access just what we want in
> your shrink-trunk.st script.
>
> BTW, in ReleaseBuilder we call an agressive Smalltalk cleanUp: (true)
> vs. with #unloadAllKnownPackages and also your shrink we just call
> Smalltalk cleanUp: (false).
>
> I've looked at the methods and seen the differences between aggressive
> and not but... I was wondering does anyone know whether there is an
> over-arching conceptual difference between the two? e.g., under what
> circumstances would a particular clean-up be considered aggressive vs.
> not?
The idea is that a non-aggressive cleanUp will not modify non-volatile
state (it will flush caches for example), but an aggressive one will
modify stuff (delete changesets, empty cateogires, obsolete packageInfos,
uni-classes, projects, etc).
Here's a comment from Andreas:
"Clean up. When aggressive is true, this will destroy projects, change
sets, etc."
Levente