serialization possibilities for a BaselineOf

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

serialization possibilities for a BaselineOf

Dale Henrichs-3
As an offshoot of the recent discussion with Steph and Christophe, I
though it would be interesting to show folks what a BaselineOf
specification would look like if it were written out in STON format.

Here's a  baseline spec extracted from the BaselineOfSton for GemStone
in the GsDevKit/ston project[1]:

   spec
     for: #'common'
     do: [
       spec
         package: 'STON-Core';
         package: 'STON-UTF8-Core' with: [ spec requires: 'STON-Core' ];
         package: 'STON-Tests' with: [ spec requires: 'STON-Core' ];
         package: 'STON-UTF8-Tests' with: [ spec requires:
'STON-UTF8-Core' ];
         yourself.
       spec
         group: 'default' with: #('Core' 'UTF8');
         group: 'Core' with: #('STON-Core');
         group: 'UTF8' with: #('STON-UTF8-Core');
         group: 'Tests' with: #('STON-Tests' 'STON-UTF8-Tests');
         yourself .
       spec
         package: 'STON-Core' with: [ spec includes:
#('STON-GemStone-Core') ];
         package: 'STON-GemStone-Core' with: [ spec requires:
#('STON-Core') ];
         package: 'STON-Tests' with: [ spec includes:
#('STON-GemStone-Tests') ];
         package: 'STON-GemStone-Tests' with: [ spec requires:
#('STON-Tests') ];
         yourself ]

I spelunked around a bit in the Metacello project data structure and
extracted this list using a simple workspace[2] to produce this STON output

[
     MetacelloPackageSpec {
         #name : 'STON-GemStone-Core',
         #requires : [
             'STON-Core'
         ]
     },
     MetacelloGroupSpec {
         #name : 'UTF8',
         #includes : [
             'STON-UTF8-Core'
         ]
     },
     MetacelloGroupSpec {
         #name : 'Tests',
         #includes : [
             'STON-Tests',
             'STON-UTF8-Tests'
         ]
     },
     MetacelloPackageSpec {
         #name : 'STON-UTF8-Core',
         #requires : [
             'STON-Core'
         ]
     },
     MetacelloPackageSpec {
         #name : 'STON-Tests',
         #requires : [
             'STON-Core'
         ],
         #includes : [
             'STON-GemStone-Tests'
         ]
     },
     MetacelloPackageSpec {
         #name : 'STON-Core',
         #includes : [
             'STON-GemStone-Core'
         ]
     },
     MetacelloGroupSpec {
         #name : 'default',
         #includes : [
             'Core',
             'UTF8'
         ]
     },
     MetacelloGroupSpec {
         #name : 'Core',
         #includes : [
             'STON-Core'
         ]
     },
     MetacelloPackageSpec {
         #name : 'STON-UTF8-Tests',
         #requires : [
             'STON-UTF8-Core'
         ]
     },
     MetacelloPackageSpec {
         #name : 'STON-GemStone-Tests',
         #requires : [
             'STON-Tests'
         ]
     }
]

The #for:do: specification is not present (that information was stripped
during the version creation process), but that type of information could
easily be added back in ... everything else is present and accounted for ...

Dale
[1] https://github.com/GsDevKit/ston
[2] https://gist.github.com/dalehenrich/4450b4aca405616b1891