[Pkg] Packages: Sake-Packages-kph.38.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Tue Jul 7 17:11:07 UTC 2009


A new version of Sake-Packages was added to project Packages:
http://www.squeaksource.com/Packages/Sake-Packages-kph.38.mcz

==================== Summary ====================

Name: Sake-Packages-kph.38
Author: kph
Time: 7 July 2009, 6:11:05 pm
UUID: a39b5e0f-0907-49af-a272-885121105950
Ancestors: Sake-Packages-kph.37

added installerModes #beQuiet #beSilent

=============== Diff against Sake-Packages-kph.37 ===============

Item was added:
+ ----- Method: Packages>>beSilent (in category 'comparing') -----
+ beSilent
+ 
+ 	installerMode := #installSilently!

Item was added:
+ ----- Method: Packages>>installerMode (in category 'comparing') -----
+ installerMode
+ 	installerMode ifNil: [ ^ #install ].!

Item was changed:
  ----- Method: Packages class>>findNamed: (in category 'private') -----
  findNamed: packageName 
  	 
  	| sel |
  	
  	sel := self asSelector: packageName.
  	
  	(self canPerform: sel) ifTrue: [ ^ self basicNamed: packageName ].
  	
  	^ (self findPath detect: [ :ea | ea canPerform: sel ] ifNone: [ ^nil ]) basicNamed: packageName!

Item was added:
+ ----- Method: Packages>>beQuiet (in category 'comparing') -----
+ beQuiet
+ 
+ 	installerMode := #installQuietly!

Item was changed:
  ----- Method: Packages>>defaultAction (in category 'defaults') -----
  defaultAction
  	
+ 	^ [ self info url ifNotNilDo: [ :url |  (Installer fromUrl: url) perform: self installerMode  ].
- 	^ [ self info url ifNotNilDo: [ :url |  (Installer fromUrl: url) install  ].
  		 self hasRunSet. ]!

Item was changed:
  SakeTask subclass: #Packages
+ 	instanceVariableNames: 'unload latest useLatest unloadPriors provides requires name mcName version isUnload installerMode'
- 	instanceVariableNames: 'unload latest useLatest unloadPriors provides requires name mcName version isUnload'
  	classVariableNames: 'Provided'
  	poolDictionaries: ''
  	category: 'Sake-Packages'!
  Packages class
  	instanceVariableNames: 'lastUpdate theUUniverse'!
  
  !Packages commentStamp: 'kph 7/1/2009 03:03' prior: 0!
  Sake/Packages usage:
  
  Definitions Search Path
  ============================
  Packages named: 'PackageName'.
  
  Will obtain a package definition. Subclasses of Packages are searched using the order defined by #findPath which is specified by #priority.
  
  e.g. Packages findPath => {PackagesSqueak310 . PackagesDev . PackagesAll . PackagesSeaside29}
  
  Packages-#priority is used to sort classes like so:
  
  The class with defns for a relevant version (listed in #relevantVersions) => 100
  The class with defns for dev version (PackagesDev) => 400
  The class with defns for all versions (PackagesAll) => 500
  
  Additional package "universes" can define their own priority in order to specify where to appear in the #findPath.
  PackagesSeaside29
  PackagesGjaller
  PackagesBeach
  
  Usage:
  ========
  verbose usage specifying run style.
  
  (Packages named: 'Seaside') run.  " or runQuietly, runStepping, runLogging"
  
  #runStepping , - presents a confirm/debug dialog before each action.
  #run            - default.
  #runQuietly    - auto-confirms any SakeConfirm dialogs.
  #runLogging   - Writes any SakeStop warnings to self log.
  
  default usage:
  
  Packages load: 'Seaside'.
  Packages latest: 'Seaside'. "as above, but use latest versions of everything"
  Packages unload: 'Seaside'.
  
  multiples:
  
  Packages load: #('Seaside' 'Magma' 'Logging')  
  
  Unloading
  ========
  Unloading comes in two variants.
  
  Each package task loaded by Sake/Packages is remembered in the 'provided' list
  If you perform:
  
      Packages unload: 'Seaside' .
  
      Packages unloadStepping: 'Seaside' .
  
  Then the 'historical' unload scripts are used, as defined when the original load tasks were run.
  
  If instead you perform:
  
      (Packages current named: 'Seaside') beUnloading runStepping.
   
  Then the most recently defined unload script will be run.
  
  Note: If packages such as "Magma server" and "Magma client" provides "Magma", then
  
      Packages unload: 'Magma'.
  
  Will unload whichever of the two are loaded.
  ===
  Misc notes...
  
  Universes are using 'instance side' task definition, so the task extensions mechanism does not work in this context.
  
  If a package appears in Packages under an obscure name, it can
  tell the PackageInfo instance what name was used to load it via #mcName:
  
  If a package has a version number with a '+' after it, then 'Packages upgrade' will always attempt to load the latest code, leaving Monticello to determine if there are any code changed that need to be applied.
  
  To generate all of the methods based upon universes definitions:
  	
   	Packages taskGenerateAllUniverses run.
  	or
  	Packages taskGenerateAll  run.!



More information about the Packages mailing list