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. 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 <filetree://./PharoLambda/src>'; load." > > BASELINE=Lambda > pharo "$IMAGE_NAME.image" --no-default-preferences eval --save \ > "Metacello new baseline: '$BASELINE'; repository: > 'filetree://./PharoLambda/src <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> > >
