[Glass] Another metacello loading puzzle: xml
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Wed Dec 27 12:02:26 PST 2017
Iwan,
If you don't want to publicly share you load scripts and transcrips,
then we can take this conversation to private email ... and post a
summary conclusion when we're done for the benefit of others who may be
facing similar problems ...
Dale
On 12/27/17 11:55 AM, Dale Henrichs wrote:
> Okay ...
>
> Now I understand what you are trying to do, so now I would like to
> understand the exact problems you are having ...
>
> 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? if this is the case, then the
> problem is just slightly more complicated ...
>
> 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 ...
>
> Once I've seen your load script and the load output, I should be able
> to figure out what needs to be done to get you moving in the right
> direction ...
>
> I know that there are other folks out there that use variations of the
> cacheRepository/repositoryOverrides scripts for their production needs
> and it would be helpful if they were to chime in with examples of the
> scripts that they use as well
>
> Dale
>
> On 12/27/17 10:43 AM, Iwan Vosloo via Glass wrote:
>> Hi Dale,
>>
>>
>> On 27/12/2017 19:13, Dale Henrichs via Glass wrote:
>>> Not sure what you mean by "scripting API"?
>>
>> I mean as per the heading of [1]. I thought that referred to working
>> with via a Metacello instance as explained on that page instead of
>> via projects or versions of a configuration.
>>
>> > Perhaps you could be more specific about exactly what you are trying
>> > to achieve
>>
>> Thats complicated (by details). But, I have inherited the job of
>> upgrading our systems. They, and the scripts that manage them are
>> dependent on Metacello for loading things and for expressing
>> dependencies between things....and have evolved over time which means
>> I need to understand Metacello and our intricate context and make
>> things work again on Gs3.4. (Expect lots more strange questions.)
>>
>> What the home-grown scripts do is basically: build a CI extent,
>> starting from the seaside extent, using pretty much only a local
>> BaselineOf that pulls a bunch of 3rd party projects in. Some of these
>> are ConfigurationOfs with mcz files, some are just mcz projects with
>> no Metacello, some are cloned repositories etc. There are a fair
>> number of packages being pulled in, and we won't live in a
>> git-repo-only world any time soon.
>>
>> The same scripts also upgrade production systems.
>>
>> The CI extents can be built using an option that fetches things via
>> the network, but once that is done they typically just use what we
>> fetched before. Also, the CI builds run continuously so we dont want
>> them to hit the network all the time.
>>
>> It is handy to be able to say "go fetch all you need and save it on
>> disk"... it is more cumbersome to clone several git repos... you have
>> to know which ones, which branches and you have to distribute these
>> to the build machines too. (We use git submodules for that.) If I can
>> just say Metacello fetch, and save the resultant cache repository I
>> dont need to even know which dependencies are all pulled in.
>>
>> We also depend on exact versions of things and use that info to make
>> decisions when there is a conflict.
>>
>> I am still trying to figure Metacello out, but what would be nice is
>> if I can, in my BaselineOf point the various bits to github repos,
>> and still fetch and save the fetched result in a cacheRepository
>> inside my own project's git repository. Then I can handle all the
>> different kinds of packages the same way.
>>
>>
>> [1]
>> https://github.com/Metacello/metacello/blob/master/docs/MetacelloScriptingAPI.md
>>
>>
>> Thanks
>> Iwan
>>
>
More information about the Glass
mailing list