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 >> > > >