[squeak-dev] Release candidate Squeak4.4-12320 ready

Chris Muller asqueaker at gmail.com
Sat Dec 22 21:02:57 UTC 2012


> Another point: The window opens at 560 at 286 so its bottom-right corner is at 1360 at 886 which might by off of some screens. I'd position it further up to the left, maybe at ((1024 at 768) - (800 at 600)) / 2 ==> 112 at 84

Past Squeak releases were saved in standard size 800x600, which is a
good balance between what's needed to operate Squeak, what's available
on screens, and what's a desired-size operating environment that users
not wishing to run full-screen would want.  800x600 is a *balanced*
size.

560x286 is non-standard and probably something that will force users
into a resize gesture before they will do anything.

So, we should please deploy the image at 800x600.


>>> This doesn't solve the dirty package problem though
>>> (http://lists.squeakfoundation.org/pipermail/squeak-dev/2012-December/167052.html).
>>>
>>> I ran the following doIt in the above image:
>>>
>>>
>>> | trunk dirty |
>>> trunk := MCRepositoryGroup default repositories detect:
>>> [:ea | ea description = 'http://source.squeak.org/trunk'].
>>>
>>> dirty := Dictionary new.
>>> MCWorkingCopy allManagers collect:
>>> [:ea || changes |
>>> changes := ea changesRelativeToRepository: trunk.
>>> changes isEmpty ifFalse:
>>> [dirty at: ea put: changes]].
>>> ^ dirty
>>>
>>> It takes a while, but it gives the following list of dirty packages:
>>>
>>> Collections
>>> FlexibleVocabularies
>>> Graphics
>>> Multilingual
>>> SMLoader
>>> ToolBuilder-Kernel
>>>
>>> Some of these are harmless, but we shouldn't ship the image without fixing
>>> at least Collections and ToolBuilder-Kernel.
>>
>> I can confirm your list. How do we clean these though? For instance,
>> if I manually remove our old friend WeakRegistry class >>
>> #migrateOldRegistries I can't save my change because MC rightly thinks
>> there's no difference between my (new, modified) code and trunk?
>>
>> Is it completely crazy to - in this case at least - just remove the
>> method in a do-it and then make sure the package isn't dirty by
>> verifying with trunk?
>>
>> WeakRegistry removeSelector: #migrateOldRegistries.
>> "Some as yet undecided way of forcing a dirty/clean check"
>>
>> frank
>
>
> It's crazy, and there's a better way: just force-load the packages:
>
> | trunk |
> trunk := MCRepositoryGroup default repositories detect:
>         [:repo | repo description = 'http://source.squeak.org/trunk'].
> MCWorkingCopy allManagers
>         do: [:wc |
>                 wc ancestors size = 1 ifFalse: [self error: 'Package must have single parent: ', wc packageName].
>                 wc modified: true. "make sure actual diff is performed"
>                 [(trunk versionWithInfo: wc ancestors first) load] on: Warning do: [:w | w resume]]
>         displayingProgress: 'Cleaning packages'.
>
> Since the updater loads the latest packages anyways, this could be merged into that step. I guess just disabling the #upgradeIsMerge preference before updating might be enough (although we would have to remove the line in updateFromRepositories: which enables it). But make sure to re-enable it afterwards: if it was unset in a user's image, she would lose her changes when updating.
>
> In any case it needs to be verified by something similar to what Colin provided above, like:
>
> | trunk |
> trunk := MCRepositoryGroup default repositories detect:
>         [:repo | repo description = 'http://source.squeak.org/trunk'].
> dirty := Dictionary new.
> MCWorkingCopy allManagers
>         do: [:wc | | diff |
>                 diff := wc changesRelativeToRepository: trunk.
>                 wc modified: diff isEmpty not.
>                 wc modified ifTrue:
>                         [dirty at: wc put: diff]]
>         displayingProgress: 'Verifying packages'.
> dirty ifNotEmpty: [self error: 'Dirty packages: ', dirty keys].
>
> I just did both of these in the latest 4.4, the first did clean all packages, but the second still found a problem in Graphics (which I just committed a fix for). So really both should be part of release builder.
>
> - Bert -
>
>
>


More information about the Squeak-dev mailing list