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

Frank Shearar frank.shearar at gmail.com
Sun Dec 23 19:15:41 UTC 2012


On 22 December 2012 23:36, Bert Freudenberg <bert at freudenbergs.de> wrote:
>
> On 22.12.2012, at 23:51, Frank Shearar <frank.shearar at gmail.com> wrote:
>
>> 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.
>
> Chris, when I wrote "position" in the paragraph above I meant precisely that. I did not propose to change the size.
>
>> So I presume that we are actually talking about the window in which
>> Squeak lives, right?
>
> Yes.
>
>> The extent of the host window?
>
> No.
>
>> 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
>
> We're talking about _where_ the window opens.

OK. I suspect the reason I've not noticed anything like that is
because I'm running 1024x768 on a Lucid box. The window opens rather
close to the top left, pretty much where I'd expect it to. I just
opened a TrunkImage.image on a Mac and it looks like it opens it right
in the centre of the screen. Is that what you see?

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