I’m so close now (bit of a diversion with gitlab yml not liking the eval 
string) - that did load and it got me really close - I’m just missing 
FlSerializer now (I have progressed my work to fuel out the context for 
debugging to S3)… so looking at the repo, there are quite a few fuel packages - 
but in a big image I can see that FLSerialiser is in Core - so do I just need 
core? But then there are a few fuel packages with Core?

I’m also not quite clear on how I would load packages without a Baseline (would 
I create my own baseline for the fuel packages I need?)

Tim

> On 3 Aug 2017, at 12:07, Pavel Krivanek <[email protected]> wrote:
> 
> 
> 
> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <[email protected] 
> <mailto:[email protected]>>:
> I really appreciate your patience and help on this - it looks very promising 
> and I am giving it a spin now…
> 
> When you say the pharo repository - are you referring to this: 
> https://github.com/pharo-project/pharo/tree/master/src 
> <https://github.com/pharo-project/pharo/tree/master/src>. ? Just so I know 
> for the future.
> 
> yes
> 
> -- Pavel 
> 
> 
> Tim
> 
>> On 3 Aug 2017, at 09:16, Pavel Krivanek <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> 
>> 
>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <[email protected] 
>> <mailto:[email protected]>>:
>> The easiest think you can do is to copy to your repository (or some other) 
>> related packages from the Pharo repository (to do not have to clone it all):
>> 
>> Metacello-GitBasedRepository.package
>> Metacello-GitHub.package
>> SUnit-Core.package
>> 
>> and create baseline to load them. I already tried it so you can test it:
>> https://drive.google.com/open?id=0BzSsmZhqtUTeMVJacTZtdW5UQW8 
>> <https://drive.google.com/open?id=0BzSsmZhqtUTeMVJacTZtdW5UQW8>
>> 
>> Then you will do something like:
>> 
>> (accidental message send ;-) )
>> 
>> BASELINE=MetacelloGitBasedRepository
>> pharo "$IMAGE_NAME.image" --no-default-preferences eval --save \
>>      "Metacello new baseline: '$BASELINE'; repository: 
>> 'filetree://./PharoLambda/src <>'; load."
>> 
>> BASELINE=Lambda
>> pharo "$IMAGE_NAME.image" --no-default-preferences eval --save \
>>      "Metacello new baseline: '$BASELINE'; repository: 
>> 'filetree://./PharoLambda/src <>'; load."
>> 
>> As I tried that. The baseline of Lambda is then able to be loaded.
>> 
>> -- Pavel
>> 
>> 
>> 
>> 
>> 
>> 2017-08-02 15:18 GMT+02:00 Tim Mackinnon <[email protected] 
>> <mailto:[email protected]>>:
>> 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] 
>>> <mailto:[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 <tel:+33%206%2052%2070%2066%2013>
>> 
>> 
> 
> 

Reply via email to