[Pkg] Packages: Sake-Packages-damiencassou.13.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Tue Dec 23 13:09:08 UTC 2008


Damien Cassou uploaded a new version of Sake-Packages to project Packages:
http://www.squeaksource.com/Packages/Sake-Packages-damiencassou.13.mcz

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

Name: Sake-Packages-damiencassou.13
Author: damiencassou
Time: 23 December 2008, 2:09:06 pm
UUID: ed4fb882-feb3-4a4a-8722-3815f303eb66
Ancestors: Sake-Packages-damiencassou.11, Sake-Packages-kph.12

- Merges

=============== Diff against Sake-Packages-damiencassou.11 ===============

Item was changed:
  SakeTask subclass: #Packages
  	instanceVariableNames: 'unloadBlock unloadPriors provides name version isUnload'
  	classVariableNames: 'Provided'
  	poolDictionaries: ''
  	category: 'Sake-Packages'!
  Packages class
  	instanceVariableNames: 'lastUpdate theUUniverse'!
  
+ !Packages commentStamp: 'test 12/23/2008 06:17' prior: 0!
- !Packages commentStamp: 'kph 12/11/2008 23:27' prior: 0!
  To generate all of the methods based upon universes definitions:
  	
   	Packages taskGenerateAllUniverses run.
  	or
  	Packages taskGenerateAll  run.
  
  Sake/Packages usage:
  
  Public API
  ============
  Package definition for your current version of Squeak are found using the following path.
  
  For SystemVersion Squeak3.7
  
  Packages findPath  -> {PackagesSqueak37 . PackagesDev . PackagesBeta} *the default is #current
  Packages current findPath  -> {PackagesSqueak37 . PackagesDev . PackagesBeta}
  Packages dev findPath  {PackagesDev. PackagesSqueak37 . PackagesBeta}
  Packages beta findPath {PackagesBeta . PackagesSqueak37 . PackagesDev}
  
  Packages current load: 'Seaside'.
  Packages beta named: 'Seaside'.
  
  or
  
  (Packages current named: 'Seaside') run.  " or runQuietly, runStepping, runLogging"
  (Packages beta named: 'Seaside') run.
  
  multiples:
  
  Packages current load: #('Seaside' 'Magma' 'Logging')  
  
  Run-variants
  =========
  
  #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.
  
  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') unload 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 metadata
+ at 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 determing if there are any code changed that need to be applied.
- at mcName
  	!

Item was changed:
  ----- Method: MCWorkingCopy>>myMenuForPackages: (in category '*sake-packages') -----
  myMenuForPackages: aMenu
  
  	(self packageInfo propertyAt: #packages) ifNotNilDo: [ :pkgName |
  		aMenu
  			add: 'load latest release using Sake/Packages' 
+ 			target: (Packages current named: pkgName) 
- 			target: (Packages current named: 'pkgName') 
  			selector: #run.
  		
  		aMenu 
  			add: 'load latest code using Sake/Packages' 
+ 			target: (Packages beta named: pkgName) 
- 			target: (Packages beta named: 'pkgName') 
  			selector: #run.		
  	]. !

Item was changed:
  ----- Method: Packages>>addToPackageInfo (in category 'as yet unclassified') -----
  addToPackageInfo
  
+     "
+     Here we tell the PackageInfo instance what name was used to load it.
+ 
+    if a package appears in PackageInfo under a different name to which it
+     appears in Packages, the PackageInfo name can be told to us via
+     metadata #mcName:  Example: 'Seaside' is in PackageInfo as 'Seaside2'.   
+     "
+ 	
  	(self info mcName ifNil: [ self name ]) ifNotNilDo: [ :mcName |
  		(PackageOrganizer default packageNamed: mcName ifAbsent: [ ^ self ])
+ 			in: [ :pkgInfo |
+ 				(pkgInfo respondsTo: #propertyAt:put:)
+ 					ifTrue: [ pkgInfo propertyAt: #packages put: self name ].
+ 			].
- 			propertyAt: #packages put: self name.
  	]. 
  	!

Item was changed:
  ----- Method: Packages class>>upgrade (in category 'public') -----
  upgrade
+ 	Packages update.
+ 	
- 	Packages current load: 'Packages'.
  	self provided values asSet asTask run!

Item was added:
+ ----- Method: Packages class>>update (in category 'public') -----
+ update
+ 	"load the latest definitions"
+ 	Packages current load: 'Packages'.
+ !

Item was changed:
  ----- Method: Packages>>doActionEnd (in category 'as yet unclassified') -----
  doActionEnd
  
  	self isUnloading ifTrue: [ ^ self ].
  	
  	self class provided in: [ :reg |
  		self provides do: [ :each | reg at: each put: self ].
  	].
  
  	"if a package appears in Packages under an obscure name, it can
  	tell the PackageInfo instance what name was used to load it via metadata
  	at mcName"
  	
+ 	self addToPackageInfo.
- 	(self info mcName ifNil: [ self name ]) ifNotNilDo: [ :mcName |
- 		(PackageOrganizer default packageNamed: mcName ifAbsent: [ ^ self ])
- 			propertyAt: #packages put: self name.
- 	]. 
  	!

Item was added:
+ ----- Method: Packages class>>taskGenerateFiles (in category 'accessors') -----
+ taskGenerateFiles
+ 
+ 	^ lastUpdate ifNil: [ lastUpdate := DateAndTime now ] !

Item was changed:
  ----- Method: Packages class>>upgradeList (in category 'public') -----
  upgradeList
+ 	"the list of pacakges that would be loaded by an upgrade"
  	Packages beta load: 'Packages'.
  	^ (self provided values asSet asTask instVarNamed: 'actionBlock') select: [ :ea | ea isNeeded: #() ] thenCollect: [ :ea | ea name ].
  	
  	"
  	self upgradeList
  	"!



More information about the Packages mailing list