Re: [Pharo-users] Updating singletons
Konrad, This looks like a case where you are using a metadata-less repository ... if so you, should add the following method to your baseline class: projectClass Smalltalk at: #'MetacelloCypressBaselineProject' ifPresent: [ :cl | ^ cl ]. ^ super projectClass This mod will cause packages to be unconditionally loaded ... Monticello does a definition comparison on package load so only changed definitions are loaded into the image ... Hope this helps, Dale On 1/4/19 5:12 AM, Konrad Hinsen via Pharo-users wrote:
Subject: Re: [Pharo-users] Updating singletons From: Konrad Hinsen <konrad.hinsen@fastmail.net> Date: 1/4/19, 5:12 AM
To: pharo-users@lists.pharo.org
H Cyril,
Fetching, loading and post loads should leave a trace during the execution in the Transcript. Thanks, that helps to confirm that my postload is never executed when I update a package + baseline in an image that already had an earlier version loaded. Nothing at all is shown in the Transcript. Reloading the package and/or the baseline package doesn't leave any trace either. And if I add a dependency, then update the package again, the new dependency is not loaded either.
Hypothesis: baseline changes have no effect for already installed packages.
When I load my modified package + baseline into a fresh image, lots of actions are shown in the Transcript, including the execution of my postload action. But in that situation, I don't actually need it.
Cheers, Konrad.
Talking about metadataless, I just bumped into: https://pharo.manuscript.com/f/cases/22865/ using *MetacelloCypressBaselineProjec*t. I'm pushing a PR as an attempt to fix it but for sure if Dale can give it a review it will be great! https://github.com/pharo-project/pharo/pull/2173 Then we need to fix it upstream in Metacello. Regards, Gabriel On Fri, Jan 4, 2019 at 3:04 PM Dale Henrichs < dale.henrichs@gemtalksystems.com> wrote:
Konrad, This looks like a case where you are using a metadata-less repository ... if so you, should add the following method to your baseline class:
projectClass Smalltalk at: #'MetacelloCypressBaselineProject' ifPresent: [ :cl | ^ cl ]. ^ super projectClass
This mod will cause packages to be unconditionally loaded ... Monticello does a definition comparison on package load so only changed definitions are loaded into the image ...
Hope this helps,
Dale
On 1/4/19 5:12 AM, Konrad Hinsen via Pharo-users wrote:
Subject: Re: [Pharo-users] Updating singletons
From: Konrad Hinsen <konrad.hinsen@fastmail.net> <konrad.hinsen@fastmail.net>
Date: 1/4/19, 5:12 AM
To: pharo-users@lists.pharo.org
H Cyril,
Fetching, loading and post loads should leave a trace during the execution in the Transcript.
Thanks, that helps to confirm that my postload is never executed when I update a package + baseline in an image that already had an earlier version loaded. Nothing at all is shown in the Transcript. Reloading the package and/or the baseline package doesn't leave any trace either. And if I add a dependency, then update the package again, the new dependency is not loaded either.
Hypothesis: baseline changes have no effect for already installed packages.
When I load my modified package + baseline into a fresh image, lots of actions are shown in the Transcript, including the execution of my postload action. But in that situation, I don't actually need it.
Cheers, Konrad.
Dale,
This looks like a case where you are using a metadata-less repository ... if so you, should add the following method to your baseline class:
Sorry, that's way above my understanding of baselines and repository handling in general. I started from https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/B... and adapted the examples there to my own situation, my project being hosted on GitHub: https://github.com/khinsen/leibniz-pharo/
This mod will cause packages to be unconditionally loaded ... Monticello does a definition comparison on package load so only changed definitions are loaded into the image ...
I'd say that a new dependency should be treated like a changed one, but again I am still very much lost in the jungle of Monticello, Metacello, Gofer, Iceberg, etc. It's the most opaque aspect of Pharo I have encountered so far. Cheers, Konrad.
Konrad, Did you try what I suggested and did it solve your problem? Dale On 1/5/19 2:45 AM, Konrad Hinsen wrote:
Dale,
This looks like a case where you are using a metadata-less repository ... if so you, should add the following method to your baseline class: Sorry, that's way above my understanding of baselines and repository handling in general. I started from
https://github.com/pharo-open-documentation/pharo-wiki/blob/master/General/B...
and adapted the examples there to my own situation, my project being hosted on GitHub:
https://github.com/khinsen/leibniz-pharo/
This mod will cause packages to be unconditionally loaded ... Monticello does a definition comparison on package load so only changed definitions are loaded into the image ... I'd say that a new dependency should be treated like a changed one, but again I am still very much lost in the jungle of Monticello, Metacello, Gofer, Iceberg, etc. It's the most opaque aspect of Pharo I have encountered so far.
Cheers, Konrad.
participants (3)
-
Dale Henrichs -
Gabriel Cotelli -
Konrad Hinsen