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;
repository: 'http://www.squeaksource.com/MetacelloRepository' ].
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
[1]
https://github.com/dalehenrich/metacello-work/blob/master/docs/GettingStartedWithGitHub.md#create-baseline
On Mon, Aug 4, 2014 at 2:48 AM, kilon alios <[email protected]> wrote:
> Well lately I have been questioning the need for configurations . I am
> considering doing only the second port of your blog post. Ask github for
> the latest release of my project , download it, unzip it and point pharo to
> the unziped directory. Then pharo can periodocally keep probing github to
> see if there is a new release and prompt the user for an update. All that
> with a single click from the user or even automagically. But I have to
> figure out how to do that with Pharo first :)
>
>
> On Mon, Aug 4, 2014 at 12:23 PM, Yuriy Tymchuk <[email protected]>
> wrote:
>
>> You don’t have to. Just keep your configuration (here is a guide how to
>> do it
>> http://sleepycoders.blogspot.ch/2014/04/how-to-distribute-your-github-pharo.html)
>> on some monticello repo, and assemble your image on CI. Yes, if someone
>> want’s to modify your project they have to use git, but as far as I know,
>> Pharo is slowly moving git way anyway :)
>>
>> Cheers.
>> Uko
>>
>> On 04 Aug 2014, at 11:17, kilon alios <[email protected]> wrote:
>>
>> yeah I will also move my latest project to github. I am already more
>> active with github than I am in SThub anyway. The one thing that stopped me
>> so far is that I don't want to force people to install git to get the
>> latest version of my project. SThub is great for this.
>>
>>
>> On Mon, Aug 4, 2014 at 12:03 PM, Yuriy Tymchuk <[email protected]>
>> wrote:
>>
>>> Well, thankfully I keep all my latest projects on github, and I have
>>> configurations of them in the image. But CI is not working and anyway it’s
>>> a strange situation. Is there any other service where I can keep my
>>> configurations? Because that’s the only thing I version with monticello are
>>> configurations as I want to use gofer to load my projects. And here
>>> reliability is much more important then other features.
>>>
>>> Uko
>>>
>>>
>>> On 04 Aug 2014, at 10:59, kilon alios <[email protected]> wrote:
>>>
>>> oh boy thats looks nasty bug, hope its not permanent.
>>>
>>>
>>> On Mon, Aug 4, 2014 at 11:44 AM, Yuriy Tymchuk <[email protected]>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I was on vacation last weak, have I missed anything? Because my
>>>> SmaltalkHub user does not have any projects
>>>> http://smalltalkhub.com/#!/~YuriyTymchuk (and I had a bunch of them).
>>>>
>>>> Uko
>>>>
>>>
>>>
>>>
>>
>>
>