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 Then you will do something like: 2017-08-02 15:18 GMT+02:00 Tim Mackinnon <[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]> > 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]> > wrote: > >> >> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <[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' ]. >>> 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]> >>> wrote: >>> >>> >>> >>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <[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/ar >>>> tifact/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/ 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-32bi >>>> t-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 <+33%206%2052%2070%2066%2013> > > >
