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
