Hey Uko,

I guess I wasn't clear;(

What is not needed when using git are the version methods with the
painstaking records of the mcz version associated with each file ...

A baseline is created by subclassing BaselineOf and adding a single
baseline: method that contains the package/project dependencies. This
BaselineOfXXX is saved directly in the repository along with the packages.

You can poke around in my External project on GitHub[1] to see more detail.

Dale

[1] https://github.com/dalehenrich/external/tree/master/repository


On Tue, Aug 5, 2014 at 8:31 AM, Yuriy Tymchuk <[email protected]> wrote:

> Hi Dale,
>
> I won’t agree that you don’t need configuration. For me the main purpose
> of configuration is defining dependencies. And as far as I know we don’t
> have any other alternative.
>
> Uko
>
> On 05 Aug 2014, at 17:21, Dale Henrichs <[email protected]>
> wrote:
>
> 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
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>
>

Reply via email to