Metacello/Iceberg Error: IceUndefinedRemote DNU #projectPath

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Metacello/Iceberg Error: IceUndefinedRemote DNU #projectPath

Sean P. DeNigris
Administrator
I was loading a project via:
Metacello new
    baseline: 'BabyPhexample';
    repository: 'github://seandenigris/Baby-Phexample/repository';
    onConflict: [ :ex | ex allow ];
    load.

into a Moose 6.1 image obtained from Launcher which already contained
StateSpecs and got this:
IceUndefinedRemote(Object)>>doesNotUnderstand: #projectPath
IceMetacelloRepositoryAdapter>>projectPath
IceMetacelloRepositoryAdapter>>hasNoLoadConflicts:
MetacelloRepositorySpec>>hasNoLoadConflicts:
MetacelloRepositoriesSpec>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloProjectSpec)>>hasLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>hasConflictWithBaselineSpec:
MetacelloMCBaselineOfProjectSpec>>hasConflictWithProjectSpec:
MetacelloProjectRegistration>>hasLoadConflicts:

Ideas?



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Metacello/Iceberg Error: IceUndefinedRemote DNU #projectPath

Dennis Schetinin
Hello Sean,

did you resolve the problem? I experience the same trying to update Calypso in 6.1 via

Metacello new
  baseline: 'Calypso';
  repository: 'github://dionisiydk/Calypso';
  load.


The stack:

IceUndefinedRemote(Object)>>doesNotUnderstand: #projectPath
IceMetacelloRepositoryAdapter>>projectPath
IceMetacelloRepositoryAdapter>>hasNoLoadConflicts:
MetacelloRepositorySpec>>hasNoLoadConflicts:
MetacelloRepositoriesSpec>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloProjectSpec)>>hasLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>hasConflictWithBaselineSpec:
MetacelloMCBaselineOfProjectSpec>>hasConflictWithProjectSpec:
MetacelloProjectRegistration>>hasLoadConflicts:
[ :existing :new | 
(existing hasLoadConflicts: new)
ifTrue: [ ((existing canUpgradeTo: new)
ifTrue: [ MetacelloAllowProjectUpgrade new ]
ifFalse: [ (existing canDowngradeTo: new)
ifTrue: [ MetacelloAllowProjectDowngrade new ]
ifFalse: [ MetacelloAllowConflictingProjectUpgrade new ] ])
existingProjectRegistration: existing;
newProjectRegistration: new;
signal ]
ifFalse: [ new ] ] in MetacelloScriptEngine>>lookupProjectSpecFor:
[ :existing | ^ presentBlock value: existing value: newRegistration ] in MetacelloProjectRegistration class>>registrationForProjectSpec:ifAbsent:ifPresent:
[ :existing | ^ presentBlock value: existing ] in MetacelloProjectRegistry>>registrationFor:ifPresent:ifAbsent:
BlockClosure>>cull:
Dictionary>>at:ifPresent:
MetacelloProjectRegistry>>registrationFor:ifPresent:ifAbsent:
MetacelloProjectRegistration class>>registrationForProjectSpec:ifAbsent:ifPresent:
MetacelloScriptEngine>>lookupProjectSpecFor:
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ] in [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new | 
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new | 
existing
copyOnWrite: [ :existingCopy | 
existingCopy
loadedInImage: true;
merge: new ] ] ] in [ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new | 
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new | 
existing
copyOnWrite: [ :existingCopy | 
existingCopy
loadedInImage: true;
merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>on:do:
[ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new | 
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new | 
existing
copyOnWrite: [ :existingCopy | 
existingCopy
loadedInImage: true;
merge: new ] ] ] in [ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new | 
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new | 
existing
copyOnWrite: [ :existingCopy | 
existingCopy
loadedInImage: true;
merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>on:do:
[ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ] in [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ] in [ [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
[ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ] in [ [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
[ [ [ actionBlock
on:
MetacelloLookupProjectSpec , MetacelloLookupProjectSpecForLoad
, MetacelloProjectSpecLoadedNotification
, MetacelloScriptEnsureProjectLoadedForDevelopment
, MetacelloLookupBaselineSpecForEnsureLoad
do:
[ :ex | "lookup and registration handlers need to be innermost set of handlers ...they may throw option notifications" ex handleResolutionFor: self ] ]
on:
MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
, MetacelloAllowConflictingProjectUpgrade
do:
[ :ex | "option handlers need to be outermost set of handlers ... last line of defense before users are involved" ex handleResolutionFor: self ] ]
on: MetacelloAllowLockedProjectChange
do:
[ :ex | "MetacelloAllowLockedProjectChange need to be outermost handler ... since it is signaled from second line of handlers" ex handleResolutionFor: self ] ] in MetacelloScriptEngine>>handleNotificationsForAction:
BlockClosure>>on:do:
MetacelloScriptEngine>>handleNotificationsForAction:
[ self
handleNotificationsForAction: [ | version loadedSpec |
self setDefaultsAndValidateProjectSpec.
[ loadedSpec := (self lookupProjectSpecFor: self projectSpec) copy ]
on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
do:
[ :ex | ex handleOnDownGrade: onDownGradeBlock onUpgrade: onUpgradeBlock ].
version := loadedSpec versionForScriptEngine: self.
self
root:
(required isEmpty
ifTrue: [ version load ]
ifFalse: [ version load: required ]) loadDirective.
loadedSpec loads: required.
MetacelloProjectRegistration
registrationForProjectSpec: loadedSpec
ifAbsent: [ :new | 
new
loadedInImage: true;
registerProject ]
ifPresent: [ :existing :new | 
existing
copyOnWrite: [ :existingCopy | 
existingCopy
loadedInImage: true;
merge: new ] ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
BlockClosure>>ensure:
MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile:
MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
MetacelloScriptEngine>>load:
[ :projectSpec | 
| engine |
engine := MetacelloScriptEngine new
options: self options copy;
projectSpec: projectSpec;
yourself.
engine perform: actionArg key withArguments: actionArg value.
engine root ifNotNil: [ :root | self roots add: root ] ] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
[ :projectSpec | 
projectSpec
ifNotNil: [ projectSpecBlock
value: (self applyArgsToProjectSpec: projectSpec copy) ] ] in MetacelloScriptApiExecutor>>executeString:do:
Array(SequenceableCollection)>>do:
MetacelloScriptApiExecutor>>executeString:do:
ByteString(String)>>execute:against:
MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
Metacello>>execute:args:
Metacello>>load
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluate:andDo:
RubSmalltalkEditor>>highlightEvaluateAndDo:
[ textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] in [ textMorph textArea
handleEdit: [ textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in GLMMorphicPharoScriptRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
RubEditingArea(RubAbstractTextArea)>>handleEdit:
[ textMorph textArea
handleEdit: [ textMorph textArea editor highlightEvaluateAndDo: ann action.
textMorph shoutStyler style: textMorph text ] ] in GLMMorphicPharoScriptRenderer(GLMMorphicPharoCodeRenderer)>>actOnHighlightAndEvaluate:
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycle
WorldMorph class>>doOneCycle
[ [ WorldMorph doOneCycle.
Processor yield.
false ] whileFalse: [  ] ] in MorphicUIManager>>spawnNewProcess
[ self value.
Processor terminateActive ] in BlockClosure>>newProcess




--

Best regards,


Dennis Schetinin


2018-02-21 18:56 GMT+03:00 Sean P. DeNigris <[hidden email]>:
I was loading a project via:
Metacello new
    baseline: 'BabyPhexample';
    repository: 'github://seandenigris/Baby-Phexample/repository';
    onConflict: [ :ex | ex allow ];
    load.

into a Moose 6.1 image obtained from Launcher which already contained
StateSpecs and got this:
IceUndefinedRemote(Object)>>doesNotUnderstand: #projectPath
IceMetacelloRepositoryAdapter>>projectPath
IceMetacelloRepositoryAdapter>>hasNoLoadConflicts:
MetacelloRepositorySpec>>hasNoLoadConflicts:
MetacelloRepositoriesSpec>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloGenericProjectSpec)>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>hasNoLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloProjectSpec)>>hasLoadConflicts:
MetacelloMCBaselineOfProjectSpec(MetacelloMCProjectSpec)>>hasConflictWithBaselineSpec:
MetacelloMCBaselineOfProjectSpec>>hasConflictWithProjectSpec:
MetacelloProjectRegistration>>hasLoadConflicts:

Ideas?



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html


Reply | Threaded
Open this post in threaded view
|

Re: Metacello/Iceberg Error: IceUndefinedRemote DNU #projectPath

Sean P. DeNigris
Administrator
Dennis Schetinin wrote
> did you resolve the problem?

I can't reproduce. I followed the same steps just now and it worked in Moose
6.1 on top of Pharo 60540

It did however give me a warning that there were unsaved changes in
StateSpecs-DSL-ClassWords-Tests. When I tried to browse the changes in MC
Browser, I got "Instance of IceMetacelloRepositoryAdapter did not understand
#closestAncestorVersionFor:ifNone:"



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html

Cheers,
Sean