Emilio,

Okay ... we're peeling the onion :) ...

At this point it sounds like you need to do a flushCache on your filetree
repository in order to force Metacello to re-download from the github into
the local package-cache.

But if Iceberg is involved, I am not the person to ask ... I am not
familiar with the changes that have been made to Metacello to get it to
work with Iceberg ...

Dale



On Fri, Apr 29, 2022 at 3:16 PM Emilio Oca <emilio...@gmail.com> wrote:

> Hi Dale
>
> Thanks again, still not working.
> After updating github I am unable to pull the changes into the image.
> So far the only way is to hit Pull button at the "Working copy of
> MyProyect" repo window.
> I wish I could reproduce what that button does.
>
> Even this:
> Metacello new
>         repository: 'github://...';
>         baseline: 'MyProyect';
>         get
> does not update my file system at iceberg/
>
> Best
>
> Emilio
>
> On Thu, Apr 28, 2022 at 3:29 PM Dale Henrichs <
> dale.henri...@gemtalksystems.com> wrote:
>
>> Emilio,
>>
>> I wasn't quite sure whether or not you were concerned about having the
>> BaselineOf refreshed or a reload of the packages managed by the BaselineOf
>> and as Gabriel mentions, the missing #projectClass method is the most
>> common problem ...
>>
>> By default Metacello does not refresh a BaselieOf in your image if it is
>> already present, however, you can force a refresh of a BaselineOf by using
>> the the Metcello #get command:
>>
>>> Metacello new baseline:'MyProject';
>>>   repository: 'github://myUser/MyProject:main/myProject';
>>>   get;
>>>   load.
>>
>> This would be a good pattern to follow when reloading projects after
>> updating from github ... and I am a bit surprised that this question is not
>> asked more often :)
>>
>> Dale
>>
>> On Mon, Apr 25, 2022 at 6:06 PM Emilio Oca <emilio...@gmail.com> wrote:
>>
>>> Hi Gabriel, Dale!
>>>
>>> My BaselineOf had only #baseline:
>>> Added #projectClass
>>> But is still not working.
>>> It seems to be doing the load, but not the pull before the load.
>>>
>>> I had implemented no more than #baseLine: and now projectClass.
>>>
>>> If I go through the UI and do the pull it works perfectly.
>>> Can I replicate that with a script?
>>>
>>> Best
>>>
>>> Emilio
>>>
>>> On Mon, Apr 25, 2022 at 6:49 PM Dale Henrichs <
>>> dale.henri...@gemtalksystems.com> wrote:
>>>
>>>> Emilio,
>>>>
>>>> Are you using a repository without Monticello meta data? If so, then
>>>> you need to change the #projectClass of you your baseline to:
>>>>
>>>>> projectClass
>>>>>   Smalltalk at: #'MetacelloCypressBaselineProject' ifPresent: [ :cl |
>>>>> ^ cl ].
>>>>>   ^ super projectClass
>>>>
>>>>
>>>> unless the #projectClass is MetacelloCypressBaselineProject, Metacello
>>>> will think that your package versions are 'cypress.1' and Metacello will
>>>> not load packages with the same version .... when the #projectClass is
>>>> MetacelloCypressBaselineProject, Metacello will always load the package and
>>>> let Monticello filter out the changes ...
>>>>
>>>> Dale
>>>>
>>>> On Mon, Apr 25, 2022 at 2:39 PM Esteban Lorenzano <esteba...@netc.eu>
>>>> wrote:
>>>>
>>>>> mmm, you may be having another problem elsewhere, because what I typed
>>>>> should be working (is how we enforce the load of new versions to run the
>>>>> tests, for example).
>>>>>
>>>>> Esteban
>>>>>
>>>>> On Apr 25 2022, at 11:30 pm, Emilio Oca <emilio...@gmail.com> wrote:
>>>>>
>>>>> Hi Esteban
>>>>>
>>>>> Thanks for the hint.
>>>>> It is still not working.
>>>>> Even if I remove BaselineOfMyProject and MyProject.
>>>>> When it reloads, it doesn't loads the last version of head at github
>>>>> but the one that was already at the image.
>>>>>
>>>>> I just want to update up to what is at gibhub head. Is there another
>>>>> way?
>>>>>
>>>>> Best
>>>>>
>>>>> Emilio
>>>>>
>>>>> On Sat, Apr 23, 2022 at 1:56 AM Esteban Lorenzano <esteba...@netc.eu>
>>>>> wrote:
>>>>>
>>>>> Hi Emilio,
>>>>>
>>>>> You need something like this:
>>>>>
>>>>>   Metacello new
>>>>>         repository: 'github://pharo-spec/Spec:Pharo10';
>>>>>         baseline: 'Spec2';
>>>>>         onConflict: [ :e | e useIncoming ];
>>>>>         onUpgrade: [ :e | e useIncoming ];
>>>>>         ignoreImage;
>>>>>         load
>>>>>
>>>>> ignoreImage, onConflict, onUpgrade.
>>>>>
>>>>> BUT if your image already has a baseline for your project then
>>>>> Metacello will not reload it (hence your project may not be loaded
>>>>> correctly, since baseline may have changed).
>>>>>
>>>>> In that case, I always execute before something like:
>>>>>
>>>>> #( 'BaselineOfSpec2' 'BaselineOfSpecCore' ) do: [ :each |
>>>>>   (RPackageOrganizer default packageNamed: each ifAbsent: [ nil ])
>>>>>           ifNotNil: [ :aPackage | aPackage removeFromSystem ] ]
>>>>>
>>>>>
>>>>> I ack this is hacky, but it works :)
>>>>>
>>>>> Esteban
>>>>>
>>>>> On Apr 23 2022, at 3:21 am, Emilio Oca <emilio...@gmail.com> wrote:
>>>>>
>>>>> Hi List
>>>>>
>>>>> I need some help with Metacello, and may be git too
>>>>>
>>>>> I would like to be able to, in a running headless image, load the last
>>>>> commit of a git repo
>>>>>
>>>>> Something like
>>>>> Metacello new baseline:'MyProject';
>>>>> repository: 'github://myUser/MyProject:main/myProject';
>>>>> load.
>>>>> works just once and may open some dialogs
>>>>>
>>>>> Something like this
>>>>> [
>>>>> [
>>>>> Metacello new baseline:'MyProject';
>>>>> repository: 'github://myUser/MyProject:main/myProject';
>>>>> onConflictUseIncoming;
>>>>> load.
>>>>> ] on: MetacelloSkipDirtyPackageLoad do: [ :ex | ex resume: false ].
>>>>> ] on: MCMergeOrLoadWarning do: [ :ex | ex load ].
>>>>> Avoids the dialogs and alerts but the code is still not updated.
>>>>>
>>>>> My intention is to be able to 'refresh' a running seaside image with
>>>>> its latest development version from a git repo (avoiding to personally
>>>>> reach the server and rebuild the docker image)
>>>>> What am I missing?
>>>>>
>>>>> Best
>>>>>
>>>>> Emilio
>>>>>
>>>>>

Reply via email to