Hi Tim,

in the file server:

http://files.pharo.org/image/70/

You can get now latest 32 bit builds in many flavours:
 - compiler (basic pharo image with just a compiler)
 - core (compiler + package initialization)
 - monticello bootstrap (core + basic monticello packages -- no network
here!)
 - monticello (monticello bootstrap + network support)
 - metacello (monticello + metacello)
 - default/full (image with everything loaded)

If you check the built images you'll see that:

 - compiler is 4.7MB
 - core is 5.6MB
 - monticello bootstrap is 8.3MB
 - monticello is 9MB
 - metacello is 10MB
 - full pharo is 30MB

However, metacello and monticello images could be cleaned up a bit, as they
still have some monticello cache to flush.

I'm working on uploading 64 bit images too now.

On Mon, Aug 7, 2017 at 4:26 PM, Tim Mackinnon <tim@testit.works> wrote:

> Hey thanks again - it looks like that file is from Build #25 (I think
> Jenkins might cache the last 5 builds from the looks of it).
>
> Interestingly that image is 2mb smaller than the later ones (which is
> helpful) - however when I try to use it, I get a walkback because Metacello
> wasn’t available in that build.
>
> (I then tried with build  #29 the latest? and #28) - and then I get an
> error as it seems that the Locale class is not defined in that one?
>
> 'Errors in script loaded from minimal.st'
> MessageNotUnderstood: receiver of "currentPlatform" is nil
> UndefinedObject(Object)>>doesNotUnderstand: #currentPlatform
> LanguageEnvironment class>>currentPlatform
> LanguageEnvironment class>>defaultSystemConverter
> TextConverter class>>defaultSystemConverter
> MultiByteFileStream>>converter
> MultiByteFileStream>>nextPut:
> MultiByteFileStream(WriteStream)>>cr
> UndefinedObject>>DoIt
>
>
> So I guess the timing of my question was spot on as it looks like I’ve
> been running with build #27 for a few days (without realising I had cached
> it) and that one works.
>
> I would be interesting in working out how to get metacello in build #25 as
> its smaller size is attractive (assuming its not metacello support that
> adds 3mb to the image size), Do you think its worth it? Can I use the
> command line package loader to shoe-horn it in?
>
> Tim
>
>
> On 7 Aug 2017, at 13:47, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
>
> Unfortunately we store minimal versions only for the latest build and you
> should use older build with hash b1625bf32c6b2b6c6f8babb789e377
> af5132d740.
>
> You can download this image here (I have found a random copy of it):
> https://drive.google.com/open?id=0BzSsmZhqtUTeclFEbDhtd0JvdEk
>
> Copy it to some public location you can reach.
>
> -- Pavel
>
>
> 2017-08-07 14:25 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>
>> Thanks Pavel -  as I’m downloading:
>>
>> curl -L -o min.zip https://ci.inria.fr/pharo/job/
>> 70-Bootstrap-32bit-Conversion/lastSuccessfulBuild/artifact/l
>> atest-minimal-64.zip
>>
>> I noted that the last successful build of that asset was:
>>
>>    - Last stable build (#29), 2 days 23 hr ago
>>    
>> <https://ci.inria.fr/pharo/job/70-Bootstrap-32bit-Conversion/lastStableBuild/>
>>
>> Should I peg myself to a specific version that is more or less compatible
>> with Pharo 6.1? I can see builds 28 (Aug 4 11am) or 27 (July 31?) - or
>> should I go earlier?
>>
>> Can I rely on those builds sticking around - or should I cache one
>> somewhere?
>>
>> Tim
>>
>> On 7 Aug 2017, at 12:03, Pavel Krivanek <pavel.kriva...@gmail.com> wrote:
>>
>>
>>
>> 2017-08-07 12:56 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>
>>> I’ve just switched branches and diffed - and yep, those methods were the
>>> difference. Sorry about the extra noise on that - I should have read your
>>> instructions a bit better - still I’ve learned a lot doing this, and am
>>> really chuffed that I’ve managed to get something working.
>>>
>>> I’m looking at how to get my image size down a bit more - and have
>>> another thread on how to properly remove packages.
>>>
>>> How stable do you think the minimal image will be? Should I try and
>>> snapshot it as a baseline - or do you think I can keep pulling safely from
>>> Jenkins for a while?
>>>
>>
>> Pharo 7 is not stable in principle. You should not depend on the latest
>> version but of course you can take a particular build that is supposed to
>> be quite solid. Now you should rather take builds before Hermes integration
>> and related refactorings.
>>
>> -- Pavel
>>
>>
>>
>>>
>>> Tim
>>>
>>> On 4 Aug 2017, at 21:19, Pavel Krivanek <pavel.kriva...@gmail.com>
>>> wrote:
>>>
>>> yes, because master branch contains code of Pharo 6. For Pharo 7 we
>>> have flattened the traits in the kernel, but this is probably the only
>>> difference that affects Fuel packages
>>>
>>> -- Pavel
>>>
>>> 2017-08-04 20:32 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>
>>>> Ah - I checked out master. So should I have checked out dev? Would this
>>>> explain it?
>>>>
>>>> I've appreciated the help a lot by the way.
>>>>
>>>> Tim
>>>>
>>>> Sent from my iPhone
>>>>
>>>> On 4 Aug 2017, at 17:28, Pavel Krivanek <pavel.kriva...@gmail.com>
>>>> wrote:
>>>>
>>>> It it were packages from the development branch then you do not need to
>>>> flatten them.
>>>>
>>>> -- Pavel
>>>>
>>>> 2017-08-04 15:52 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>>
>>>>> Hi Pavel - When you say “packages from the Pharo repo” - I think I’m
>>>>> doing that - yesterday I cloned the Pharo repo and then I copied the Fuel
>>>>> packages you guys suggested over into my branch (not elegant, but simple).
>>>>>
>>>>> So I should have the flattened versions then?
>>>>>
>>>>> (I have now managed to get the P7 image working - so thanks for all
>>>>> your help, but I’m curious about this part)
>>>>>
>>>>> Tim
>>>>>
>>>>> On 4 Aug 2017, at 12:49, Pavel Krivanek <pavel.kriva...@gmail.com>
>>>>> wrote:
>>>>>
>>>>> Hmm, Pharo 7 has flattened traits in the kernel, but it still supports
>>>>> them. So probably because you are using vanilla Fuel packages, they extend
>>>>> traits that are not used for real. You should use packages from the Pharo
>>>>> repository.
>>>>>
>>>>> -- Pavel
>>>>>
>>>>> 2017-08-04 13:42 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>>>
>>>>>> Sadly - false call, that was my logging message - so I’m stumped why
>>>>>> these traits aren’t being compiled when I load in Fuel?
>>>>>>
>>>>>> However I have figured out why I get the BigEndian error - this is
>>>>>> because the platform is now 7 and so the FlPharo06Platform is not being
>>>>>> identified and the more generic FlPharoPlatform is then the default and 
>>>>>> it
>>>>>> doesn’t implement #isBigEndian.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>>
>>>>>>
>>>>>> On 4 Aug 2017, at 12:20, Tim Mackinnon <tim@testit.works> wrote:
>>>>>>
>>>>>> I’ve spotted something interesting in my logs - when I added one of
>>>>>> the missing methods to ClassDescription - I see in the log the message:
>>>>>>
>>>>>> Loaded -> Fuel-cypress.1 --- filetree:///builds/macta/Pharo
>>>>>> Lambda/bootstrap --- cache
>>>>>> ...finished baseline
>>>>>> Compiling missing traits...
>>>>>> Evaluating post load initialization...
>>>>>> Finished Script.
>>>>>>
>>>>>> However when I remove all the compiles I don’t see this message:
>>>>>>
>>>>>> Loaded -> Fuel-cypress.1 --- filetree:///builds/macta/Pharo
>>>>>> Lambda/bootstrap --- cache
>>>>>> ...finished baseline
>>>>>> Evaluating post load initialization...
>>>>>> Finished Script.
>>>>>>
>>>>>>
>>>>>> So I wonder if this is similar to the problem I had in the previous
>>>>>> 6.0 image - where some things didn’t seem to compile properly (in that
>>>>>> case, it was loading a missing class that didn’t seem to cause
>>>>>> recompilation).
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>> On 4 Aug 2017, at 11:10, Tim Mackinnon <tim@testit.works> wrote:
>>>>>>
>>>>>> Actually there is something weird going on - as now I’m getting a
>>>>>> complaint about "FLPharoPlatform had the subclass responsibility to
>>>>>> implement #isBigEndian”, and that’s in the FuelPlatform-Pharo-06 which 
>>>>>> you
>>>>>> said to include (and it looks like I am).
>>>>>>
>>>>>> I need to double check this - as I must be making some trivial
>>>>>> mistake.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>> On 4 Aug 2017, at 11:01, Tim Mackinnon <tim@testit.works> wrote:
>>>>>>
>>>>>> Hi Mariano - I’ve looked at this again, and it was my fault - I was
>>>>>> compiling in :
>>>>>>
>>>>>> fuelAccept: aGeneralMapper
>>>>>> ^self explicitRequirement.
>>>>>>
>>>>>> Because when I looked at the Traits for fuel - this is what it had
>>>>>> for TClass? - as I’m not so clear on traits, what does this mean - as I 
>>>>>> had
>>>>>> just assumed that I should flatten the Fuel methods for TCLass, 
>>>>>> TBehaviour
>>>>>> and TClassDescription - but I think I’ve misunderstood what I should do
>>>>>> (and I guess from Pavel’s comment - I should really look at why that
>>>>>> initial method was missing as it sounds like it should have worked  - so
>>>>>> maybe its an order loading thing?).
>>>>>>
>>>>>> Thanks, for helping by the way - this is proving very instructional.
>>>>>>
>>>>>> Tim
>>>>>>
>>>>>> On 3 Aug 2017, at 18:26, Mariano Martinez Peck <marianop...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> On Thu, Aug 3, 2017 at 2:14 PM, Tim Mackinnon <tim@testit.works>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi Mariano - I compiled in the trait methods manually and it got
>>>>>>> further - but now I’m seeing another error - Error: Explicitly required
>>>>>>> method",
>>>>>>>     "\u001b[0mLambda class(Object)>>error:",
>>>>>>>     "explicitRequirement”,
>>>>>>>
>>>>>>>
>>>>>> mmmm the stack is weird... it looks like if Class >> fuelAccept:
>>>>>> would have the wrong implementation, that is, having the one from TClass:
>>>>>>
>>>>>> fuelAccept: aGeneralMapper
>>>>>> ^self explicitRequirement.
>>>>>>
>>>>>> Rather than the correct one:
>>>>>>
>>>>>> fuelAccept: aGeneralMapper
>>>>>>
>>>>>> ^aGeneralMapper visitClass: self
>>>>>>
>>>>>>
>>>>>> *Maybe the solution is to compile all those methods from traits BUT
>>>>>> NOT those that are "^self explicitRequirement." because those will 
>>>>>> override
>>>>>> the good methods.*
>>>>>>
>>>>>> If that doesn't work, then maybe can you print to console the each
>>>>>> impl (source) of each implementor of #fuelAccept: ?
>>>>>>
>>>>>> Thoughts?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Any ideas?
>>>>>>>
>>>>>>> Tim
>>>>>>>
>>>>>>> "--- RUNNING ERROR HANDLER ---",
>>>>>>>     "Error: Explicitly required method",
>>>>>>>     "",
>>>>>>>     "\u001b[0m\u001b[31mError: Explicitly required method",
>>>>>>>     "\u001b[0mLambda class(Object)>>error:",
>>>>>>>     "explicitRequirement",
>>>>>>>     "  self error: 'No decompiler available' in Lambda 
>>>>>>> class(Object)>>explicitRequirement in Block: explicitRequirement...",
>>>>>>>     "False>>ifFalse:",
>>>>>>>     "Lambda class(Object)>>explicitRequirement",
>>>>>>>     "Lambda class(Class)>>fuelAccept:",
>>>>>>>     "FLLightGeneralMapper>>mapAndTrace:",
>>>>>>>     "FLLightGlobalMapper>>mapAndTrace:",
>>>>>>>     "FLPluggableSubstitutionMapper>>mapAndTrace:",
>>>>>>>     "FLAnalysis>>mapAndTrace:",
>>>>>>>     "FLAnalysis>>run",
>>>>>>>     "setDefaultAnalysis",
>>>>>>>     "  self error: 'No decompiler available' in 
>>>>>>> FLAnalyzer>>setDefaultAnalysis in Block: setDefaultAnalysis...",
>>>>>>>     "FLAnalyzer>>analysisFor:",
>>>>>>>     "FLSerialization>>analysisStep",
>>>>>>>     "FLSerialization>>run",
>>>>>>>     "setDefaultSerialization",
>>>>>>>     "  self error: 'No decompiler available' in 
>>>>>>> FLSerializer>>setDefaultSerialization in Block: 
>>>>>>> setDefaultSerialization...",
>>>>>>>     "serialize: t1 on: t2",
>>>>>>>     "  self error: 'No decompiler available' in 
>>>>>>> FLSerializer>>serialize:on: in Block: serialize: t1 on: t2...",
>>>>>>>     "on: t1 globalEnvironment: t2 do: t3",
>>>>>>>     "  self error: 'No decompiler available' in FLEncoder 
>>>>>>> class>>on:globalEnvironment:do: in Block: on: t1 globalEnvironment: t2 
>>>>>>> do: t3...",
>>>>>>>     "BlockClosure>>ensure:",
>>>>>>>     "FLEncoder class>>on:globalEnvironment:do:",
>>>>>>>     "FLSerializer>>serialize:on:",
>>>>>>>     "NonInteractiveUIManager>>writeFuelContext:",
>>>>>>>     "Lambda class>>processDebug:",
>>>>>>>     "Lambda class>>processJSON:",
>>>>>>>     "Lambda class>>process:",
>>>>>>>     "activate",
>>>>>>>
>>>>>>>
>>>>>>> On 3 Aug 2017, at 17:26, Mariano Martinez Peck <
>>>>>>> marianop...@gmail.com> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Aug 3, 2017 at 1:17 PM, Tim Mackinnon <tim@testit.works> w
>>>>>>> rote:
>>>>>>>
>>>>>>>> Hi guys - I think I’m getting close - I’m able to load remote
>>>>>>>> packages, and I’ve added fuel to my repo and its loading - however I am
>>>>>>>> getting an error when I run and test writing out a context - 
>>>>>>>> *MessageNotUnderstood:
>>>>>>>> Context class>>fuelIgnoredInstanceVariableNames*
>>>>>>>>
>>>>>>>> I can see that this is a trait - is trait support missing in the
>>>>>>>> minimal image?
>>>>>>>>
>>>>>>>>
>>>>>>> Uff...that's a good question hahahhah
>>>>>>> I don't know if the minimal image supports traits, but what I am
>>>>>>> almost sure, is the Behavior DOES need the methods defined in 
>>>>>>> TBehavior. So
>>>>>>> maybe the minimal image flattens the traits. In this case you could do 
>>>>>>> the
>>>>>>> same for Fuel (flattenDownAllTraits)
>>>>>>>
>>>>>>>
>>>>>>>> (I also seemed to get this far just loading the Fuel package - but
>>>>>>>> just to be sure I added the other platform ones like you suggested and
>>>>>>>> still get the same error). Given how simple that method is, I could 
>>>>>>>> just
>>>>>>>> compile it in - but maybe there are many more?
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> TBehavior, TClass and TClassDescription are the only one that comes
>>>>>>> to my mind right now...  there are only a few methods from Fuel. So 
>>>>>>> could
>>>>>>> compile those directly at least on a first step...at least you keep you
>>>>>>> going.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Tim
>>>>>>>>
>>>>>>>>
>>>>>>>> "errorMessage": "Command failed: ./pharo Pharo.image
>>>>>>>> --no-default-preferences process Lambda '{\"debug\":true,\"data\":5}'\
>>>>>>>> n
>>>>>>>>   "errorType": "Error",
>>>>>>>>   "stackTrace": [
>>>>>>>>     "Writing fuel context to S3...",
>>>>>>>>     "Using S3 bucket morethan-technology-projects",
>>>>>>>>     "\u001b[31m",
>>>>>>>>     "--- RUNNING ERROR HANDLER ---",
>>>>>>>>     "*MessageNotUnderstood: Context
>>>>>>>> class>>fuelIgnoredInstanceVariableNames*",
>>>>>>>>     "",
>>>>>>>>     "\u001b[0m\u001b[31mMessageNotUnderstood: Context
>>>>>>>> class>>fuelIgnoredInstanceVariableNames",
>>>>>>>>     "\u001b[0mContext class(Object)>>doesNotUnderstand:
>>>>>>>> #fuelIgnoredInstanceVariableNames",
>>>>>>>>     "FLVariablesMapping>>instanceVariableNamesToSerialize",
>>>>>>>>     "FLVariablesMapping>>initializeAnalyzing",
>>>>>>>>     "FLVariablesMapping class>>newAnalyzing:references:",
>>>>>>>>     "FLContextCluster(FLPointerObjectCluster)>>initializeAnaly
>>>>>>>> zing:",
>>>>>>>>     "FLContextCluster class(FLObjectCluster class)>>newAnalyzing:",
>>>>>>>>     "clusterKeyedByObjectClass: t1 class: t2",
>>>>>>>>     "  self error: 'No decompiler available' in
>>>>>>>> FLLightGeneralMapper(FLMapper)>>clusterKeyedByObjectClass:class:
>>>>>>>> in Block: clusterKeyedByObjectClass: t1 class: t2...",
>>>>>>>>     "clusterInstanceOf: t1 keyInBucket: t2 factory: t3",
>>>>>>>>     "  self error: 'No decompiler available' in
>>>>>>>> FLLightGeneralMapper(FLMapper)>>clusterInstanceOf:keyInBucket:factory:
>>>>>>>> in Block: clusterInstanceOf: t1 keyInBucket: t2 factory: t3...",
>>>>>>>>     "at: t1 ifAbsentPut: t2",
>>>>>>>>     "  self error: 'No decompiler available' in
>>>>>>>> IdentityDictionary(Dictionary)>>at:ifAbsentPut: in Block: at: t1
>>>>>>>> ifAbsentPut: t2...",
>>>>>>>>     "IdentityDictionary(Dictionary)>>at:ifAbsent:",
>>>>>>>>     "IdentityDictionary(Dictionary)>>at:ifAbsentPut:",
>>>>>>>>     "FLLightGeneralMapper(FLMapper)>>clusterInstanceOf:keyInBu
>>>>>>>> cket:factory:",
>>>>>>>>     "FLLightGeneralMapper(FLMapper)>>clusterKeyedByObjectClass
>>>>>>>> :class:",
>>>>>>>>     "FLLightGeneralMapper(FLMapper)>>mapAndTraceByObjectClass:to:",
>>>>>>>>     "FLLightGeneralMapper>>visitMethodContext:",
>>>>>>>>     "Context>>fuelAccept:",
>>>>>>>>     "FLLightGeneralMapper>>mapAndTrace:",
>>>>>>>>     "FLLightGlobalMapper>>mapAndTrace:",
>>>>>>>>     "FLPluggableSubstitutionMapper>>mapAndTrace:",
>>>>>>>>     "FLAnalysis>>mapAndTrace:",
>>>>>>>>     "FLAnalysis>>run",
>>>>>>>>     "setDefaultAnalysis",
>>>>>>>>     "  self error: 'No decompiler available' in
>>>>>>>> FLAnalyzer>>setDefaultAnalysis in Block: setDefaultAnalysis...",
>>>>>>>>     "FLAnalyzer>>analysisFor:",
>>>>>>>>     "FLSerialization>>analysisStep",
>>>>>>>>     "FLSerialization>>run",
>>>>>>>>     "setDefaultSerialization",
>>>>>>>>     "  self error: 'No decompiler available' in
>>>>>>>> FLSerializer>>setDefaultSerialization in Block:
>>>>>>>> setDefaultSerialization...",
>>>>>>>>     "serialize: t1 on: t2",
>>>>>>>>     "  self error: 'No decompiler available' in
>>>>>>>> FLSerializer>>serialize:on: in Block: serialize: t1 on: t2...",
>>>>>>>>     "on: t1 globalEnvironment: t2 do: t3",
>>>>>>>>     "  self error: 'No decompiler available' in FLEncoder
>>>>>>>> class>>on:globalEnvironment:do: in Block: on: t1
>>>>>>>> globalEnvironment: t2 do: t3...",
>>>>>>>>     "BlockClosure>>ensure:",
>>>>>>>>     "FLEncoder class>>on:globalEnvironment:do:",
>>>>>>>>     "\u001b[0m"
>>>>>>>>
>>>>>>>> On 3 Aug 2017, at 13:16, Mariano Martinez Peck <
>>>>>>>> marianop...@gmail.com> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Aug 3, 2017 at 8:58 AM, Tim Mackinnon <tim@testit.works> w
>>>>>>>> rote:
>>>>>>>>
>>>>>>>>> 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?
>>>>>>>>>
>>>>>>>>>
>>>>>>>> The easiest way to understand that is either checking
>>>>>>>> ConfigurationOfFuel directly or some of the related Metacello tool.
>>>>>>>> Anyway, for this case, I think you need the packages (in this
>>>>>>>> order): FuelPlatform and Fuel. Bug again, Metacello allows some 
>>>>>>>> postLoad
>>>>>>>> actions (which we use in Fuel)... so...it's not always easy to load a
>>>>>>>> project without Metacello.
>>>>>>>>
>>>>>>>> Sometimes you can print the result of #record:
>>>>>>>>
>>>>>>>> Metacello new
>>>>>>>> configuration: 'Fuel';
>>>>>>>> smalltalkhubUser: 'Pharo' project: 'Fuel';
>>>>>>>> version: #stable;
>>>>>>>> record: #('Core').
>>>>>>>>
>>>>>>>> ->
>>>>>>>>
>>>>>>>> "linear load :
>>>>>>>> linear load : 2.1.10 [ConfigurationOfFuel]
>>>>>>>> linear load : baseline [ConfigurationOfFuelPlatform]
>>>>>>>> load : FuelPlatform-Core
>>>>>>>> load : FuelPlatform-Pharo-Core
>>>>>>>> load : FuelPlatform-Pharo-06"
>>>>>>>>
>>>>>>>>
>>>>>>>> ------
>>>>>>>>
>>>>>>>> Anyway.... I guess I would try to load these packages (in this
>>>>>>>> order):
>>>>>>>>
>>>>>>>> FuelPlatform-Core
>>>>>>>> FuelPlatform-Pharo-Core
>>>>>>>> FuelPlatform-Pharo-06
>>>>>>>> Fuel
>>>>>>>>
>>>>>>>> And when you are down loading, then execute:
>>>>>>>>
>>>>>>>> (Smalltalk at: #FLPlatform) current addHacks
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> 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 <pavel.kriva...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>>>>>>>
>>>>>>>>>> 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. ? Just
>>>>>>>>>> so I know for the future.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> yes
>>>>>>>>>
>>>>>>>>> -- Pavel
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Tim
>>>>>>>>>>
>>>>>>>>>> On 3 Aug 2017, at 09:16, Pavel Krivanek <pavel.kriva...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek@gmail
>>>>>>>>>> .com>:
>>>>>>>>>>
>>>>>>>>>>> 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:
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> (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 <tim@testit.works>:
>>>>>>>>>>>
>>>>>>>>>>>> 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 <
>>>>>>>>>>>> guillermopol...@gmail.com> 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 <
>>>>>>>>>>>> pavel.kriva...@gmail.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> 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 <
>>>>>>>>>>>>>> pavel.kriva...@gmail.com> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim@testit.works>:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> 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 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>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Mariano
>>>>>>>> http://marianopeck.wordpress.com
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Mariano
>>>>>>> http://marianopeck.wordpress.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Mariano
>>>>>> http://marianopeck.wordpress.com
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>
>


-- 



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