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 "!
packages@lists.squeakfoundation.org