Hi, You can find useful information into the 'Deep into Pharo' book, chapter 9 (Managing projects with Metacello), section 9.12 (platform specific package).
Example:
ConfigurationOfCoolBrowser>>baseline09: spec
<version: '0.9-baseline'>
spec for: #common do: [
spec blessing: #baseline.
spec repository: 'http://www.example.com/CoolBrowser'.
spec
package: 'CoolBrowser-Core';
package: 'CoolBrowser-Tests' with: [ spec requires:
'CoolBrowser-Core' ];
package: 'CoolBrowser-Addons' with: [ spec requires:
'CoolBrowser-Core' ];
package: 'CoolBrowser-AddonsTests' with: [
spec requires: #('CoolBrowser-Addons'
'CoolBrowser-Tests' ) ].
spec
group: 'default' with: #('CoolBrowser-Core'
'CoolBrowser-Addons' );
group: 'Core' with: #('CoolBrowser-Core' 'CoolBrowser-Platform'
);
group: 'Extras' with: #('CoolBrowser-Addon');
group: 'Tests' with: #('CoolBrowser-Tests'
'CoolBrowser-AddonsTests' );
group: 'CompleteWithoutTests' with: #('Core', 'Extras' );
group: 'CompleteWithTests' with: #('CompleteWithoutTests',
'Tests' )].
spec for: #gemstone do: [
spec package: 'CoolBrowser-Platform' with:
'CoolBrowser-PlatformGemstone'].
spec for: #pharo do: [
spec package: 'CoolBrowser-Platform' with: 'CoolBrowser-PlatformPharo'].
Le 26 juin 2014 à 13:43, Roberto Minelli a écrit :
> Hi,
>
> I have my project with my Configuration and I am using spec groups to load
> different sets of packages (e.g., development and user groups).
>
> With the porting to Pharo 4.0 I discovered that there are some
> functionalities specific to Pharo 3.0 and others to Pharo 4.0, for example
> the fact that MethodContext is no longer part of Pharo 4.0. but it has been
> replaced by Context.
>
> I moved such functionalities in a package, say 'MyProject-Extension30’ and
> Pharo 4.0 specific functionalities in 'MyProject-Extension40’.
>
> Now the question is, suppose that I have a group like
> spec group: ‘User' with: #(‘A’ ‘B’ ‘C’).
>
> and another one:
> spec group: ‘Dev' with: #(‘A’ ‘B’ ‘C’ ‘D’ ‘E’).
>
> Until now, the developer (i.e., me) would do something like
> (self project version: #bleedingEdge) load: #('Dev’)
>
> and a used of my project would do
> (self project version: #bleedingEdge) load: #(‘User’)
>
>
>
> How can I factor inside the dynamic load of the two Pharo-version specific
> packages?
> i.e., no matter if ‘User’ or ‘Dev’ group is loaded I need to load
> 'MyProject-Extension40’ if I am on Pharo 4.0 and 'MyProject-Extension30’ if
> on Pharo 3.0.
>
> Thanks for your help,
> Roberto
smime.p7s
Description: S/MIME cryptographic signature
