Dale,

I couldn't make it work with the upgraded Metacello and the script you
provided.

Steps I did:

1. Download moose image:
https://ci.inria.fr/moose/job/moose-5.0/

2. Update my Metacello to the 'full' version:
Metacello new
  baseline: 'Metacello';
  repository: 'github://dalehenrich/metacello-work:master/repository';
  get.
Metacello new
  baseline: 'Metacello';
  repository: 'github://dalehenrich/metacello-work:master/repository';
  onConflict: [:ex | ex allow];
  load

3. File in the ConfigurationOfDummyParser (see the first message in the
thread).

4.  Run this script to downgrade to PetitParser version 1.51

Metacello new
    configuration: 'DummyParser';
    version: '1.0';
    repository: '???';
    onDowngradeUseIncoming: #('PetitParser');
    load.

The desired version is still not loaded, am I missing something here?

regards,

A question: I always use Metacello with ConfigOf and have never used the
scripting API myself or saw it being used elsewhere.
Can you provide a link that describes the use cases for both: ConfigOf vs.
Scripting API?

On Fri, Jan 2, 2015 at 6:47 PM, Dale Henrichs <
dale.henri...@gemtalksystems.com> wrote:

>  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.
>
>  [image: Inline image 1]
>
>  Did I miss something?
>
>  regards,
> Usman
>
> On Fri, Dec 19, 2014 at 7:00 PM, Dale Henrichs <
> 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.
>>
>>  Usman[image: Inline image 1]
>>
>>
>>
>>
>>
>
>

Reply via email to