Proper Monticello (with Iceberg integration) update

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Proper Monticello (with Iceberg integration) update

Juraj Kubelka
Hi!

What is the proper updated mechanism on projects stored on GitHub? To be more explicit, the script:

Metacello new
    baseline: #DiscordSt;
    repository: '<a href="github://JurajKubelka/DiscordSt/src" class="">github://JurajKubelka/DiscordSt/src';
    load.

With the Iceberg integration, it does not work if an older version is already in a Pharo image. 
Doing pull from the Iceberg UI neither works as the new version may have new packages and new external dependencies.

Actually it is also tricky if the Iceberg integration is not involved. I use this script in such scenario: 

```
UIManager default
informUserDuring: [ :bar | 
bar label: 'Removing cached DiscordSt repository from github-cache'.
bar current: 0.
(FileLocator workingDirectory / 'github-cache' / 'JurajKubelka' / 'DiscordSt')
ensureDeleteAll.
bar label: 'Updating DiscordSt baseline definition'.
bar current: 0.33.
Iceberg enableMetacelloIntegration ifFalse: [ 
Gofer new 
url: '<a href="github://JurajKubelka/DiscordSt/src" class="">github://JurajKubelka/DiscordSt/src' asZnUrl;
package: 'BaselineOfDiscordSt';
load ].
bar label: 'Updating DiscordSt source files'.
bar current: 0.66.
Metacello new
baseline: #DiscordSt;
repository: '<a href="github://JurajKubelka/DiscordSt/src" class="">github://JurajKubelka/DiscordSt/src';
onConflict: [:ex | ex allow]; 
load: #default.
bar current: 1 ].
```

I think I need a script that: 
1. updates a local Iceberg repository (if exists)
2. loads new BaselineOfDiscordSt package version to a Pharo image
3. executes the Metacello script.

How can I do properly the first two steps when Iceberg is involved?

Thanks!
Juraj