[Glass] Another metacello loading puzzle: xml

Iwan Vosloo via Glass glass at lists.gemtalksystems.com
Mon Jan 1 01:02:20 PST 2018


Hi Dale,

Sorry, the new year crept up on me (skeleton staff need to multitask).

Hope you have a good one!

On 27/12/2017 21:55, Dale Henrichs via Glass wrote:
 >
 > Sooooo, please provide me with the set of Metacello load scripts that
 > you use to load your application without involving any caching at all
 > ... and the Transcript output for the full load. This will allow me to
 > understand when and where the http repositories get hit as well as
 > whether or not github repos with zip file downloads are involved or not
 > (my suspicion is that things might not work as expected when gthub
 > downloads are involved --- a use case for which I have not tests) ...
 > rather than guess, I'd rather know ...

Extracting all our scripts is very tricky because they rely on a 
particular setup, managed by ruby and chef.

I have extracted the BaselineOfWonkaRuntime package though[1], which 
contains all the relevant smalltalk bits, and I added a bash shell 
script that invokes that smalltalk code via topaz just like our ruby 
scripts do. It also contains a copy of the transcript it currently 
yields [2].

What is missing is other stuff our scripts do before invoking the 
smalltalk, like fixing up monticello packages so they dont have 
non-ascii chars in their metadata.

I have been trying to just play with this outside of our scripts because 
I'd want to remove most of the code there and basically just rely on 
Metacello and GsUpgrader to get the same job done.

Ideally, I'd love to get something like the snippet below to work:

On 27/12/2017 21:55, Dale Henrichs via Glass wrote:
 > So I would like to start over ... I still believe that you should be
 > doing something like the following:
 >
 >    | version repo |
 >    repo := MCDirectoryRepository new.
 >    repo directory: FileDirectory on: '<path to directory>'.
 >    Metacello new
 >      configuration: 'XXX';
 >      version: '1.0';
 >      cacheRepository: repo;
 >      fetch.
 >    Metacello new
 >      configuration: 'XXX';
 >      version: '1.0';
 >      repositoryOverrides: (OrderedCollection with: repo);
 >      load
 >
 > But it sounds like you don't have a single master configuration or
 > baseline to do your loads ... right?

No, we do have a single baseline (BaselineOfWonkaRuntime).

Your code snippet above confuses me somewhat though... because according 
to the docs [3]:

a) I should be able to just pass a string to cacheRepository:
b) I should specify cacheRepository: to the second call as well

Although I have not played with repositoryOverrides: outside of our 
scripts, it looked like that is what is needed to truly force it to read 
the local repo when it loads the BaselineOf/ConfigurationOfs themselves. 
But, I limited my experiments to just get what is in [3] to work as a 
first step.


I feel bad about spamming the list so perhaps chat in the git repo? The 
git repository is public.


[1] https://github.com/finworks/BaselineOfWonkaRuntime

[2] 
https://github.com/finworks/BaselineOfWonkaRuntime/blob/master/logs/transcript.2018-01-01.log

[3] 
https://github.com/Metacello/metacello/blob/master/docs/MetacelloScriptingAPI.md#fetching

Regards
Iwan



-- 



More information about the Glass mailing list