On 1/6/15 7:16 AM, Usman Bhatti wrote:
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 ...Dale,I couldn't make it work with the upgraded Metacello and the script you provided.
Steps I did:
1. Download moose image:��
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?
I've noticed the same thing:)
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?��
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:)