Kilon,
When working with git/github, you really don't need a configuration anymore ... the configuration functions more like tag than anything else.
For day to day operations with git/github you only need a baseline[1]. ��The baseline just describes the package relationships and of course git manages the versions of the packages:
baseline: spec
�� <baseline>
�� spec for: #common do: [
�� �� spec configuration: 'Seaside30' with: [
�� �� �� spec
�� �� �� �� version: #stable;
�� �� spec
�� �� �� package: 'Sample-Core'with: [
�� �� �� �� spec requires: 'Seaside30' ];
�� �� �� package: 'Sample-Tests' with: [
�� �� �� �� spec requires: 'Sample-Core' ]].
but there is no longer any need to track the version numbers of the individual mcz file.
To load from a repository using a baseline you do the following:
�� Metacello new
�� �� baseline: 'External';
�� �� repository: 'github://dalehenrich/external:master/repository';
�� �� load.
This is very similar to using #bleedingEdge,but a lot safer, since presumably you are using travis-ci to run tests before anything gets merged into your master branch and of course all of the packages are versioned together.
To refresh the version from the master branch you do the following:
�� Metacello new
�� �� baseline: 'External';
�� �� repository: 'github://dalehenrich/external:master/repository';
�� �� get.
�� Metacello new
�� �� baseline: 'External';
�� �� repository: 'github://dalehenrich/external:master/repository';
�� �� load.
This is admittedly a bit awkward, but there has been a couple year lag between the time I did the basic implementation in support of git/github and the time that folks are finally becoming interested in actually using it:) So I have focussed on functionality instead or prettiness ... I will eventually get to the point where you can do:)
Metacello new
�� �� baseline: 'External';
�� �� repository: 'github://dalehenrich/external:master/repository';
�� �� get;
�� �� load.
If you use a configuration, then the version method for the configuration would look like the following:
version0900: spec
�� �� <version: '0.9.0'>
�� �� spec
�� �� �� �� for: #'common'
�� �� �� �� do: [��
�� �� �� �� �� �� spec blessing: #'development'.
�� �� �� �� �� �� spec description: 'initial work: first commit on custom branch'.
�� �� �� �� �� �� spec author: 'dkh'.
�� �� �� �� �� �� spec timestamp: '5/4/2012 14:16'.
�� �� �� �� �� �� spec
�� �� �� �� �� �� �� �� baseline: 'External'
�� �� �� �� �� �� �� �� with: [ spec repository: 'github://dalehenrich/external:1ac58502ade7814e1590f71d615cca434b1a4fd5/repository' ] ]
So version 0.9.0 is simply a tag for a particular commit ... but within the Metacello eco-system this approach can be useful.
Dale