On Sat, Jan 10, 2015 at 5:22 PM, Dale Henrichs <
dale.henri...@gemtalksystems.com> wrote:

>  Usman,
>
> Thanks for supplying the image ... with that I could diagnose the problem.
> In the final analysis, the onDowngrade: feature just does not work[1]. I
> haven't had a `downgrade` use case in my own work flow, so I did not notice
> that it wasn't working and the test cases that I do have are obviously
> faulty.
>
> Along the way, I discovered that in the Moose image, there is a custom
> MetacelloPlatform class installed (GTMetacelloPlatform) that is not
> compatible with the Scripting API. With that class installed, the scripting
> API will not work. I was able to install the proper platform class myself,
> but it requires manual intervention ...
>

I do not know the use case for GTMetacelloPlatform.


>
> Also, it turns out the PetitParser 1.10 is the version that is installed
> and your new version 1.51 is not technically a downgrade ... I think that
> the version needs to be named 1.5.1 to be a downgrade ... I changed that as
> well and that's when I was able determine that onDowngrade: wasn't
> functioning correctly.
>

Yes, this is something I remarked as well.
Thanks for working on this problem.

regards,


>
> Basically, the code said "go ahead and downgrade" but when it came time to
> actually load the packages, Metacello went ahead with it's standard
> algorithm of only loading newer versions of each package.
>
> I plan to take a crack at fixing this bug this weekend ... and will let
> you when I have a fix.
>
> Dale
>
> [1] https://github.com/dalehenrich/metacello-work/issues/317
>
>
> On 1/8/15 12:32 AM, Usman Bhatti wrote:
>
>
>
> On Wed, Jan 7, 2015 at 8:25 PM, Dale Henrichs <
> dale.henri...@gemtalksystems.com> wrote:
>
>>  Usman,
>>
>> No, I appreciate your patience:) If creating your own configuration works
>> for you then that is a good route to go...
>>
>
>> Sharing your image will make it much easier for me to get the bottom of
>> this (on my own schedule:), so please send me a link for accessing your
>> image and I'll dig into this in more detail when I have time ...
>>
>
>  Here is the image.
> https://dl.dropboxusercontent.com/u/11804892/downgrade-with-metacello.zip
>
>  You just need to execute the script in the workspace/playground to
> reproduce the problem (i.e. launching the directive to load PP 1.51 and
> that not happening).
>
>
>> If you find yourself stuck and needing the `downgrade directive` again,
>> I'll bump up the priority ...
>>
>
>  I can still wait till next week. If you could have a look by then, it'll
> be great.
> tx.
> Usman
>
>
>>
>>
>> Dale
>>
>>
>> On 01/07/2015 09:19 AM, Usman Bhatti wrote:
>>
>>
>>
>> On Tue, Jan 6, 2015 at 6:56 PM, Dale Henrichs <
>> dale.henri...@gemtalksystems.com> wrote:
>>
>>>
>>> On 1/6/15 7:16 AM, Usman Bhatti wrote:
>>>
>>>  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?
>>>
>>> Good question, I don't have a lot of time today to spend time trying to
>>> reproduce your problem, but if you send me a copy of the Transcript
>>> produced while doing the load I might be able to spot the problem ...
>>>
>>
>>  It looks to me that the downgrade command is not working. Whenever I
>> point to the version preceding the one loaded, the packages are not fetched.
>>
>>  I am attaching here two files.
>>
>>  The first (Transcript-PP151) is the output of the transcript as you
>> asked. You can see that PetitParser packages as defined by the version 1.51
>> are not fetched. All that is loaded is Glamour because the version 1.51 of
>> PetitParser loads the latest packages of Glamour. The load works because it
>> is an upgrade from the current version of Glamour which is a stable.
>>
>>  When I saw that only Glamour packages are loaded, I thought of testing
>> Glamour downgrade too to see if the problem is specific to PetitParser. You
>> can see the result in the second file (Transcript-downgrade-glamour). No
>> packages of Glamour are fetched because the configuration tries to
>> downgrade it (stable is more recent than 3.0.0 which I try to load).
>>
>>  In my opinion, downgrade is not working as required. If you want I can
>> share my image thru dropbox so that you can have a look to see what might
>> be wrong.
>>
>>
>>>
>>>
>>>  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?
>>>
>>>  I've noticed the same thing:)
>>>
>>> My "elevator pitch" for the script api goes like this:
>>>   1. The scripting api maintains a registry of the actual project
>>> versions loaded into the image,
>>>       making #currentVersion obsolete. #currentVersion is bad because it
>>> does a calculation of
>>>       the current version that can be very slow and sometimes completely
>>> incorrect.
>>>    2. The old api has rules that it follows when loading projects (i.e.,
>>> newer projects always win) and
>>>        there is no mechanism for altering those rules. The scripting api
>>> provides mechanisms for
>>>        for bending those rules to fit your needs ... like allowing a
>>> downgrade of a project.
>>>
>>> Part of the reason that people haven't changed has to do with how
>>> incredibly difficult it is to change the existing inertia. Another part of
>>> it is that I continue to support the old way of doing things, so there is
>>> no explicit motivation to change.
>>>
>>> If you look back 2-3 years in the archives of the Metacello mailing
>>> list[1] you should be able to find a number of posts where I make a more
>>> detailed cases for the scripting api:)
>>>
>>> At the end of the day, it isn't important to me to "get people to use
>>> the scripting api," as I said, I continue to support using the old api. I
>>> figure that when enough people start asking questions about how to "bend
>>> the Metacello rules" that folks will begin to use the "new" scripting api:)
>>>
>>
>>  So, what I learn is that I am trying to bend the rules of Metacello
>> which is a rare use case :). I am thinking of avoiding this downgrading
>> altogether by forking to create my own ConfigOf that loads the correct
>> versions. Downgrading might be an anti-pattern.
>>
>>  Thank you for your patient so far :)
>>
>>  regards.
>>
>>
>>
>>>
>>> Dale
>>> [1] https://groups.google.com/forum/#!forum/metacello
>>>
>>
>>
>>
>
>

Reply via email to