hello Dale I tried your approach with a new project I created called Nireas, its a theme manager for pharo 4. I followed your instructions and it complains that it cannot find the BaselineOfNireas
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
linearLoadPackageSpec: packageSpec gofer: gofer
MetacelloPlatform current
do: [��
| references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
"check to see if mcz file is already in cacheRepository"
cachedReference := self resolvePackageSpec: packageSpec cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [��
cachedReference name = packageSpec file
ifTrue: [��
"exact match between packageSpec file and cache"
^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ]. "look up mcz file"
references := self retryingResolvePackageSpecReferences: packageSpec gofer: gofer.
nearestReference := references last asMetacelloCachingResolvedReference. "If the mcz is already in the cacheRepository, no need to copy"
(cachedReference ~~ nil and: [ cachedReference name = nearestReference name ])
ifTrue: [��
"latest reference in repository matches cachedReference ... "
^ self scheduleFetchFor: packageSpec nearestReference: nearestReference ]. "If the mcz is already loaded into the image, no need to copy"
(self ignoreImage not and: [ (loadedVersionInfos := self ancestorsFor: packageSpec) ~~ nil ])
ifTrue: [��
loadedVersionInfos
do: [ :info |��
info name = nearestReference name
ifTrue: [ ^ self ] ] ].
externalReference := (references select: [ :ref | ref name = nearestReference name ]) first
asMetacelloCachingResolvedReference.
self repositoryMap at: externalReference name put: externalReference repository.
(self
resolveDependencies: externalReference
nearest: nearestReference
into: (OrderedCollection with: nearestReference))
do: [ :reference |��
| pSpec l |
mcVersion := reference version.
(l := (GoferVersionReference name: reference name) resolveAllWith: self loaderPolicy cacheGofer) isEmpty
ifTrue: [��
self cacheRepository storeVersion: mcVersion.
reference == nearestReference
ifTrue: [ pSpec := packageSpec ]
ifFalse: [��
pSpec := packageSpec project packageSpec.
pSpec name: mcVersion package name ].
self loadData
addVersion: mcVersion
versionInfo: mcVersion info
resolvedReference: reference
packageSpec: pSpec ] ].
self scheduleFetchFor: packageSpec externalReference: externalReference ]
displaying: 'Fetching ' , packageSpec file in MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer: in Block: linearLoadPackageSpec: packageSpec gofer: gofer...
MetacelloPharo30Platform(MetacelloPlatform)>>do:displaying:
MetacelloFetchingMCSpecLoader>>linearLoadPackageSpec:gofer:
MetacelloPackageSpec>>loadUsing:gofer:
[ :pkg | pkg loadUsing: self gofer: gofer ] in MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories: in Block: [ :pkg | pkg loadUsing: self gofer: gofer ]
Array(SequenceableCollection)>>do:
MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>linearLoadPackageSpecs:repositories:
[ super linearLoadPackageSpecs: packageSpecs repositories: repositories ] in MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories: in Block: [ super linearLoadPackageSpecs: packageSpecs repos...etc...
BlockClosure>>ensure:
MetacelloLoaderPolicy>>pushLoadDirective:during:
MetacelloLoaderPolicy>>pushExplicitLoadDirectivesDuring:for:
MetacelloFetchingMCSpecLoader>>explicitLoadPackageSpecs:repositories:
MetacelloPackageSpec>>explicitLoadUsing:
MetacelloPackageSpec>>load
[��
self setDefaultsAndValidateProjectSpec.
spec := self projectSpec.
projectPackage := spec projectPackage.
projectPackage repositorySpecs do: [ :repoSpec | repoSpec createRepository flushForScriptGet ].
projectPackage load.
self root: (Smalltalk at: spec className asSymbol) project.
MetacelloProjectRegistration
registrationForProjectSpec: spec
ifAbsent: [ :new | new registerProject ]
ifPresent: [ :existing :new |��
existing
copyOnWrite: [ :existingCopy |��
spec
copyForRegistration: existingCopy
onWrite: [ :specCopy | specCopy ifNil: [ existingCopy merge: new ] ifNotNil: [ specCopy mergeScriptRepository: spec ] ] ] ] ] in MetacelloScriptEngine>>get in Block: [ ...
BlockClosure>>ensure:
MetacelloProjectRegistration class>>copyRegistryRestoreOnErrorWhile:
MetacelloScriptEngine>>get
[ :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: in Block: [ :projectSpec | ...
[ :projectSpec | projectSpec ifNotNil: [ projectSpecBlock value: (self applyArgsToProjectSpec: projectSpec copy) ] ] in MetacelloScriptApiExecutor>>executeString:do: in Block: [ :projectSpec | projectSpec ifNotNil: [ projectSp...etc...
Array(SequenceableCollection)>>do:
MetacelloScriptApiExecutor>>executeString:do:
ByteString(String)>>execute:against:
MetacelloScriptApiExecutor(MetacelloScriptExecutor)>>execute:
Metacello>>execute
Metacello>>get
UndefinedObject>>DoIt
OpalCompiler>>evaluate
RubSmalltalkEditor>>evaluateSelectionAndDo: