Hi Dale,

Your second option worked for me.

This is the validation error I got for my previous configuration using the
MetacelloToolBox:

"Error: Missing required field (className:) for project reference 'Stamp'
in version '0.1-baseline' { incompleteProjectSpec } [
#validateBaselineVersionSpec: ]"

By the other hand, using a filetree url to my local working copy algo
resolved the Stamp project dependency.

Thank you very much!

Rafa
Rafael,

It looks like in your case that you've got a configuration problem ... and
here's the proper fix (but depending upon which vesion of Metacello you're
using may or may not work):

baseline01: spec
<version: '0.1-baseline'>
spec
for: #common
do: [
spec blessing: #baseline.
spec repository: 'filetree://full-filesystempath-to-your-pharo-subdirectory
'.
spec
configuration: 'Stamp'
with: [
spec
repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main';
loads: 'Stamp';
version: #stable ].
spec
package: 'MyStompMessaging' with: [ spec requires: #('Stamp') ] ]

if you get an error then the following should work:

baseline01: spec
<version: '0.1-baseline'>
spec
for: #common
do: [
spec blessing: #baseline.
spec repository: 'filetree://full-filesystempath-to-your-pharo-subdirectory
'.
spec
project: 'Stamp-Core'
with: [
spec
                                                className:
'ConfigurationOfStamp';
repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main';
loads: 'Stamp';
version: #stable ].
spec
package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ]

I've also submitted a metacello bug[1] to cover this issue, although I may
have already fixed the bug in a later version of Metacello, I'm going to
double check wihen I get a chance...

Finally, I would be interested to know what errors or warnings you might
get from validating your configuration (inspect the result of
MetacelloToolBox class>>validateConfiguration: with your configuration
class as an argument).

HTH,

Dale

[1] https://github.com/dalehenrich/metacello-work/issues/313


On Thu, Nov 13, 2014 at 12:28 PM, Rafael Luque <rafael.luque.le...@gmail.com
> wrote:

> Thank you for the responses.
>
> I'll try both of them, but in the meantime I found another problem because
> of my lack of experience.
>
> I'm trying to define in the baseline a dependency with another project, in
> particular the Stamp project by Sven Van Caekenberghe [1] in Smalltalkhub
> in the following way:
>
> baseline01: spec
> <version: '0.1-baseline'>
> spec
> for: #common
> do: [
> spec blessing: #baseline.
> spec repository: 'filetree://full-filesystempath-to-your-pharo-
> subdirectory'.
> spec
> project: 'Stamp-Core'
> with: [
> spec
> repository: 'http://smalltalkhub.com/mc/SvenVanCaekenberghe/Stamp/main';
> loads: 'Stamp';
> version: #stable ].
> spec
> package: 'MyStompMessaging' with: [ spec requires: #('Stamp-Core') ] ]
>
>
> When I evaluate the following in a Workspace:
>
> (ConfigurationOfMyPackage project version: '0.1') load.
>
> I get the followin error:
>
> MessageNotUnderstood: receiver of "ensureLoadUsing:" is nil
>
> In the debugger I see that MetacelloMCProjectSpec>>projectPackage is nil.
>
> In an old thread I found that Dale Henrichs suggests to try this:
>
>   MetacelloProjectRegistration
>     resetRegistry;
>     primeRegistryFromImage
>
> But in my case It does not solve the problem.
>
>
> Thank you in advance.
>
>
> [1] http://smalltalkhub.com/#!/~SvenVanCaekenberghe/Stamp/packages/Stamp
> [2]
> http://forum.world.st/Sample-metacello-configuration-referencing-a-github-project-td4671054.html
>
> 2014-11-13 19:07 GMT+01:00 Thierry Goubier <thierry.goub...@gmail.com>:
>
>> Le 13/11/2014 18:21, Rafael Luque a écrit :
>>
>>> Hi all,
>>>
>>> I'm starting with Pharo and playing with the ways to integrate it with
>>> Git.
>>>
>>> I've read the "Git and Pharo" chapter on "Enterprise Pharo" book by
>>> Thierry Goubier and loaded the GitFileTree package.
>>>
>>> I'm working on a project with several microservices, one of them will be
>>> based on Pharo and the other ones in other technologies. The project
>>> repository is based in our own Git server and each microservice maps
>>> with one subdirectory in the repo.
>>>
>>> My question is if it is possible to define a Metacello configuration to
>>> load my packages from an specific subdirectory of a Git repository. I
>>> have tried with the following baseline method, but it fails because does
>>> not understand repoPath:
>>>
>>
>> Yes, it is possible to fix a specific subdirectory, with a gitfiletree:
>> url, via a dir=aRelativePath.
>>
>> baseline01: spec
>>         <version: '0.1-baseline'>
>>         spec
>>                 for: #common
>>                 do: [
>>  spec blessing: #baseline.
>>  spec repository: 'gitfiletree://my-git-server/my-project&dir=my-pharo-
>> subdirectory'.
>>  spec
>>    package: 'MyPackage'.
>>                           . . . ]
>>
>> You can have a look at the ConfigurationOfAltBrowser in the configuration
>> browser to see how it triggers downloading the GitFileTree support.
>>
>> Thierry
>>
>>
>>  baseline01: spec
>>> <version: '0.1-baseline'>
>>> spec
>>> for: #common
>>> do: [
>>> spec blessing: #baseline.
>>> spec repository: 'git@my-git-server:my-project'.
>>>                          spec repoPath: 'my-pharo-subdirectory'.
>>> spec
>>> package: 'MyPackage'.
>>>                          . . . ]
>>>
>>> Thank you in advance.
>>>
>>>
>>
>>
>

Reply via email to