Usman,
It is likely that Pharo3.0 is not using the latest version of Metacello.
You should be able to upgrade to the latest versions following the
install instructions for Pharo3.0[1].
Dale
[1] https://github.com/dalehenrich/metacello-work#pharo30
On 1/2/15 6:23 AM, Usman Bhatti wrote:
Dale,
Thanks for your detailed explanations.
Metacello class in my image does not seem to define the messages
described in the documentation for handling downgrading and upgrading
conflicts:
https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloUserGuide.md#downgrade
I am using Pharo 3.0 with Moose.
Inline image 1
Did I miss something?
regards,
Usman
On Fri, Dec 19, 2014 at 7:00 PM, Dale Henrichs
<dale.henri...@gemtalksystems.com
<mailto:dale.henri...@gemtalksystems.com>> wrote:
Usman,
With classic Metacello (using the `(ConfigurationOfxxx project
version: 'xxx') load` pattern) you can only downgrade via an
explicit load of a particular version of the project. When loading
projects indirectly via a project reference from another project
Metacello is biased towards upgrade.
With the Metacello Scripting API[1], you may include an
#onDowngradeUseIncoming: clause to selectively permit downgrades:
Metacello new
configuration: 'DummyParser';
version: '1.0';
repository: '???';
onDowngradeUseIncoming: #('PetitParser');
load.
For additional downgrade options see[2].
Since you are interested in using a specific version of a project
you may also be interested in locking the project[3][4]. With a
`lock` Metacello will not upgrade or downgrade the project but
always `honor` the lock unless an #onLock: clause is used ...
Note that for `locking` to work, you must use the Metacello
Scripting API to do all of your project loads ...
Dale
[1]
https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloUserGuide.md#metacello-user-guide
[2]
https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloUserGuide.md#downgrade
[3]
https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloUserGuide.md#locking
[4]
https://github.com/dalehenrich/metacello-work/blob/master/docs/LockCommandReference.md#lock-command-reference
On 12/19/2014 07:44 AM, Usman Bhatti wrote:
Hi all,
I am trying to load a specific version of PetitParser in a Moose
image. A Moose image comes with the latest development version of
PetitParser. So, I am trying to downgrade to an older version.
So, when I load the version manually, older versions of the
packages are loaded:
(ConfigurationOfPetitParser project version: '1.51') load
But when I try to load the same version within my ConfigOf the
expected packages are not loaded and list of the PetitParser
packages loaded remains unchanged. Here is how my baseline looks
like:
ConfigurationOfDummyParser>>baseline01: spec
<version: '0.1-baseline'>
spec for: #'common' do: [
spec blessing: #'baseline'.
spec project: 'PetitParser' with: [
spec
className: #ConfigurationOfPetitParser;
versionString: '1.51';
repository: 'http://smalltalkhub.com/mc/Moose/PetitParser/main/'
]. ].
I also tried creating a version but it didn't help.
ConfigurationOfDummyParser>>version10: spec
<version: '1.0' imports: #('0.1-baseline' )>
spec for: #'common' do: [
spec blessing: #'stable'.
spec description: 'version 1.0'.
spec author: 'usmanbhatti'.
spec timestamp: '12/19/2014 16:35'.
spec project: 'PetitParser' with: '1.51'. ].
I also had a look at the package the configuration tries to load
and the list shows correct packages to be loaded (see screenshot).
Does anyone have an idea what may be problematic in my code or
that of Metacello? I am attaching the code of my ConfigOf for a
Moose image.
Thanks in advance.
UsmanInline image 1