[squeak-dev] The Trunk: Monticello-bf.449.mcz

Levente Uzonyi leves at elte.hu
Tue Apr 5 13:26:09 UTC 2011


On Tue, 5 Apr 2011, Bert Freudenberg wrote:

>
> On 04.04.2011, at 19:24, Levente Uzonyi wrote:
>
>> On Mon, 4 Apr 2011, commits at source.squeak.org wrote:
>>
>>> Bert Freudenberg uploaded a new version of Monticello to project The Trunk:
>>> http://source.squeak.org/trunk/Monticello-bf.449.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: Monticello-bf.449
>>> Author: bf
>>> Time: 4 April 2011, 6:35:26.515 pm
>>> UUID: 69f9c68d-9545-44d1-905f-18f77f95cb59
>>> Ancestors: Monticello-bf.448
>>>
>>> - revert MCRepository>>highestNumberedVersionNameForPackageNamed:
>>> - the argument is a package name, the additional stripping introduced in Monticello-ul.444 stripped off part of the package name
>>> - this fixes installing via Installer
>>
>> With this change we go back to the previous bug. Try the following:
>>
>> (MCHttpRepository location: 'http://squeaksource.com/OCompletion') highestNumberedVersionNameForPackageNamed: 'Ocompletion-ul.94'
>>
>> It will return nil, but the version is there.
>
> The argument to highestNumberedVersionNameForPackageNamed: is a *package* name, not a version name, as the selector implies. You are just using it incorrectly.

You're right, it's a bug introduced in Installer. It shouldn't use 
#highestNumberedVersionNameForPackageNamed:, but some kind of prefix 
matching that was done originally.

>
>> The same thing happens when #highestNumberedVersionNameForPackageNamed: is sent to this repository in InstallerMonticello >> #mcThing during the installation of OCompletion from SqueakMap.
>
>> It's probably an Installer bug btw, but I've got no time to check it now.
>>
>>
>> Levente
>
> I encountered the problem in Installer, too. Here is how it is used:
>
> (Installer ss project: 'SqueakSSL')
> 	install: 'SqueakSSL-Core';
> 	install: 'SqueakSSL-Tests'.
>
> This correctly calls highestNumberedVersionNameForPackageNamed: passing 'SqueakSSL-Core' which works fine. Your version stripped off the '-Core' part which is obviously wrong.

Right, I tried to make the other case work, which broke this.

>
> If the Ocompletion script requests the version 'Ocompletion-ul.94', then this method should not even be invoked, it should just use that version, no?
>
> Maybe the Ocompletion script is wrong (I did not check), or Installer needs to strip off the '-ul.94', or the version name parser needs to be more intelligent about recognizing versions vs. packages. But this method needs to work if it is passed a correct package name, and that's why I reverted it.

It's not about Ocompletion, it was just an example. Installer originally 
supported these kind of scripts, so we should restore this feature, 
because I guess quite a few exsisting scripts rely on this. The bad thing 
is that we have no tests for Installer, thats why such a basic feature 
could be broken silently.


Levente

>
> - Bert -
>
>
>>>
>>> =============== Diff against Monticello-bf.448 ===============
>>>
>>> Item was changed:
>>> ----- Method: MCRepository>>highestNumberedVersionNameForPackageNamed: (in category 'versions') -----
>>> highestNumberedVersionNameForPackageNamed: aString
>>> + 	^ (self versionNamesForPackageNamed: aString)
>>> - 	^ (self versionNamesForPackageNamed: aString asMCVersionName packageName)
>>> 		ifNil: [ self error: aString , ' not found in ' , self asString ]
>>> 		ifNotNilDo:
>>> 			[ : pkg | pkg detectMax:
>>> 				[ : each | each versionNumber ] ]!
>>>
>>>
>>>
>>
>
>
>
>



More information about the Squeak-dev mailing list