Chris Muller uploaded a new version of Installer-Core to project The Inbox: http://source.squeak.org/inbox/Installer-Core-cmm.427.mcz
==================== Summary ====================
Name: Installer-Core-cmm.427 Author: cmm Time: 9 November 2018, 1:46:00.513629 pm UUID: 080be346-3724-453d-ab98-190199cc236f Ancestors: Installer-Core-cmm.424
If an explicit MC version is specified for Installer, load that version. Otherwise load the most recent version of the applicable package or package branch.
=============== Diff against Installer-Core-cmm.424 ===============
Item was removed: - ----- Method: InstallerMonticello>>mcDetectFileBlock: (in category 'monticello') ----- - mcDetectFileBlock: pkg - - pkg isString ifTrue: [ ^ [ :aMCVersionName | - (pkg beginsWith: aMCVersionName packageAndBranchName) and: [aMCVersionName beginsWith: pkg ] ] ]. - - (pkg isKindOf: Array) - ifTrue: [ ^ [ :aMCVersionName | pkg anySatisfy: [ :item | - (item beginsWith: aMCVersionName packageAndBranchName) and: [aMCVersionName beginsWith: item ] ] ] ]. - - pkg isBlock ifTrue: [ ^ pkg ]. - !
Item was changed: ----- Method: InstallerMonticello>>mcThing (in category 'monticello') ----- mcThing | loader | loader := self classMCVersionLoader new.
"several attempts to read files - repository readableFileNames sometimes fails" self packages + do: [:pkg | + | mcVersion versionNames sortedVersions fileToLoad version | + mcVersion := pkg asMCVersionName . - do: [:pkg | - | versionNames fileToLoad version | versionNames := mc versionNamesForPackageNamed: + (mcVersion versionNumber = 0 - (pkg asMCVersionName versionNumber = 0 ifTrue: [ "Just a package name specified, use it whole." pkg ] + ifFalse: [mcVersion packageName]). + sortedVersions := versionNames sorted: self mcSortFileBlock. + fileToLoad := self versionToLoad: mcVersion fromVersions: sortedVersions. - ifFalse: [pkg asMCVersionName packageName]). - fileToLoad := (versionNames sorted: self mcSortFileBlock) - detect: (self mcDetectFileBlock: pkg) - ifNone: [ nil ]. fileToLoad ifNotNil: [version := mc versionNamed: fileToLoad. (version isKindOf: MCConfiguration) ifTrue: [^ version] ifFalse: [self normalizedRepositories do: [:repo | MCRepositoryGroup default addRepository: repo]. self normalizedRepositories do: [:repo | version workingCopy repositoryGroup addRepository: repo]. loader addVersion: version]. self logCR: ' found ' , version fileName , '...']]. ^ loader!
Item was added: + ----- Method: InstallerMonticello>>versionToLoad:fromVersions: (in category 'monticello') ----- + versionToLoad: mcVersion fromVersions: sortedVersions + "From a list of sortedVersions, answer the most recent version or the + exact version if explicitly specified." + ^ sortedVersions + detect: [:aMCVersionName | aMCVersionName = mcVersion "explicit version specified"] + ifNone: [sortedVersions + detect: [:aMCVersionName | (mcVersion beginsWith: aMCVersionName packageAndBranchName) + and: [aMCVersionName beginsWith: mcVersion "most recent version that matches"]] + ifNone: []]!