Posted by
Thierry Goubier on
Apr 02, 2018; 10:01pm
URL: https://forum.world.st/unsolicited-package-cache-use-tp5060335p5072539.html
Hi Hilaire,
a BaselineOf is the same as a baseline method in a ConfigurationOf: a
list of packages with their prerequisites and groups.
What the BaselineOf does not contain are methods describing versions
with package versions and author names; instead, what a BaselineOf says
is: fetch the latest(*) version(**) of each package I have listed in my
baseline from the repository you found me in(***).
Thierry
(*) if there is more than one. With git, only one, with smalltalkhub,
more than one.
(**) a repository is supposed to contain package versions, even if that
version is -cypress.1 (metadata-less filetree).
(***) A repository here is a http one (i.e. smalltalkhub), a directory
in a branch in git, a tag in git, a directory on disk, a ftp directory,
etc...
PS: the power of Baselines + Git comes from the fact that you get a
repository per branch / per tag.
PS2: it is possible to have multiple repositories, and rewrite as
"latest version ... in the repositories... ". I have a use case or two
for that feature.
Le 02/04/2018 à 15:46, Hilaire a écrit :
> Hi Dale,
>
> Sorry to reply very lately to your help email, I am getting slow on
> Pharo those those days.
>
> I am afraid to be a bit out of sync: what is a BaselineOf? I only have a
> ConfigurationOfDrGeo and baseline methods into.
>
> Hilaire
>
>
> Le 18/01/2018 à 16:10, Dale Henrichs a écrit :
>>
>> Hilaire,
>>
>> Have you included a method in your BaselineOf that looks like this:
>>
>> projectClass
>>
>> ^ MetacelloCypressBaselineProject
>>
>> if not, then what looks like a package-cache problem could be that you
>> haven't told Metacello that you are using a metadataless
>> filetree/tonel repository.
>>
>> Metacello has an internal rule to not load Monticello packages of the
>> same version, since they are already loaded. However, when using
>> metadataless repositories the filetree/tonel Monticello package
>> readers typically generate a package name using the author/version
>> `-cypress.1`, which make Metacello think that the versions are the
>> same and the package is not loaded ... by including the above method
>> in your baselineof, Metacello will know to ignore the Monticello
>> author/version of the package and always load it....
>>
>> Of course, because Monticello only installs changed definitions when
>> loading a package, "loading the same package over and over again"
>> costs a little bit in loading the _definitions_ into the image from
>> disk, but doesn't end up compiling any new methods or creating new
>> classes ...
>>
>> Dale
>>
>> On 1/18/18 6:49 AM, Hilaire wrote:
>>> It was a month ago; I don't remember the details but from what I can
>>> recover from my memory the scenario was:
>>>
>>> - From my dev. environment I saved code through Tonel, in the DrGeo
>>> used CVS.
>>>
>>> - When building, I specifically ask the code saved thought Tonel to
>>> be installed but the package-cache code version was used instead. It
>>> could be out of sync.
>>>
>>>
>>> Le 18/01/2018 à 15:22, Dale Henrichs a écrit :
>>>> Hilaire,
>>>>
>>>> Metacello just uses Monticello for loading and it is Monticello that
>>>> is using the package-cache ... if there were a way to turn of the
>>>> package-cache for Monticello I don't think that Metacello would know
>>>> the difference.
>>>>
>>>> But, I am curious why you care whether or not package is used?
>>>>
>>>> Is there a specific problem that you are having?
>>>>
>>>> Dale
>>>
>