Skip to content

[Pharo] MetacelloCypressBaselineProject did not understand #versionString #560

@LeaTex

Description

@LeaTex

Hi!
I'm trying to load Winter project into Pharo 12, and got Instance of MetacelloCypressBaselineProject did not understand #versionString.

I don't really know if this is an issue with Metacello, or Winter project, or the dependency PharoSound.

Any idea?

Image

MetacelloCypressBaselineProject(Object)>>doesNotUnderstand: #versionString
MetacelloMCConfigurationOfProjectSpec(MetacelloProjectSpec)>>version
[ self version ] in MetacelloMCConfigurationOfProjectSpec(MetacelloProjectSpec)>>versionOrNil in Block: [ self version ]
FullBlockClosure(BlockClosure)>>on:do:
MetacelloMCConfigurationOfProjectSpec(MetacelloProjectSpec)>>versionOrNil
MetacelloMCConfigurationOfProjectSpec(MetacelloProjectSpec)>>compareVersionsEqual:
MetacelloMCConfigurationOfProjectSpec(MetacelloProjectSpec)>>compareEqual:
MetacelloRecordTarget>>visitProjectReference:
MetacelloProjectReferenceSpec>>acceptVisitor:
[ :pkg | pkg acceptVisitor: self ] in [
			self specBuilder currentLoadDirective spec: spec.
			packages do: [ :pkg | pkg acceptVisitor: self ] ] in MetacelloRecordTarget>>linearLoadPackages:ofSpec: in Block: [ :pkg | pkg acceptVisitor: self ]
OrderedCollection>>do:
[
			self specBuilder currentLoadDirective spec: spec.
			packages do: [ :pkg | pkg acceptVisitor: self ] ] in MetacelloRecordTarget>>linearLoadPackages:ofSpec: in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
MetacelloSpecBuilder>>pushLoadDirective:during:
MetacelloSpecBuilder>>pushLinearLoadDirectivesDuring:for:
MetacelloRecordTarget>>linearLoadPackages:ofSpec:
["Iterate the internals of the version spec"
	aSpec project loadType == #atomic ifTrue: [
		^ self atomicLoadPackages: packages ofSpec: aSpec ].
	aSpec project loadType == #linear ifTrue: [
		^ self linearLoadPackages: packages ofSpec: aSpec ].

	MetacelloError signal:
		'Unknown loadType: ' , aSpec project loadType printString] in MetacelloRecordTarget>>visitVersionSpecChildren: in Block: ["Iterate the internals of the version spec"...
FullBlockClosure(BlockClosure)>>ensure:
MetacelloRecordTarget>>visitVersionSpecChildren:
MetacelloRecordTarget>>visitVersionSpec:
MetacelloVersionSpec>>acceptVisitor:
MetacelloVersion>>recordRequiredFromArray:withEngine:
MetacelloVersion>>fetchRequiredFromArray:withEngine:
MetacelloVersion>>loadRequiredFromArray:withEngine:
[
		  self loadRequiredFromArray: anArray withEngine: anEngine ] in MetacelloVersion>>doLoadRequiredFromArray:withEngine: in Block: [...
[
			| result |
			result := aBlock value.

			MetacelloNotification signal:
				'...finished ' , self versionNumber printString.
			^ result ] in [
	MetacelloPlatform current
		do: [
			| result |
			result := aBlock value.

			MetacelloNotification signal:
				'...finished ' , self versionNumber printString.
			^ result ]
		displaying: aLabel , displayString ] in MetacelloVersion>>doWithProgress:label:silently: in Block: [...
[ :bar |
		bar value: 1.
		aBlock value.
		bar value: 2 ] in IceMetacelloPharoPlatform(MetacelloPlatform)>>do:displaying: in Block: [ :bar |...
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]
[ activeProcess
			psValueAt: index
			put: anObject.
		aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning....
FullBlockClosure(BlockClosure)>>ensure:
Job>>run
ByteString(String)>>displayProgressFrom:to:during:
IceMetacelloPharoPlatform(MetacelloPlatform)>>do:displaying:
[
	MetacelloPlatform current
		do: [
			| result |
			result := aBlock value.

			MetacelloNotification signal:
				'...finished ' , self versionNumber printString.
			^ result ]
		displaying: aLabel , displayString ] in MetacelloVersion>>doWithProgress:label:silently: in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
MetacelloVersion>>doWithProgress:label:silently:
MetacelloVersion>>doLoadRequiredFromArray:withEngine:
[ :versionSpec :requiredArray :projectSpec |
			| result |
			result := versionSpec
				          doLoadRequiredFromArray: requiredArray
				          withEngine: self.
			self root: result.
			MetacelloProjectRegistration
				registrationForProjectSpec: projectSpec
				ifAbsent: [ :new |
					new
						loadedInImage: true;
						registerProject ]
				ifPresent: [ :existing :new |
					existing copyOnWrite: [ :existingCopy |
						existingCopy
							loadedInImage: true;
							merge: new ] ] ] in MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade: in Block: [ :versionSpec :requiredArray :projectSpec |...
[
				| versionSpec projectSpec requiredArray |
				self setDefaultsAndValidateProjectSpec.
				[
				projectSpec := (self lookupProjectSpecFor:
					                self projectReferenceSpec) copy ]
					on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
					do: [ :notification |
						notification
							handleOnDownGrade: onDownGradeBlock
							onUpgrade: onUpgradeBlock ].

				projectSpec loads: required.
				projectSpec ensureProjectLoadedWithEngine: self.
				versionSpec := projectSpec project version:
					               projectSpec versionString.
				requiredArray := projectSpec loadListForVersion: versionSpec.
				self root:
					(aBlock
						 value: versionSpec
						 value: requiredArray
						 value: projectSpec) ] in [
			self handleNotificationsForAction: [
				| versionSpec projectSpec requiredArray |
				self setDefaultsAndValidateProjectSpec.
				[
				projectSpec := (self lookupProjectSpecFor:
					                self projectReferenceSpec) copy ]
					on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
					do: [ :notification |
						notification
							handleOnDownGrade: onDownGradeBlock
							onUpgrade: onUpgradeBlock ].

				projectSpec loads: required.
				projectSpec ensureProjectLoadedWithEngine: self.
				versionSpec := projectSpec project version:
					               projectSpec versionString.
				requiredArray := projectSpec loadListForVersion: versionSpec.
				self root:
					(aBlock
						 value: versionSpec
						 value: requiredArray
						 value: projectSpec) ] ] in MetacelloScriptEngine>>do:required:onProjectDownGrade:onProjectUpgrade:commitIfSuccess: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
[
	actionBlock
		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: 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: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
[
	[
	actionBlock
		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: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
MetacelloScriptEngine>>handleNotificationsForAction:
[
			self handleNotificationsForAction: [
				| versionSpec projectSpec requiredArray |
				self setDefaultsAndValidateProjectSpec.
				[
				projectSpec := (self lookupProjectSpecFor:
					                self projectReferenceSpec) copy ]
					on: MetacelloAllowProjectDowngrade , MetacelloAllowProjectUpgrade
					do: [ :notification |
						notification
							handleOnDownGrade: onDownGradeBlock
							onUpgrade: onUpgradeBlock ].

				projectSpec loads: required.
				projectSpec ensureProjectLoadedWithEngine: self.
				versionSpec := projectSpec project version:
					               projectSpec versionString.
				requiredArray := projectSpec loadListForVersion: versionSpec.
				self root:
					(aBlock
						 value: versionSpec
						 value: requiredArray
						 value: projectSpec) ] ] in MetacelloScriptEngine>>do:required:onProjectDownGrade:onProjectUpgrade:commitIfSuccess: in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
MetacelloProjectRegistration class>>copyRegistryDuring:commitIfSuccess:
MetacelloScriptEngine>>do:required:onProjectDownGrade:onProjectUpgrade:commitIfSuccess:
MetacelloScriptEngine>>load:onProjectDownGrade:onProjectUpgrade:
MetacelloScriptEngine>>load:
[ :projectReferenceSpec |
		| engine |
		engine := MetacelloScriptEngine new
			          options: self options copy;
			          projectReferenceSpec: projectReferenceSpec;
			          yourself.
		engine perform: actionArg key withArguments: actionArg value.
		engine root ifNotNil: [ :root | self roots add: root ] ] in MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute: in Block: [ :projectReferenceSpec |...
[ :projectSpec | 
      projectSpec
        ifNotNil: [ projectSpecBlock value: (self applyArgsToProjectSpec: projectSpec copy) ] ] in MetacelloScriptApiExecutor>>executeString:do: in Block: [ :projectSpec | ...
Array(SequenceableCollection)>>do:
MetacelloScriptApiExecutor>>executeString:do:
MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
[ 
		^ super execute: statements ] in MetacelloScriptApiExecutor>>execute: in Block: [ ...
[ activeProcess
			psValueAt: index
			put: anObject.
		aBlock value ] in IceMetacelloLoadSessionContext(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
IceMetacelloLoadSessionContext(DynamicVariable)>>value:during:
IceMetacelloLoadSessionContext class(DynamicVariable class)>>value:during:
IceMetacelloPharoPlatform>>withMetacelloLoadSessionDo:
MetacelloScriptApiExecutor>>execute:
Metacello>>execute:args:
Metacello>>load:
IceTipMetacelloInstallBaselineDefaultCommand(IceTipMetacelloInstallBaselineCommand)>>basicInstallBaseline:groups:
[ self basicInstallBaseline: icePackage groups: anArray ] in [ 
			Iceberg announcer 
				suspendAllForRepository: self repository
				while: [ self basicInstallBaseline: icePackage groups: anArray ] ] in IceTipMetacelloInstallBaselineDefaultCommand(IceTipMetacelloInstallBaselineCommand)>>installBaseline:groups: in Block: [ self basicInstallBaseline: icePackage groups[..]
FullBlockClosure(BlockClosure)>>ensure:
IceAnnouncer>>suspendAllMatching:while:
IceAnnouncer>>suspendAllForRepository:while:
[ 
			Iceberg announcer 
				suspendAllForRepository: self repository
				while: [ self basicInstallBaseline: icePackage groups: anArray ] ] in IceTipMetacelloInstallBaselineDefaultCommand(IceTipMetacelloInstallBaselineCommand)>>installBaseline:groups: in Block: [ ...
FullBlockClosure(BlockClosure)>>cull:
FullBlockClosure(BlockClosure)>>cull:cull:
[ :aJob | result := actionBlock cull: self context cull: aJob ] in IceTipStandardAction>>basicExecute in Block: [ :aJob | result := actionBlock cull: self con[..]
FullBlockClosure(BlockClosure)>>cull:
[ :job | 
			"job min: 0; max: 100."
			result := aBlock cull: job ] in StPharoApplication(SpApplication)>>informUser:during: in Block: [ :job | ...
FullBlockClosure(BlockClosure)>>cull:
[ ^ block cull: self ] in [ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ ^ block cull: self ]
[ activeProcess
			psValueAt: index
			put: anObject.
		aBlock value ] in CurrentJob(DynamicVariable)>>value:during: in Block: [ activeProcess...
FullBlockClosure(BlockClosure)>>ensure:
CurrentJob(DynamicVariable)>>value:during:
CurrentJob class(DynamicVariable class)>>value:during:
[ self prepareForRunning.
	  CurrentJob 
		value: self 
		during: [ ^ block cull: self ] ] in Job>>run in Block: [ self prepareForRunning....
FullBlockClosure(BlockClosure)>>ensure:
Job>>run
StPharoApplication(SpApplication)>>informUser:during:
IceTipStandardAction>>basicExecute
[ 
		result := self basicExecute.
		self finishSuccess ] in IceTipStandardAction(IceTipAction)>>execute in Block: [ ...
FullBlockClosure(BlockClosure)>>on:do:
IceTipStandardAction(IceTipAction)>>withErrorHandlingDo:
IceTipStandardAction(IceTipAction)>>execute
IceTipStandardAction(IceTipAction)>>executeWithContext:
IceTipMetacelloInstallBaselineDefaultCommand(IceTipMetacelloInstallBaselineCommand)>>installBaseline:groups:
IceTipMetacelloInstallBaselineDefaultCommand(IceTipMetacelloInstallBaselineCommand)>>installBaseline:
IceTipMetacelloInstallBaselineDefaultCommand>>execute
IceTipSpCommand(CmCommandDecorator)>>execute
[ aCommand execute ] in SpMenuPresenterBuilder>>fillItem:with: in Block: [ aCommand execute ]
FullBlockClosure(BlockClosure)>>cull:
SpMenuItemPresenter>>performMenuActionWith:
SpMorphicMenuItemAdapter>>performMenuActionWith:
[ | selArgCount |  "show cursor in case item opens a new MVC window"
		(selArgCount := selector numArgs) = 0
			ifTrue:
				[target perform: selector]
			ifFalse:
				[selArgCount = arguments size
					ifTrue: [target perform: selector withArguments: arguments]
					ifFalse: [target perform: selector withArguments: (arguments copyWith: evt)]].
		self showShortcut.
		self changed] in SpToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent: in Block: [ | selArgCount |  "show cursor in case item o[..]
FullBlockClosure(BlockClosure)>>ensure:
CursorWithMask(Cursor)>>showWhile:
SpToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
SpToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
SpToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
SpToggleMenuItemMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>handleMouseUp:
MouseButtonEvent>>sentTo:
[ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: in Block: [ ^ anEvent sentTo: self ]
FullBlockClosure(BlockClosure)>>ensure:
MorphicEventDispatcher>>dispatchEvent:with:
SpToggleMenuItemMorph(Morph)>>processEvent:using:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>handleMouseUp:
MouseButtonEvent>>sentTo:
[ ^ anEvent sentTo: self ] in MorphicEventDispatcher>>dispatchEvent:with: in Block: [ ^ anEvent sentTo: self ]
FullBlockClosure(BlockClosure)>>ensure:
MorphicEventDispatcher>>dispatchEvent:with:
MenuMorph(Morph)>>processEvent:using:
MenuMorph(Morph)>>processEvent:
MenuMorph>>handleFocusEvent:
[
		result := focusHolder handleFocusEvent: transformedEvent.
	] in HandMorph>>sendFocusEvent:to:clear: in Block: [...
FullBlockClosure(BlockClosure)>>on:do:
WorldMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
[
		(morphicWorld activeHand isNotNil and: [ anEvent hand isNotNil ]) ifTrue: [
			morphicWorld activeHand handleEvent: anEvent
		]
	] in OSWindowMorphicEventHandler>>dispatchMorphicEvent: in Block: [...
WorldState>>runStepMethodsIn:
WorldMorph>>runStepMethods
WorldState>>doOneCycleFor:
WorldMorph>>doOneCycleNow
WorldMorph>>doOneCycle
[
		| extraWorldsToDraw |
		extraWorldsToDraw := ExtraWorldListMutex critical: [
			                     self extraWorldList ].
		extraWorldsToDraw do: [ :world | world doOneCycle ].

		(self currentWorld isNotNil and: [
			 (extraWorldsToDraw includes: self currentWorld) not ]) ifTrue: [
			self currentWorld doOneCycle ] ] in WorldMorph class>>doOneCycle in Block: [...
FullBlockClosure(BlockClosure)>>ensure:
WorldState class>>doDrawCycleWith:
WorldMorph class>>doOneCycle
MorphicRenderLoop>>doOneCycle
MorphicRenderLoop>>doOneCycleWhile:
[ MorphicRenderLoop new doOneCycleWhile: [ true ] ] in MorphicUIManager>>spawnNewProcess in Block: [ MorphicRenderLoop new doOneCycleWhile: [ tru[..]
[self value.
			"IMPORTANT: Do not step over next line of code. See method comments for details"
			Processor terminateRealActive] in FullBlockClosure(BlockClosure)>>newProcess in Block: [self value....

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions