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

Frank Shearar frank.shearar at gmail.com
Sat Dec 22 22:51:35 UTC 2012


On 22 December 2012 21:02, Chris Muller <asqueaker at gmail.com> wrote:
>> 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.

So I presume that we are actually talking about the window in which
Squeak lives, right? The extent of the host window?

The window's the same size as the 4.3 release. I've not altered it.
Note as well that the ReleaseBuilder says 'self setDisplayExtent: 800
@ 600'.

frank

>>>> 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