[squeak-dev] The Inbox: Monticello-cbc.399.mcz

Bert Freudenberg bert at freudenbergs.de
Wed Aug 25 18:49:39 UTC 2010


I committed your MCConfig changes to trunk. Thanks! :)

But I'm not so sure about the changes to MC, as below.

Did you verify it even works? I don't think MCPackage>>unload is actually used when unloading a package. A better place would be MCPackageManager>>unregister and MCPackageManager class>>forPackage:.

Also, this introduces a hard dependency on MCMcmUpdater into the Monticello package. So this should at least be protected using

	Smalltalk at: #MCMcmUpdater ifPresent: [:updater | ... ]

or using some other mechanism of decoupling.

E.g., I see MCPackageManager class sends "self changed: #allManagers" whenever a package is added or removed. Maybe listening to that would be better than adding these explicit notification?

- Bert -

>  ----- Method: MCPackage>>unload (in category 'as yet unclassified') -----
>  unload
>  	"Flag this package to not automatically reload when updating from Trunk.
>  		To begin receiving trunk updates on this package again, manually reload package."
> + 	MCMcmUpdater disableUpdatesOfPackage: self name.
>  	^ self workingCopy unload!
> 
>  ----- Method: MCWorkingCopy>>merged: (in category 'operations') -----
>  merged: aVersion
>  	ancestry addAncestor: aVersion info.
> + 	MCMcmUpdater enableUpdatesOfPackage: self package name.
>  	self changed!
> 
>  ----- Method: MCWorkingCopy>>loaded: (in category 'operations') -----
>  loaded: aVersion
>  	ancestry := MCWorkingAncestry new addAncestor: aVersion info.
>  	requiredPackages := OrderedCollection withAll: (aVersion dependencies collect: [:ea | ea package]).
>  	self modified: false.
> + 	MCMcmUpdater enableUpdatesOfPackage: self package name.
>  	self changed!




More information about the Squeak-dev mailing list