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

commits at source.squeak.org commits at source.squeak.org
Thu Nov 8 02:25:02 UTC 2018

A new version of Installer-Core was added to project The Inbox:

==================== 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:.

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