[squeak-dev] The Inbox: Installer-Core-cmm.379.mcz
commits at source.squeak.org
commits at source.squeak.org
Tue Aug 13 22:56:53 UTC 2013
A new version of Installer-Core was added to project The Inbox:
http://source.squeak.org/inbox/Installer-Core-cmm.379.mcz
==================== Summary ====================
Name: Installer-Core-cmm.379
Author: cmm
Time: 13 August 2013, 3:28:48.017 pm
UUID: 6efab8ff-b53e-45f5-9fd0-0b77da7670ed
Ancestors: Installer-Core-cmm.378
- Fix and refine the repository override API to account more closely with real-world use cases.
=============== Diff against Installer-Core-cmm.378 ===============
Item was added:
+ ----- Method: Installer class>>airplaneMode (in category 'repository-overrides') -----
+ airplaneMode
+ "Override all remote repositories with the package cache."
+ self overrideRemoteRepostoriesWith: MCCacheRepository default!
Item was added:
+ ----- Method: Installer class>>clearOverrides (in category 'repository-overrides') -----
+ clearOverrides
+ "When using the new merge:, remove all repository overrides and load everthing from the specified default repositories."
+ Repositories := Dictionary new!
Item was changed:
+ ----- Method: Installer class>>defaultRepositoryFor: (in category 'private') -----
+ defaultRepositoryFor: anAssociation
+ "private -- answer the MC repository specified by anAssociation."
- ----- Method: Installer class>>defaultRepositoryFor: (in category 'repositories') -----
- defaultRepositoryFor: anAssociation
^ (self perform: anAssociation key)
project: anAssociation value ;
mc!
Item was removed:
- ----- Method: Installer class>>fallbackRepositoryFor:is: (in category 'repositories') -----
- fallbackRepositoryFor: scope is: anMCRepository
- self
- overrideRepositoryFor: scope
- with:
- (MCRepositoryGroup new
- addRepository: (self defaultRepositoryFor: scope) ;
- addRepository: anMCRepository ;
- yourself)!
Item was added:
+ ----- Method: Installer class>>overrideRemoteRepostoriesWith: (in category 'repository-overrides') -----
+ overrideRemoteRepostoriesWith: aMCRepositoryOrGroup
+ self remoteRepositories do:
+ [ : each | self
+ overrideRepository: each
+ with: aMCRepositoryOrGroup ]!
Item was changed:
+ ----- Method: Installer class>>overrideRepository:with: (in category 'repository-overrides') -----
- ----- Method: Installer class>>overrideRepository:with: (in category 'repositories') -----
overrideRepository: scope with: anMCRepository
+ "When configuring the image with #merge:, override the standard repository specified by scope with anMCRepository.
+ Example 1:
+ ""I'm working on the HTML parser on ss3, load all packages assosciated with that from my local mc directory. Everything else from remote directories.""
+ Installer
+ override: #ss3->'htmlcssparser'
+ with: (MCDirectoryRepository directory: (FileDirectory default / 'mc')).
+
+ Example 2:
+ ""SqueakSource is down. Override all projects from there to point to the mirror.""
+ Installer
+ override: #ss
+ with: #ssMirror."
+
- "Override the standard repository specified by scope with anMCRepository. To override an entire repository, specify scope as the repository selector. To override a single project within a repository, scope should be an Association whose key is the repository selector and value is the project name."
self repositories
at: scope
put: anMCRepository!
Item was removed:
- ----- Method: Installer class>>preemptRepository:with: (in category 'repositories') -----
- preemptRepository: scope with: anMCRepository
- self
- overrideRepositoryFor: scope
- with:
- (MCRepositoryGroup new
- addRepository: anMCRepository ;
- addRepository: (self defaultRepositoryFor: scope) ;
- yourself)!
Item was added:
+ ----- Method: Installer class>>remoteRepositories (in category 'repository-overrides') -----
+ remoteRepositories
+ ^ #(#ss #ss3 #cobalt #gemsource #goran #gs #impara #keith #krestianstvo #lukas #saltypickle #sophie #squeak #squeakfoundation #squeaksource #squeaksource3 #ss #ss3 #swa #swasource #wiresong )!
Item was changed:
+ ----- Method: Installer class>>removeOverride: (in category 'repository-overrides') -----
- ----- Method: Installer class>>removeOverride: (in category 'repositories') -----
removeOverride: scope
"Remove override specified by scope and return to using the default repository for packages within that scope."
^ self repositories
removeKey: scope
ifAbsent: [ ]!
Item was changed:
+ ----- Method: Installer class>>repositoryFor: (in category 'private') -----
+ repositoryFor: anAssociation
+ "private -- anAssociation key is the repository selector Symbol understood by Intsaller class. It's value is the project name within that HTTP repository."
- ----- Method: Installer class>>repositoryFor: (in category 'repositories') -----
- repositoryFor: anAssociation
| rep |
rep := self repositories
+ at: anAssociation "<-- check for #rep->project overrides first"
- at: anAssociation
ifAbsent:
[ self repositories
+ at: anAssociation value "<-- next for just the project, regardless of repository"
- at: anAssociation value
ifAbsent:
[ self repositories
+ at: anAssociation key "<-- finally for a general repository redirection."
- at: anAssociation key
ifAbsent: [ ^ self defaultRepositoryFor: anAssociation ] ] ].
^ rep isSymbol
+ ifTrue:
+ [ "Support for redirection from repository selector to another."
+ self defaultRepositoryFor: rep -> anAssociation value ]
- ifTrue: [ self defaultRepositoryFor: rep -> anAssociation value ]
ifFalse: [ rep ]!
Item was added:
+ ----- Method: Installer class>>ssMirror (in category 'repositories') -----
+ ssMirror
+ "The Chilean mirror for the original SqueakSource."
+ ^ self monticello http: 'http://dsal.cl/squeaksource/'!
More information about the Squeak-dev
mailing list
|