[squeak-dev] The Inbox: Installer-Core-dtl.425.mcz

Levente Uzonyi leves at caesar.elte.hu
Thu Nov 8 22:48:50 UTC 2018


On Thu, 8 Nov 2018, David T. Lewis wrote:

> On Thu, Nov 08, 2018 at 08:55:06AM +0100, Tobias Pape wrote:
>> 
>> > On 08.11.2018, at 03:25, commits at source.squeak.org wrote:
>> > 
>> > A new version of Installer-Core was added to project The Inbox:
>> > http://source.squeak.org/inbox/Installer-Core-dtl.425.mcz
>> > 
>> > ==================== Summary ====================
>> > 
>> > Name: Installer-Core-dtl.425
>> > Author: dtl
>> > Time: 7 November 2018, 9:24:32.82223 pm
>> > UUID: 6a5d8822-147f-460a-9aac-b17f02399538
>> > Ancestors: Installer-Core-cmm.424
>> > 
>> > In the case of a repository containing both 'Chronology-Core-dtl.3' and
>> > 'Chronology-Core-dtl.30', the following will incorrectly load version 30 rather
>> > than version 3.
>> > 
>> >  (Installer ss project: 'UTCDateAndTime') install: 'Chronology-Core-dtl.3'
>> > 
>> > A workaround is to reverse the order of sorting in InstallerMonticello>>mcSortFileBlock, such that 'Chronology-Core-dtl.3' will be detected before 'Chronology-Core-dtl.30' in InstallerMonticello>>mcThing.
>> > 
>> > A possibly better fix is to change InstallerMonticello>>mcDetectFileBlock: to do string equality checks rather than #beginsWith: comparisons. This appears to be correct, but might have side effects, since I do not know the original rationale for using #beginsWith:.
>> 
>> Isn't the rationale that you cat do
>> 
>> Installer squeaksource
>> 	project: 'UTCDateAndTime';
>> 	install: 'Chronology-Core'.
>> 
>> and get just the latest one ?
>> 
>
> Ah yes of course. So this proposed fix is wrong.
>
> We still do need a way for an explicit version to be loaded reliably. hmmm...

I think the best solution would be if the code tried to find an exact 
match first and when there was none, use the current code: sort by 
versionNames and find the first that matches by prefix.

Levente

>
> Dave
>
>
>> Best regards
>> 	-Tobias
>> 
>> > 
>> > This change implements the possibly better fix.
>> > 
>> > =============== Diff against Installer-Core-cmm.424 ===============
>> > 
>> > Item was changed:
>> >  ----- Method: InstallerMonticello>>mcDetectFileBlock: (in category 'monticello') -----
>> >  mcDetectFileBlock: pkg
>> > 
>> >  	pkg isString ifTrue: [  ^ [ :aMCVersionName |
>> > + 			(pkg beginsWith: aMCVersionName packageAndBranchName) and: [aMCVersionName = pkg ] ] ].
>> > - 			(pkg beginsWith: aMCVersionName packageAndBranchName) and: [aMCVersionName beginsWith: pkg ] ] ].
>> > 
>> >  	(pkg isKindOf: Array) 
>> >  			ifTrue: [  ^  [ :aMCVersionName | pkg anySatisfy: [ :item |
>> > + 						(item beginsWith: aMCVersionName packageAndBranchName) and: [aMCVersionName = item ] ] ] ].
>> > - 						(item beginsWith: aMCVersionName packageAndBranchName) and: [aMCVersionName beginsWith: item ] ] ] ].
>> > 
>> >  	pkg isBlock ifTrue: [ ^ pkg ].
>> >   !
>> > 
>> > 
>> 
>>


More information about the Squeak-dev mailing list