[squeak-dev] MonticelloConfiguration and Installer questions
C. David Shaffer
cdshaffer at acm.org
Tue Sep 16 12:38:10 UTC 2008
I'm trying to move myself into the 21st century here by using Installer
and MonticelloConfigurations. Great tools for image building, I think ,
but I'm having a couple of small problems.
Version info:
Squeak-3.9.1-7075
Insaller-Core-kph.222
Monticello-md.308
MonticelloConfigurations-stephaneducasse.38
1) I'm confused about how MC ".mcm" files are supposed to be published.
It seems that that configuration browser always asks me for a repo and a
file name. I've tried using the same name as an existing configuration
(assuming I'd get a new version of that configuration) but, at least in
a HTTP repo, and I just get an error (refuses to overwrite the existing
file...doesn't seem like the correct behavior anyway). Are
configurations not versioned like other MC entities? How do people work
with changing configs?
2) Once I have a configuration published in a repo, opening the MC repo
browser and clicking on the configuration file (select the configuration
"package" then click on the .mcm file) gives me a walkback as per the
attached file ClickOnMcmDebug.log. I've patched it but should I be
working with a newer version of Monticello? If so, which one (I've
tried a few but they have all caused me one problem or another with
things that are working fine in my existing setup)?
3) Trying to install a configuration using Installer doesn't seem to
work. The offending code is in Installer>>mcThing which tries to add
the MCConfiguration to the loader thus:
loader addVersion: version.
This eventually results in an error (the configuration is added after
all of its "dependencies"). I've patched Installer but I'm not sure if
this is the right thing to do. See attached InstallerPatches-cds.3.cs.
David
-------------- next part --------------
Error: My subclass should have overridden #loadVersionInfo
16 September 2008 8:30:55 am
VM: unix - a SmalltalkImage
Image: Squeak3.9.1 [latest update: #7075]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /home/shaffer/Source/Squeak/ProfitPortal/ImageBuilder
Trusted Dir /home/shaffer/Source/Squeak/ProfitPortal/ImageBuilder/secure
Untrusted Dir /home/shaffer/Source/Squeak/ProfitPortal/ImageBuilder/My Squeak
MCMcmReader(Object)>>error:
Receiver: a MCMcmReader
Arguments and temporary variables:
aString: 'My subclass should have overridden #loadVersionInfo'
Receiver's instance variables:
stream: a RWBinaryOrTextStream '(
repository (''http://www.cdshaffer.com/housto...etc...
package: nil
info: nil
definitions: nil
dependencies: nil
stepChildren: nil
fileName: 'HitMysticR4Config7.mcm'
MCMcmReader(Object)>>subclassResponsibility
Receiver: a MCMcmReader
Arguments and temporary variables:
Receiver's instance variables:
stream: a RWBinaryOrTextStream '(
repository (''http://www.cdshaffer.com/housto...etc...
package: nil
info: nil
definitions: nil
dependencies: nil
stepChildren: nil
fileName: 'HitMysticR4Config7.mcm'
MCMcmReader(MCVersionReader)>>loadVersionInfo
Receiver: a MCMcmReader
Arguments and temporary variables:
Receiver's instance variables:
stream: a RWBinaryOrTextStream '(
repository (''http://www.cdshaffer.com/housto...etc...
package: nil
info: nil
definitions: nil
dependencies: nil
stepChildren: nil
fileName: 'HitMysticR4Config7.mcm'
MCMcmReader(MCVersionReader)>>info
Receiver: a MCMcmReader
Arguments and temporary variables:
Receiver's instance variables:
stream: a RWBinaryOrTextStream '(
repository (''http://www.cdshaffer.com/housto...etc...
package: nil
info: nil
definitions: nil
dependencies: nil
stepChildren: nil
fileName: 'HitMysticR4Config7.mcm'
--- The full stack ---
MCMcmReader(Object)>>error:
MCMcmReader(Object)>>subclassResponsibility
MCMcmReader(MCVersionReader)>>loadVersionInfo
MCMcmReader(MCVersionReader)>>info
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[] in MCHttpRepository(MCFileBasedRepository)>>loadVersionInfoFromFileNamed: {[:r | r info]}
MCMcmReader(Object)>>ifNotNilDo:
MCHttpRepository>>versionReaderForFileNamed:do:
MCHttpRepository(MCFileBasedRepository)>>loadVersionInfoFromFileNamed:
MCHttpRepository(MCFileBasedRepository)>>versionInfoFromFileNamed:
MCFileRepositoryInspector>>versionInfo
MCFileRepositoryInspector>>versionSummary
MCFileRepositoryInspector(MCVersionInspector)>>summary
PluggableTextMorphPlus(PluggableTextMorph)>>getText
PluggableTextMorphPlus(PluggableTextMorph)>>update:
PluggableTextMorphPlus>>update:
[] in MCFileRepositoryInspector(Object)>>changed: {[:aDependent | aDependent update: aParameter]}
DependentsArray>>do:
MCFileRepositoryInspector(Object)>>changed:
MCFileRepositoryInspector>>versionSelection:
PluggableListMorphPlus(PluggableListMorph)>>changeModelSelection:
PluggableListMorphPlus(PluggableListMorph)>>mouseUp:
PluggableListMorphPlus(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableListMorphPlus(Morph)>>handleEvent:
PluggableListMorphPlus(Morph)>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear: {[ActiveHand := self. ActiveEvent := anEvent. result := focusHolder han...]}
[] in PasteUpMorph>>becomeActiveDuring: {[aBlock value]}
BlockContext>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
[] in WorldState>>doOneCycleNowFor: {[:h | ActiveHand := h. h processEvents. capturingGesture := capturingGest...]}
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess {[[World doOneCycle. Processor yield. false] whileFalse. nil]}
[] in BlockContext>>newProcess {[self value. Processor terminateActive]}
-------------- next part --------------
'From Squeak3.9.1 of 2 March 2008 [latest update: #7075] on 15 September 2008 at 8:34:32 pm'!
!Installer methodsFor: 'monticello' stamp: 'cds 9/15/2008 20:15'!
mcThing
| loader files fileToLoad version count |
loader := self classMCVersionLoader new.
1 to: self packages size do: [ :n |
self logCR: 'finding ', self package asString, '...'.
"several attempts to read files - repository readableFileNames sometimes fails"
count := 0. fileToLoad := nil.
[count := count + 1.
(fileToLoad = nil) and:[ count < 5 ] ]
whileTrue: [
files := mc readableFileNames asSortedCollection: self mcSortFileBlock.
fileToLoad := files detect: self mcDetectFileBlock ifNone: [ nil ].
].
version := mc versionFromFileNamed: fileToLoad.
(version isKindOf: MCConfiguration)
ifTrue: [^version]
ifFalse:[version workingCopy repositoryGroup addRepository: mc].
self log: ' found ', version fileName, '...'.
loader addVersion: version.
packages removeFirst.
].
^ loader
! !
More information about the Squeak-dev
mailing list
|