I love your answers they are straight to the point, easy to understand and
very useful, this one is no different, thank you :)

I have another questions but I will make a separate thread for it so its
easier for users to google and search for it, including me .

By the way the official docs are only here ? -->
https://github.com/dalehenrich/metacello-work/tree/master/docs

On Tue, Jan 27, 2015 at 8:37 PM, Dale Henrichs <
dale.henri...@gemtalksystems.com> wrote:

>  Kilon,
>
> I don't use tags a lot in my own projects, but if someone is using your
> project in a production situation, then using tags is a good idea (if you
> follow semantic versioning) so that the users can tell when and if you have
> made api-breaking changes...
>
> Since the Smacc project looks like it is on github you have two options
> for doing a "project reference": reference the configuration or reference
> the baseline.
>
> To reference a configuration-based project do something like the following
> (in a baseline):
>
>   spec
>     configuration: 'SmaCC'
>     with: [
>       spec
>         versionString: '2.0.4';
>         repository: 'http://.....' ].
>   spec
>     package: 'PackageThatDependsUponSmacc'
>     with: [ spec requires: #('Smacc') ].
>
> Note that you might want to use a symbolic version (if they are defined in
> the project) so that you can always get the #stable version which
> presumably changes over time ...
>
> To reference a baseline-based project do something like the following (in
> a baseline):
>
>   spec
>     baseline: 'SmaCC'
>     with: [ spec repository: 'github://ThierryGoubier/SmaCC:master' ].
>   spec
>     package: 'PackageThatDependsUponSmacc'
>     with: [ spec requires: #('Smacc') ]
>
> Note that you can use the tag wild cards to achieve a similar effect of
> using symbolic versions with configurations.
>
> Did this answer your question?
>
> Dale
>
> On 01/27/2015 07:21 AM, kilon alios wrote:
>
> No I have not used git tags so far, so I am not familiar with them. But I
> will keep in mind, I am considering not having versions at all, I find it a
> curious concept.
>
>  Dale there is one thing I wanted to ask you , would it possible put in
> my github repo installation instructions for installing prerequisites ?
>
>  For example I may use Thierry's SmaCC which I currently study to figure
> out how it works.
>
>  I could add that to my ConfigurationOfEphestos that I have saved to Meta
> Repo of Pharo 4. But I dont want to touch that repo, ideally I would like
> to do this from the BaselineOfEphestos which is stored in my Ephestos
> github repo. Is that possible ? Can the baseline handle installation of
> dependencies and trigger other configurations ? Or is that a job only for
> Configurations ?
>
>
>  I want not to have to maintain also meta repo 4, I just want to only to
> do all things in my github repo.
>
> On Tue, Jan 27, 2015 at 4:57 PM, Dale Henrichs <
> dale.henri...@gemtalksystems.com> wrote:
>
>>  Kilon,
>>
>> One more point that you might find useful ... If you use tags (i.e.,
>> v1.0.0, v1.0.1, v1.1.0), you can specify tag wildcards  in the branch field
>> of the github repository description.
>>
>> Using Thierry's example the following resolves the latest commit on the
>> master branch (bleeding edge):
>>
>>   github://ThierryGoubier/SmaCC:master
>>
>> Using a tag name, you can match the tagged commit:
>>
>>   github://ThierryGoubier/SmaCC:v1.0.0
>>   github://ThierryGoubier/SmaCC:v1.1.0
>>
>> Using a tag wildcard you can specify the latest tag 1.0.*:
>>
>>   github://ThierryGoubier/SmaCC:v1.0.*
>>
>> which matches v1.0.1, v1.0.2, whichever is latest, but not v1.0.2.1.
>>
>> To match the latest tag in the 1.0 family use 1.0.?:
>>
>>   github://ThierryGoubier/SmaCC:v1.0.?
>>
>> which matches v1.0.1, v1.0.2  and v1.0.2.1.
>>
>> There are more examples here[1].
>>
>> This feature was introduced in Metacello 1.0.0-beta.32.16[2].
>>
>> Dale
>>
>> [1]
>> https://github.com/dalehenrich/metacello-work/issues/277#issuecomment-58970696
>> [2]
>> https://github.com/dalehenrich/metacello-work/issues?q=milestone%3A1.0.0-beta.32.16+is%3Aclosed
>>
>>
>> On 1/27/15 1:52 AM, kilon alios wrote:
>>
>> beautiful it worked like a charm following your instructions , I now can
>> brake my project to smaller ones, each one with each own github repo and
>> use Baselines to load each one and still allow the user to load my Project
>> in one single click from Configuration Browser. Love it how Pharo make this
>> all this so easy, with python it was a nightmare. Brilliant just Brilliant
>> ! :)
>>
>> On Tue, Jan 27, 2015 at 11:19 AM, Thierry Goubier <
>> thierry.goub...@gmail.com> wrote:
>>
>>>  Hi Kilon,
>>>
>>>  a simple way to do that is to change your configuration so that it uses
>>> the baseline in your github. The SmaCC configuration for Pharo 4.0 is
>>> written in this way for the stable version.
>>>
>>> version204: spec
>>>     <version: '2.0.4' imports: #('2.0-baseline')>
>>>     spec
>>>         for: #'pharo4.x'
>>>         do: [
>>>             spec
>>>                 blessing: #stable;
>>>                 author: 'ThierryGoubier';
>>>                 description: 'SmaCC Smalltalk Compiler Compiler for
>>> Pharo 4.0'.
>>>             spec
>>>                 baseline: 'SmaCC' with: [ spec repository:
>>> 'github://ThierryGoubier/SmaCC:master' ];
>>>                 import: 'SmaCC' ]
>>>
>>>  Thierry
>>>
>>>
>>>
>>> 2015-01-27 10:08 GMT+01:00 kilon alios <kilon.al...@gmail.com>:
>>>
>>>> So I have a Configuration in the Meta repo of pharo 4 and 3 that loads
>>>> the latest version of my project Ephestos.
>>>>
>>>>  However I have moved my development to github since I am very happy
>>>> with the workflow and since I discovered loading github repos via a
>>>> baseline I have little use for smalltalkhub.
>>>>
>>>>  So my plan is this, keep the configuration in the meta repo so people
>>>> and me can install my project easily with one click via the wonderful
>>>> simple configuration browser , but I dont want anymore to load any versions
>>>> with it. Instead I want to tell the configuration "load the github
>>>> baseline" which  means it will fetch the code from my github account master
>>>> branch which is the stable branch anyway (and the only branch so far) .
>>>>
>>>>  That will allow me to never have to update that configuration again
>>>> since it will just load the latest code from github repo.
>>>>
>>>> The question is how to do this the easiest and cleanest way possible ?
>>>>
>>>
>>>
>>
>>
>
>

Reply via email to