Hello,

To do my baselines I do the following:

1. I create a subclass of BaselineOf.

2. I create an instance method #baseline:

baseline: spec
    <baseline>
    spec
        for: #common
        do: [
            self
                defineDependencies: spec;
                definePackages: spec ]

3. I create the #defineDependencies: instance method (for example in SFDiff):

defineDependencies: spec
    ^ spec
        project: 'ChangeModel' with: [
            spec
                className: 'ConfigurationOfFamixDiff';
                version: #development;
repository: 'http://smalltalkhub.com/mc/Moose/FamixDiff/main';
                loads: 'ChangeModel' ];
        project: 'FamixDiff' with: [
            spec
                className: 'ConfigurationOfFamixDiff';
                version: #development;
repository: 'http://smalltalkhub.com/mc/Moose/FamixDiff/main';
                loads: 'Core' ];
        yourself

4. I create the #definePackages: instance method (still for SFDiff):

definePackages: spec
    ^ spec
package: 'SimilarityFlooding' with: [ spec requires: #('ChangeModel') ]; package: 'SimilarityFlooding-Tests' with: [ spec requires: #('SimilarityFlooding') ]; package: 'SimilarityFlooding-Diff' with: [ spec requires: #('SimilarityFlooding') ]; package: 'SimilarityFlooding-Diff-Tests' with: [ spec requires: #('SimilarityFlooding-Diff') ]; package: 'SimilarityFlooding-Evaluator' with: [ spec requires: #('SimilarityFlooding' 'FamixDiff') ]; package: 'SimilarityFlooding-DiffOrion' with: [ spec requires: #('SimilarityFlooding-Diff') ];
        yourself

Separating the dependencies and package definitions allow me to modify it easily.

I hope it helps.

Julien

PS: to make a baseline use on another baseline as dependency I put this kind of source code in #defineDependencies:

spec baseline: 'DependenceName' with: [
    spec repository: 'github://user/repositoryname/eventualdirectory' ].


On 01/07/17 14:35, Stephane Ducasse wrote:
Hi

I 'm trying to define a baseline for our project and I defined it as

baseline: spec
    <baseline>
    spec for: #common do: [ spec
         baseline: 'SmaCC' with: [ spec
         repository: 'github://ThierryGoubier/SmaCC';
         loads: 'SmaCC-GLR-Runtime' ];

         package: 'SmaCC-Solidity'
"we could say that SmaccSolidity depends on Smacc-Runtime but I do not
know how to say it"
]

Now I thought that I could try to load it using the following

Metacello new
     baseline: 'SmaccSolidity';
     repository: 'github://RMODINRIA-Blockchain/SmaCC-Solidity';
     load.


But I get an error telling me that the baseline constructor does not
understand load ;(

I read the blog of peter
https://www.peteruhnak.com/blog/2016/07/25/how-to-use-git-and-github-with-pharo/

and I'm doing exactly the same so I wonder.

Stef



Reply via email to