[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