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

Bert Freudenberg bert at freudenbergs.de
Sat Dec 22 23:36:09 UTC 2012


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. 

- 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