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 >>>>> >>>> >>>> >>>> >>> >>> >> > >
