A new version of MonticelloConfigurations was added to project The Inbox:
http://source.squeak.org/inbox/MonticelloConfigurations-cbc.79.mcz ==================== Summary ==================== Name: MonticelloConfigurations-cbc.79 Author: cbc Time: 24 August 2010, 10:23:35.167 pm UUID: 7dfaea13-f6f4-754f-8ed9-f253c3391dbd Ancestors: MonticelloConfigurations-ar.78 Adding support for not updaing unloaded packages from Trunk, but when the package is manually reloaded, it starts loading from Trunk again. =============== Diff against MonticelloConfigurations-ar.78 =============== Item was added: + ----- Method: MCMcmUpdater class>>unloadedPackages (in category 'updating') ----- + unloadedPackages + ^UnloadedPackages ifNil: [UnloadedPackages := Set new]! Item was changed: Object subclass: #MCMcmUpdater instanceVariableNames: '' + classVariableNames: 'DefaultUpdateURL LastUpdateMap UnloadedPackages UpdateMissingPackages' - classVariableNames: 'DefaultUpdateURL LastUpdateMap UpdateMissingPackages' poolDictionaries: '' category: 'MonticelloConfigurations'! !MCMcmUpdater commentStamp: 'dtl 5/10/2010 23:22' prior: 0! MCMcmUpdater provides utility methods for updating Monticello packages from Monticello configurations. When Monticello configurations are stored in a repository, MCMcmUpdater acts as an update stream. It first ensures that each configuration map has been loaded in sequence, then updates the last configuration map to the most recent version for each specified package, and finally loads these versions to produce a fully updated configuration. ! Item was added: + ----- Method: MCMcmUpdater class>>startLoading: (in category 'updating') ----- + startLoading: packageName + self unloadedPackages remove: packageName ifAbsent: [].! Item was added: + ----- Method: MCMcmUpdater class>>skipLoading: (in category 'updating') ----- + skipLoading: packageName + self unloadedPackages add: packageName! Item was changed: ----- Method: MCMcmUpdater class>>updateFromRepositories: (in category 'updating') ----- updateFromRepositories: repositoryUrls "MCMcmUpdater updateFromRepositories: #( 'http://squeaksource.com/MCUpdateTest' )" | repos config | Preferences enable: #upgradeIsMerge. LastUpdateMap ifNil:[LastUpdateMap := Dictionary new]. "The list of repositories to consult in order" repos := repositoryUrls collect:[:url| MCRepositoryGroup default repositories detect:[:r| r description = url] ifNone:[ | r | r := MCHttpRepository location: url user: '' password: ''. MCRepositoryGroup default addRepository: r. r]]. "The list of updates-author.version.mcm sorted by version" repos do:[:r| r cacheAllFileNamesDuring:[ | minVersion updateList allNames | updateList := SortedCollection new. minVersion := LastUpdateMap at: r description ifAbsent:[0]. "Find all the updates-author.version.mcm files" 'Checking ', r description displayProgressAt: Sensor cursorPoint from: 0 to: 1 during:[:bar| bar value: 0. allNames := r allFileNames. ]. allNames do:[:versionedName| | version base parts author type | parts := versionedName findTokens: '.-'. parts size = 4 ifTrue:[ base := parts at: 1. author := parts at: 2. version := [(parts at: 3) asNumber] on: Error do:[:ex| ex return: 0]. type := parts at: 4. ]. (base = 'update' and:[version >= minVersion and:[type = 'mcm']]) ifTrue:[updateList add: version -> versionedName]]. "Proceed only if there are updates available at all." updateList ifNotEmpty: [ "Now process each update file. Check if we have all dependencies and if not, load the entire configuration (this is mostly to skip older updates quickly)" updateList do:[:assoc| ProgressNotification signal: '' extra: 'Processing ', assoc value. config := r versionFromFileNamed: assoc value. + "Skip packages that were specifically unloaded" + config dependencies: (config dependencies + select:[:dep| self unloadedPackages includes: dep package name.]). self updateMissingPackages ifFalse:[ "Skip packages that are not in the image" config dependencies: (config dependencies select:[:dep| dep package hasWorkingCopy])]. (config dependencies allSatisfy:[:dep| dep isFulfilled]) ifFalse:[config upgrade]. LastUpdateMap at: r description put: assoc key. ] displayingProgress: 'Processing configurations'. "We've loaded all the provided update configurations. Use the latest configuration to update all the remaining packages." config updateFromRepositories. config upgrade. ]]. ]. ^config! |
On 25.08.2010, at 05:23, [hidden email] wrote:
> Name: MonticelloConfigurations-cbc.79 > Author: cbc > Time: 24 August 2010, 10:23:35.167 pm > UUID: 7dfaea13-f6f4-754f-8ed9-f253c3391dbd > Ancestors: MonticelloConfigurations-ar.78 > > Adding support for not updaing unloaded packages from Trunk, but when the package is manually reloaded, it starts loading from Trunk again. I like this (it seems much better than just not updating any missing packages). However, ... > Item was added: > + ----- Method: MCMcmUpdater class>>unloadedPackages (in category 'updating') ----- > + unloadedPackages > + ^UnloadedPackages ifNil: [UnloadedPackages := Set new]! ... please call this SkipPackages or DoNotUpdate or something like that. MCMcmUpdater should not care why it is not supposed to touch these packages. There may be other reasons than having them unloaded. - Bert - |
On 8/25/10, Bert Freudenberg <[hidden email]> wrote:
> On 25.08.2010, at 05:23, [hidden email] wrote: > >> Name: MonticelloConfigurations-cbc.79 >> Author: cbc >> Time: 24 August 2010, 10:23:35.167 pm >> UUID: 7dfaea13-f6f4-754f-8ed9-f253c3391dbd >> Ancestors: MonticelloConfigurations-ar.78 >> >> Adding support for not updaing unloaded packages from Trunk, but when the >> package is manually reloaded, it starts loading from Trunk again. > > I like this (it seems much better than just not updating any missing > packages). However, ... > >> Item was added: >> + ----- Method: MCMcmUpdater class>>unloadedPackages (in category >> 'updating') ----- >> + unloadedPackages >> + ^UnloadedPackages ifNil: [UnloadedPackages := Set new]! > > ... please call this SkipPackages or DoNotUpdate or something like that. > MCMcmUpdater should not care why it is not supposed to touch these packages. > There may be other reasons than having them unloaded. > > - Bert - > --Hannes |
Free forum by Nabble | Edit this page |