A new version of Packages-Core was added to project Packages: http://www.squeaksource.com/Packages/Packages-Core-kph.37.mcz
==================== Summary ====================
Name: Packages-Core-kph.37 Author: kph Time: 26 May 2008, 11:54:59 am UUID: 052a68e1-33db-43e7-a1c6-17db1ba09318 Ancestors: Packages-Core-kph.36
try to only remove those package selectors which are no longer in universes
=============== Diff against Packages-Core-kph.36 ===============
Item was added: + ----- Method: Packages class>>taskRemoveOldPackages (in category 'tasks - universes') ----- + taskRemoveOldPackages + + ^ SakeTask define: [ :task | + + task dependsOn: { [ self isUniverse ]. self taskUpdateUniverse. }. + + task action: [ + (self selectors difference: + (self theUUniverse packageNames collect: [ :each | self asSelector: each name ])) + do: [ :old | self removeSelector: old ] + ]. + ]!
Item was changed: ----- Method: Packages class>>taskGenerateUniversePackageTasks (in category 'tasks - universes') ----- taskGenerateUniversePackageTasks
| source selector | ^ SakeTask define: [ :task | task dependsOn: { [ self isUniverse ]. + self taskUpdateUniverse. + self taskRemoveOldPackages. - (SakeTask class: self) removeSelectorsMatching: '*'. - self taskUpdateUniverse. }.
task action: [ (self theUUniverse packageNames collect: [ :each | self theUUniverse newestPackageNamed: each ]) do: [ :each | source := (WriteStream on: String new). source << (selector := self asSelector: each name). source cr; cr. source << ' self name: ' << each name printString << '.' ; cr. source << ' self version: ''' << each version << '''.' ; cr; cr. source << ' info category: ''' << each category printString << '''.' ; cr. source << ' info description: ' ; cr. source << each description withSqueakLineEndings printString << '.' ; cr. source << ' info maintainer: ''' << each maintainer << '''.' ; cr. source << ' info homepage: ''' << (each homepage ifNil: ['']) asString << '''.' ; cr. source << ' info squeakMapID: ''' << (each squeakMapID ifNil: ['']) asString << '''.' ; cr. source << ' info url: ''' << each url printString << '''.' ; cr. source << ' self provides: ' << each provides asArray printString << '.' ; cr ; cr. source << ' self dependsOn: ' << each depends asArray printString << '.' ; cr ; cr. source << ' self load: [' ; cr.
each url ifNotNil: [ source << ' Installer installUrl:''' << each url printString << '''.' ; cr. ]. source << ' ].' ; cr ; cr. source << ' self unloadDependsOn: { self taskUnloadDependants }.' ; cr. source << ' self unload: [' ; cr. each url ifNotNil: [ source << ' Installer unload: ' << each name printString << '.' ; cr. ]. source << ' ].'. + + (self sourceCodeAt: selector ifAbsent: nil) ~= source contents ifTrue: [ + - - (self sourceCodeAt: selector) ~= source ifTrue: [ self compile: source contents classified: each category printString notifying: nil ] ]. theUUniverse := nil. ]. ]!
packages@lists.squeakfoundation.org