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