Ah, I think I’m starting to get closer to what I need…

So if I want to load in that last piece to enable more general remote loading - 
how do I figure out how to do that? I’m trying to work out where the build 
steps for building up the image (can I see them in Jenkins? It wasn’t clear to 
me if I can look it up? Or the BaselineOfIDE was mentioned - looking there I 
can see a few metacello and gofer packages - but then I guess I’m looking for 
an easy Mcz I can use with the example below?

Or do I just load Metacello as a git submodule and then it will be on my local 
filesystem to then bootstrap up?

I guess I’m trying to work out the best sustainable approach to getting to a 
good server based image that has minimal tools and the ability to easily load 
remote code for pre-req projects.

Tim

> On 2 Aug 2017, at 07:05, Guillermo Polito <[email protected]> wrote:
> 
> Yes, you should be able to load an mcz in that image by doing:
> 
> (MCDirectoryRepository new directory: 'where-your-mcz-is')
>     loadVersionFromFileNamed: 'Metacello-GitBasedRepository-Author.1.mcz') 
> load.
> 
> Guille
> 
> On Wed, Aug 2, 2017 at 7:57 AM, Pavel Krivanek <[email protected] 
> <mailto:[email protected]>> wrote:
> 
> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <[email protected] 
> <mailto:[email protected]>>:
> Hi Pavel - I tried it again and the problem is do with Metacello dependencies 
> in your baseline.
> 
> The SUnit baseline doesn’t specify any additional dependencies to load (it 
> just loads local packages), whereas my baseline that fails looks like this:
> 
> baseline: spec
>       <baseline>
> 
>       spec for: #common do: [
>               spec configuration: 'ZTimestamp' with: [
>                       spec 
>                               versionString: #stable;
>                               repository: 'http://mc.stfx.eu/Neo 
> <http://mc.stfx.eu/Neo>' ].
>                       
>               spec baseline: 'AWS' with: [    
>                       spec repository: 
> 'github://newapplesho/aws-sdk-smalltalk:v1.10/pharo-repository <>' ].
>                                               
>               spec 
>                       package: 'Lambda' with: [ spec requires: {'ZTimestamp'. 
> 'AWS'}].
>                       
>       ].              
> 
> 
> The “spec configuration: ….” Specifications cause the error:
> 
> 25 UndefinedObject(Object)>>doesNotUnderstand: #addTo:
> 26 MCRepositoryGroup>>addRepository:
> 
> If I remove those lines from my baseline above (as well the requires: 
> reference to them) I can then successfully load my packages.
> 
> So is this something the minimal image should support (otherwise how do you 
> load external packages into your image without checking them in locally?) OR 
> is there something simple I can checkin and load locally to return that 
> behaviour? (Personally I think it would make sense to allow remote loading - 
> I’m guessing Pharo itself as a core has everything it needs - but if you want 
> to do any experimentation on the core and need remote packages, you would hit 
> this too - so it feels a bit limiting). 
> 
> The dependencies in th baseline are supported but the support for most of 
> external repositories (like package Metacello-GitBasedRepository) is loaded 
> at the end of bootstrapping process in BaselineOfIDE. We should check/solve 
> dependencies and move it into the minimal Pharo. For now you can try to load 
> it by yourself or work with already prepared local clones of required 
> repositories.
> 
> -- Pavel
> 
> 
>  
> 
> Tim
> 
>> On 1 Aug 2017, at 10:06, Pavel Krivanek <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> 
>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <[email protected] 
>> <mailto:[email protected]>>:
>> I wasn’t clear on which image to retry - the 
>> https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip
>>  
>> <https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccessfulBuild/artifact/Pharo-minimal-64.zip>
>>  one still shows as being last updated 7 days ago.
>> 
>> The 
>> https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/
>>  
>> <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-ConfigurationOfMinimalPharo/>
>>  one gives me a mismatch error: This interpreter (vers. 68021) cannot read 
>> image file (vers. 6521).
>> 
>> The 
>> https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip
>>  
>> <https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/latest-minimal-64.zip>
>>  one gives me a walkback when trying to run my install script :
>> 
>> 25 UndefinedObject(Object)>>doesNotUnderstand: #addTo:
>> 26 MCRepositoryGroup>>addRepository:
>> 27 createRepository
>>   | repo |
>>   repo := self project createRepository: self.
>>   ^ MCRepositoryGroup default repositories
>>     detect: [ :each | each = repo ]
>>     ifNone: [ 
>>       MCRepositoryGroup default addRepository: repo.
>>       repo ] in MetacelloRepositorySpec>>createRepository
>> 
>> I think this is because the image doesn’t support Metacello? As in:
>> Metacello new
>>     repository: 'filetree://../src <>';
>>     baseline: 'Lambda';
>>     load.
>> 
>> How do you guys load things into the minimal images (I thought you used 
>> Metacello - but maybe you do it some other way?)
>> 
>> I can use a big 6.1 image fine (as it has Metacello loaded) but I’d really 
>> like a minimal solution - that can load in libraries like AWS S3, or XML 
>> parsing etc. and it seems like I should be a good customer for kicking the 
>> tires on all of this.
>> 
>> Tim
>> 
>> 
>> I checked the 64-bit Pharo 7 minimal image and loading of baseline (of SUnit 
>> from pharo-project/pharo) works:
>> 
>> ./pharo Pharo7.0-minimal-64bit-b1625bf.image eval --save "Metacello new 
>> baseline: 'SUnit'; repository: 'filetree://./pharo-core/src <>'; load."
>>  
>> ./pharo Pharo7.0-minimal-64bit-b1625bf.image eval "TestCase suite run"
>> 
>> Can you test it too?
>> 
>> -- Pavel
> 
> 
> 
> 
> 
> -- 
>    
> Guille Polito
> 
> Research Engineer
> French National Center for Scientific Research - http://www.cnrs.fr 
> <http://www.cnrs.fr/>
> 
> 
> Web: http://guillep.github.io <http://guillep.github.io/>
> Phone: +33 06 52 70 66 13

Reply via email to