[squeak-dev] Monticello issues in the Trunk

Levente Uzonyi leves at elte.hu
Sat May 7 12:56:49 UTC 2011


On Sat, 7 May 2011, Frank Shearar wrote:

> On 2011/05/07 02:30, Levente Uzonyi wrote:
>> Hi,
>> 
>> there are a few issues with MC in the Trunk, which is a big problem
>> IMHO, because our developement process is based on it:
>> 
>> 1) The update process doesn't merge packages automatically anymore. If
>> you update your image now, it should have Tools-fbs.350 and
>> Tools-fbs.349 merged, but only Tools-fbs.350 is loaded.
>
> I had worried that something bad might happen. These two share a common 
> ancestor (348), so we have what I usually call a split branch. Monticello 
> looks like it treats the more recent split as the new head, which is not 
> unreasonable.
>
> So we need a new commit to remerge? See Tools-fbs.351, after which history 
> will (or should, at least) look like this:
>
>     /- 350 -\
> -- 348       351
>     \- 349 -/

The MC update process used to do it automatically without creating a new 
version. So after updating your image you should see Tools (fbs.349, 
fbs.350), instead of Tools (fbs.350).

>
>> 
>> 2) Monticello's test are broken, probably due to the changes of it's
>> mock package structure. A clear sign of the bug is that MCSnapshotTest
>>  >> #mockClassExtension is removed after running the tests, which
>> results in several errors and failures. The reason why this went
>> unnoticed is probably because of the lack of manual test runs, but IMHO
>> that's mandatory if you upload stuff to the Trunk.
>> 
>> 3) In the various MC browsers mczs are sometimes duplicated in the lists
>> (e.g. Kernel-nice.582.mcz appears twice), but only the first can be
>> selected (this is probably a property of the list that holds the versions).
>
> The underlying list (like MCFileRepositoryInspector's versionNames, the 
> current culprit) looks sane. Ah, but allVersionNames has the duplication.
>
> That's because a booboo happens in 
> MCCacheRepository(MCFileBasedRepository)>>#readableFileNames:
>
>    <snip>
>    all := self allFileNamesOrCache.    "from repository"
>    <snip>
>    new := all difference: cachedSet.
>    ^ (cached asArray, new)
>        select: [:ea | self canReadFileNamed: ea]
>
> I don't quite follow PluggableSet>>#scanFor: (called by #difference:), but 
> that's what ultimately results in new erroneously containing that 
> MCVersionName.

Yay, I'll check it out soon, thanks.


Levente

>
> frank
>
>



More information about the Squeak-dev mailing list