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