[Glass] Metacello baseline 'get' does not work?

Johan Brichau johan at yesplan.be
Thu Apr 20 03:16:35 PDT 2023


Hi all,

A Metacello question, but related to updated a git-based codebase in a GemStone repository:

We are loading and updating our project using Metacello from a (local) filetree repository.
The Metacello script is a class method `loadScript` implemented on the baseline class. So, we load and update our code (basically) using the following code in a topaz:

	Metacello new
     		baseline:'Yesplan';
     		repository: 'filetree:///home/yesplan/localrepositories/Yesplan/smalltalk-src';
     		get.
	BaselineOfYesplan loadScript.

The `loadScript` is again a `Metacello new …` where all appropriate properties for loading are set (using the Metacello scripting API).
We do a pull on the filetree repository outside of this script using bash scripts.

This works well, except when we make a change to the `BaselineOfYesplan` baseline class… when we do this, the change is not loaded by the `get` command.
Instead, the change to `BaselineOfYesplan` is only loaded as part of the `loadScript`. This is not desired because we want to use the version of the `BaselineOfYesplan` of the same commit to load that commit.

The only way we can make this work is by adding a load step using Gofer before the `loadScript`:

Gofer new
    repository: (MCRepositoryGroup default repositories detect: [ :repository |repository description = 'filetree:///home/yesplan/localrepositories/Yesplan/smalltalk-src' ]);
    package: 'BaselineOfYesplan';
    load

However, I was under the impression that `Metacello get` is supposed to load the updated `BaselineOf` ?
I tried using a `flushCache` on the `MCFileTreeRepository` instance before the `Metacello get` but that did not change anything.

Any ideas if this is a bug? Should work? Do I do it wrong? 

Thanks
Johan


More information about the Glass mailing list