Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
August 2017
- 787 messages
Re: [Pharo-dev] Creating the smallest server runtime footprint
by Mariano Martinez Peck
On Thu, Aug 3, 2017 at 1:17 PM, Tim Mackinnon <tim(a)testit.works> wrote:
> 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)>>initializeAnalyzing:",
> "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:
> keyInBucket: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 <marianopeck(a)gmail.com>
> wrote:
>
>
>
> On Thu, Aug 3, 2017 at 8:58 AM, Tim Mackinnon <tim(a)testit.works> wrote:
>
>> 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.krivanek(a)gmail.com> wrote:
>>
>>
>>
>> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com>
>>> wrote:
>>>
>>>
>>>
>>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek(a)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(a)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 <guillermopolito(a)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.krivanek@
>>>>> gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim(a)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
Aug. 3, 2017
Re: [Pharo-dev] Creating the smallest server runtime footprint
by Tim Mackinnon
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?
(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?
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)>>initializeAnalyzing:",
"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:keyInBucket: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 <marianopeck(a)gmail.com> wrote:
>
>
>
> On Thu, Aug 3, 2017 at 8:58 AM, Tim Mackinnon <tim(a)testit.works <mailto:tim@testit.works>> wrote:
> 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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>
>>
>>
>> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim(a)testit.works <mailto: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 <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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>>
>>>
>>>
>>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek(a)gmail.com <mailto: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 <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(a)testit.works <mailto: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 <guillermopolito(a)gmail.com <mailto:guillermopolito@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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>>>
>>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim(a)testit.works <mailto: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 <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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>>>>
>>>>>
>>>>>
>>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim(a)testit.works <mailto: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/lastSuccess… <https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccess…> 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-Configu… <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-Configu…> 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/lastSu… <https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSu…> 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>
>>>
>>>
>>
>>
>
>
>
>
> --
> Mariano
> http://marianopeck.wordpress.com <http://marianopeck.wordpress.com/>
Aug. 3, 2017
Re: [Pharo-dev] [Calypso] Inherited methods checkbox look backwards to me
by Mariano Martinez Peck
On Thu, Aug 3, 2017 at 10:27 AM, Denis Kudriashov <dionisiydk(a)gmail.com>
wrote:
> Hi Mariano.
>
> Other people told me the same: they do not like current order. Same
> unnatural order is also in variable view.
> I implemented it this way because for me it is more convenient and
> intuitive. Maybe I am alone in that feeling. So I will provide setting.
>
> I try to explain my logic behind it:
>
> First, inherited methods subgroups are not about hierarchy of classes
> (same for variable view).
> It is actually hierarchy of "level of interesting methods". First
> superclass in tree has the most interesting methods. And deeper
> superclasses has less interest level. Idea that usually user wants to see
> methods from first superclass and not deeper. That's why I put most
> interesting subgroups at the top of list.
> Also remember that we have traits. Trait methods are more interesting then
> superclass methods. That's why traits subgroups are shown at the top when
> you browse class with traits.
> Also you can imaging that hierarchy which includes traits will be not
> natural in any order. But here it is required anyway.
>
>
>
OK, I understand your logic now. Again, no big deal, but I think that at
least personally (even with your explanation in mind), I would still prefer
the other way around. But as I said, this is a really minor detail.
> 2017-08-03 14:02 GMT+02:00 Mariano Martinez Peck <marianopeck(a)gmail.com>:
>
>> Hi Denis,
>>
>> I love the inherited methods feature. Really. Seconds ago, I just clicked
>> to show inherited methods, I checkboxed the superclass, then I saw both
>> methods (the one I override and the one of the superclass), clicked on
>> both, and magic...I was comparing them with a nice diff. AESOME!!!!!
>>
>> The only seem that didn't look obvious to me is the "sort" of the classes
>> of the inherited protocols. It goes contrary to everwhere else. ProtoObject
>> is on the bottom and immediate superclass on the top. Can't we make it as
>> always? ProtoObject on the bottom and immediate on top?
>>
>> I know, this is a very little detail...but I also wanted to express my
>> happiness with this feature hahaha.
>>
>> Cheers,
>>
>> --
>> Mariano
>> http://marianopeck.wordpress.com
>>
>
>
--
Mariano
http://marianopeck.wordpress.com
Aug. 3, 2017
PharoLauncher - uninformative Pharo7 template names
by Ben Coman
Attached is what I see for Pharo 7 images in PharoLauncher.
I presume the top one is the latest, but Its a bit hard to tell :P
Anyone else seeing this?
Loading ConfigurationOfPharoLauncher-ChristopheDemarey.53 (latest)
and doing "ConfigurationOfPharoLauncher loadDevelopment"
which loads PharoLauncher-Core-ChristopheDemarey.116 (latest)
This is with Pharo builds 60486 and 60510, and same VM for both...
Win32 built on May 31 2017 03:09:04 GMT Compiler: 5.4.0 VMMaker
versionString VM: 201705310241
CoInterpreter VMMaker.oscog-eem.2231 uuid:
de62947a-7f40-4977-a232-e06a3a80c939 May 31 2017
(but btw, does that look strange? The 60510 image was lauched from the
original 60486-PharoLauncher which said it was downloading the matching VM,
so I kind of expect each image to have a different VM ?? )
cheers -ben
Aug. 3, 2017
Re: [Pharo-dev] [Calypso] Inherited methods checkbox look backwards to me
by Denis Kudriashov
Hi Mariano.
Other people told me the same: they do not like current order. Same
unnatural order is also in variable view.
I implemented it this way because for me it is more convenient and
intuitive. Maybe I am alone in that feeling. So I will provide setting.
I try to explain my logic behind it:
First, inherited methods subgroups are not about hierarchy of classes (same
for variable view).
It is actually hierarchy of "level of interesting methods". First
superclass in tree has the most interesting methods. And deeper
superclasses has less interest level. Idea that usually user wants to see
methods from first superclass and not deeper. That's why I put most
interesting subgroups at the top of list.
Also remember that we have traits. Trait methods are more interesting then
superclass methods. That's why traits subgroups are shown at the top when
you browse class with traits.
Also you can imaging that hierarchy which includes traits will be not
natural in any order. But here it is required anyway.
2017-08-03 14:02 GMT+02:00 Mariano Martinez Peck <marianopeck(a)gmail.com>:
> Hi Denis,
>
> I love the inherited methods feature. Really. Seconds ago, I just clicked
> to show inherited methods, I checkboxed the superclass, then I saw both
> methods (the one I override and the one of the superclass), clicked on
> both, and magic...I was comparing them with a nice diff. AESOME!!!!!
>
> The only seem that didn't look obvious to me is the "sort" of the classes
> of the inherited protocols. It goes contrary to everwhere else. ProtoObject
> is on the bottom and immediate superclass on the top. Can't we make it as
> always? ProtoObject on the bottom and immediate on top?
>
> I know, this is a very little detail...but I also wanted to express my
> happiness with this feature hahaha.
>
> Cheers,
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
Aug. 3, 2017
Re: [Pharo-dev] Creating the smallest server runtime footprint
by Mariano Martinez Peck
On Thu, Aug 3, 2017 at 8:58 AM, Tim Mackinnon <tim(a)testit.works> wrote:
> 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.krivanek(a)gmail.com> wrote:
>
>
>
> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com> wrote:
>>
>>
>>
>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek(a)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(a)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 <guillermopolito(a)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.krivanek(a)gmail.com> wrote:
>>>>
>>>>>
>>>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim(a)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
Aug. 3, 2017
Re: [Pharo-dev] Creating the smallest server runtime footprint
by Pavel Krivanek
2017-08-03 13:58 GMT+02:00 Tim Mackinnon <tim(a)testit.works>:
> 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?
>
you probably need:
spec package: 'Fuel'.
spec package: 'FuelPlatform-Core'.
spec package: 'FuelPlatform-Pharo-Core'.
spec package: 'FuelPlatform-Pharo-06'.
It has some dependencies on other packages that you do not load so it
should cause some warnings during loading
> 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?)
>
If you will copy them to your repository then add them to your baseline.
For loading of packages without baseline you may use Gofer.
- Pavel
>
>
> Tim
>
> On 3 Aug 2017, at 12:07, Pavel Krivanek <pavel.krivanek(a)gmail.com> wrote:
>
>
>
> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com> wrote:
>>
>>
>>
>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek(a)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(a)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 <guillermopolito(a)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.krivanek(a)gmail.com> wrote:
>>>>
>>>>>
>>>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim(a)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>
>>>>
>>>>
>>>>
>>>
>>
>>
>
>
Aug. 3, 2017
[Calypso] Inherited methods checkbox look backwards to me
by Mariano Martinez Peck
Hi Denis,
I love the inherited methods feature. Really. Seconds ago, I just clicked
to show inherited methods, I checkboxed the superclass, then I saw both
methods (the one I override and the one of the superclass), clicked on
both, and magic...I was comparing them with a nice diff. AESOME!!!!!
The only seem that didn't look obvious to me is the "sort" of the classes
of the inherited protocols. It goes contrary to everwhere else. ProtoObject
is on the bottom and immediate superclass on the top. Can't we make it as
always? ProtoObject on the bottom and immediate on top?
I know, this is a very little detail...but I also wanted to express my
happiness with this feature hahaha.
Cheers,
--
Mariano
http://marianopeck.wordpress.com
Aug. 3, 2017
Re: [Pharo-dev] Creating the smallest server runtime footprint
by Tim Mackinnon
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 <pavel.krivanek(a)gmail.com> wrote:
>
>
>
> 2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim(a)testit.works <mailto: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 <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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>
>>
>>
>> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek(a)gmail.com <mailto: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 <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(a)testit.works <mailto: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 <guillermopolito(a)gmail.com <mailto:guillermopolito@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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>>
>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim(a)testit.works <mailto: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 <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.krivanek(a)gmail.com <mailto:pavel.krivanek@gmail.com>> wrote:
>>>>
>>>>
>>>>
>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim(a)testit.works <mailto: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/lastSuccess… <https://ci.inria.fr/pharo/job/Pharo-6.0-Update-Step-3.2-Minimal/lastSuccess…> 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-Configu… <https://ci.inria.fr/pharo/view/6.0-SysConf/job/Pharo-6.0-Step-04-01-Configu…> 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/lastSu… <https://ci.inria.fr/pharo/view/7.0/job/70-Bootstrap-32bit-Conversion/lastSu…> 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>
>>
>>
>
>
Aug. 3, 2017
Re: [Pharo-dev] Creating the smallest server runtime footprint
by Pavel Krivanek
2017-08-03 13:02 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com> wrote:
>
>
>
> 2017-08-03 10:14 GMT+02:00 Pavel Krivanek <pavel.krivanek(a)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(a)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 <guillermopolito(a)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.krivanek(a)gmail.com
>>> > wrote:
>>>
>>>>
>>>> 2017-08-01 23:13 GMT+02:00 Tim Mackinnon <tim(a)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.krivanek(a)gmail.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>>
>>>>> 2017-07-31 22:51 GMT+02:00 Tim Mackinnon <tim(a)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>
>>>
>>>
>>>
>>
>
>
Aug. 3, 2017