ConfigurationOf and Git

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

ConfigurationOf and Git

gcotelli
I was wondering if something like this can work:

Given a ConfigurationOfProject (a subclass of ConfigurationOf)  defining:

stable: spec <symbolicVersion: #stable> spec for: #'pharo4.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo4/']]. spec for: #'pharo5.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo5/']].

where stableForPharo4 and stableForPharo5 are tags in the git repo (and assuming the BaselineOfProject is defined in this commits). Is this supposed to work :

Metacello new
  configuration: 'Project';
  repository: 'github://username/Project:master';
  version: #stable;
  load. ??

I've tried using a non-symbolic version and it works but I can't make it work for #stable. I'd like to use this configuration for the Configuration Browser/Catalog Browser.

Any help is appreciated.
Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

Max Leske
Hi Gabriel,

Looks ok to me.


As for loading:

Metacello new
  baseline: #LibGit;
  repository: '<a href="github://theseion/LibGit:master'" class="">github://theseion/LibGit:master';
  load.

Metacello new
  baseline: #LibGit;
  repository: '<a href="github://theseion/LibGit:master'" class="">github://theseion/LibGit:master';
  load: 'development’.

HTH,
Max


On 20 Oct 2015, at 05:05, Gabriel Cotelli <[hidden email]> wrote:

I was wondering if something like this can work:

Given a ConfigurationOfProject (a subclass of ConfigurationOf)  defining:

stable: spec <symbolicVersion: #stable> spec for: #'pharo4.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo4/']]. spec for: #'pharo5.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo5/']].

where stableForPharo4 and stableForPharo5 are tags in the git repo (and assuming the BaselineOfProject is defined in this commits). Is this supposed to work :

Metacello new
  configuration: 'Project';
  repository: 'github://username/Project:master';
  version: #stable;
  load. ??

I've tried using a non-symbolic version and it works but I can't make it work for #stable. I'd like to use this configuration for the Configuration Browser/Catalog Browser.

Any help is appreciated.

Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

gcotelli
I've tried something like this with a BaselineOf and it works, but I want to define the #stable version for a ConfigurationOf because as far as I know the ConfigurationBrowser/CatalogBrowser uses only configurations and tries to load the stable symbolic version. 

On Tue, Oct 20, 2015 at 4:06 AM, Max Leske <[hidden email]> wrote:
Hi Gabriel,

Looks ok to me.


As for loading:

Metacello new
  baseline: #LibGit;
  load.

Metacello new
  baseline: #LibGit;
  load: 'development’.

HTH,
Max


On 20 Oct 2015, at 05:05, Gabriel Cotelli <[hidden email]> wrote:

I was wondering if something like this can work:

Given a ConfigurationOfProject (a subclass of ConfigurationOf)  defining:

stable: spec <symbolicVersion: #stable> spec for: #'pharo4.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo4/']]. spec for: #'pharo5.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo5/']].

where stableForPharo4 and stableForPharo5 are tags in the git repo (and assuming the BaselineOfProject is defined in this commits). Is this supposed to work :

Metacello new
  configuration: 'Project';
  repository: 'github://username/Project:master';
  version: #stable;
  load. ??

I've tried using a non-symbolic version and it works but I can't make it work for #stable. I'd like to use this configuration for the Configuration Browser/Catalog Browser.

Any help is appreciated.


Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

kilon.alios
you diffirent versions can also be branches of the same repo , so you have one branch for pharo 4 and one for pharo 5 , baseline can load code from specific branches.

On Tue, Oct 20, 2015 at 4:14 PM Gabriel Cotelli <[hidden email]> wrote:
I've tried something like this with a BaselineOf and it works, but I want to define the #stable version for a ConfigurationOf because as far as I know the ConfigurationBrowser/CatalogBrowser uses only configurations and tries to load the stable symbolic version. 

On Tue, Oct 20, 2015 at 4:06 AM, Max Leske <[hidden email]> wrote:
Hi Gabriel,

Looks ok to me.


As for loading:

Metacello new
  baseline: #LibGit;
  load.

Metacello new
  baseline: #LibGit;
  load: 'development’.

HTH,
Max


On 20 Oct 2015, at 05:05, Gabriel Cotelli <[hidden email]> wrote:

I was wondering if something like this can work:

Given a ConfigurationOfProject (a subclass of ConfigurationOf)  defining:

stable: spec <symbolicVersion: #stable> spec for: #'pharo4.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo4/']]. spec for: #'pharo5.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo5/']].

where stableForPharo4 and stableForPharo5 are tags in the git repo (and assuming the BaselineOfProject is defined in this commits). Is this supposed to work :

Metacello new
  configuration: 'Project';
  repository: 'github://username/Project:master';
  version: #stable;
  load. ??

I've tried using a non-symbolic version and it works but I can't make it work for #stable. I'd like to use this configuration for the Configuration Browser/Catalog Browser.

Any help is appreciated.


Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

Dale Henrichs-3
In reply to this post by gcotelli
Here's the documentation for the Metacello github:// repository description[1]. ...

In recent versions of Metacello I have made it possible for you to use pattern matching in the <version identifier> to provide for symbolic-version-like facility for github references.

Instead of stableForPharo4 you would associate a semantic version with the code that is "stableForPharo4" for example `4.0.0` and use the tag `v4.0.0` to mark the commit that is "stableForPharo4".

Similarly you'd use the tag `v5.0.0` to mark the commit that is "stableForPharo5".

Then you'd use the following in your baseline: method (not in a symbolicVersion method).

  spec for: #'pharo4.0.x'
    do: [spec
      baseline: 'Project'
       with: [ spec repository: 'github://username/Project:v4.?/']].
  spec for: #'pharo5.0.x'
    do: [spec
       baseline: 'Project'
       with: [ spec repository: 'github://username/Project:v5.?/']].

If you end up with a new commit that patches a Pharo4 problem, you'd tag that commit as `v4.0.1` and so on .... The above `v4.?` pattern will match `v4.0.1` and you'll pick up that tag the next time you refresh your build (i.e., do a `get` on the Project baseline ... which causes a new download from Github) ...

HTH,

Dale

[1] https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloScriptingAPI.md#github
[2] https://github.com/dalehenrich/metacello-work/issues/277#issuecomment-58970696

On 10/19/2015 08:05 PM, Gabriel Cotelli wrote:
I was wondering if something like this can work:

Given a ConfigurationOfProject (a subclass of ConfigurationOf)  defining:

stable: spec <symbolicVersion: #stable> spec for: #'pharo4.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo4/']]. spec for: #'pharo5.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo5/']].

where stableForPharo4 and stableForPharo5 are tags in the git repo (and assuming the BaselineOfProject is defined in this commits). Is this supposed to work :
Metacello new
  configuration: 'Project';
  repository: 'github://username/Project:master';
  version: #stable;
  load. ??
I've tried using a non-symbolic version and it works but I can't make it work for #stable. I'd like to use this configuration for the Configuration Browser/Catalog Browser.
Any help is appreciated.

Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

Ben Coman


On Wed, Oct 21, 2015 at 2:49 AM, Dale Henrichs <[hidden email]> wrote:
Here's the documentation for the Metacello github:// repository description[1]. ...

In recent versions of Metacello I have made it possible for you to use pattern matching in the <version identifier> to provide for symbolic-version-like facility for github references.

Instead of stableForPharo4 you would associate a semantic version with the code that is "stableForPharo4" for example `4.0.0` and use the tag `v4.0.0` to mark the commit that is "stableForPharo4".

Similarly you'd use the tag `v5.0.0` to mark the commit that is "stableForPharo5".

Then you'd use the following in your baseline: method (not in a symbolicVersion method).

  spec for: #'pharo4.0.x'
    do: [spec
      baseline: 'Project'
       with: [ spec repository: 'github://username/Project:v4.?/']].
  spec for: #'pharo5.0.x'
    do: [spec
       baseline: 'Project'
       with: [ spec repository: 'github://username/Project:v5.?/']].

If you end up with a new commit that patches a Pharo4 problem, you'd tag that commit as `v4.0.1` and so on .... The above `v4.?` pattern will match `v4.0.1` and you'll pick up that tag the next time you refresh your build (i.e., do a `get` on the Project baseline ... which causes a new download from Github) ...

Intuitively I would have thought that #'pharo4.0.x' 
would correspond to repository: 'github://username/Project:v4.0.?/'
I seem to be missing something.
cheers -ben

 

HTH,

Dale

[1] https://github.com/dalehenrich/metacello-work/blob/master/docs/MetacelloScriptingAPI.md#github
[2] https://github.com/dalehenrich/metacello-work/issues/277#issuecomment-58970696


On 10/19/2015 08:05 PM, Gabriel Cotelli wrote:
I was wondering if something like this can work:

Given a ConfigurationOfProject (a subclass of ConfigurationOf)  defining:

stable: spec <symbolicVersion: #stable> spec for: #'pharo4.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo4/']]. spec for: #'pharo5.0.x' do: [spec baseline: 'Project' with: [ spec repository: 'github://username/Project:stableForPharo5/']].

where stableForPharo4 and stableForPharo5 are tags in the git repo (and assuming the BaselineOfProject is defined in this commits). Is this supposed to work :
Metacello new
  configuration: 'Project';
  repository: 'github://username/Project:master';
  version: #stable;
  load. ??
I've tried using a non-symbolic version and it works but I can't make it work for #stable. I'd like to use this configuration for the Configuration Browser/Catalog Browser.
Any help is appreciated.


Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

Dale Henrichs-3


On 10/21/2015 05:55 AM, Ben Coman wrote:


On Wed, Oct 21, 2015 at 2:49 AM, Dale Henrichs <[hidden email]> wrote:
Here's the documentation for the Metacello github:// repository description[1]. ...

In recent versions of Metacello I have made it possible for you to use pattern matching in the <version identifier> to provide for symbolic-version-like facility for github references.

Instead of stableForPharo4 you would associate a semantic version with the code that is "stableForPharo4" for example `4.0.0` and use the tag `v4.0.0` to mark the commit that is "stableForPharo4".

Similarly you'd use the tag `v5.0.0` to mark the commit that is "stableForPharo5".

Then you'd use the following in your baseline: method (not in a symbolicVersion method).

  spec for: #'pharo4.0.x'
    do: [spec
      baseline: 'Project'
       with: [ spec repository: 'github://username/Project:v4.?/']].
  spec for: #'pharo5.0.x'
    do: [spec
       baseline: 'Project'
       with: [ spec repository: 'github://username/Project:v5.?/']].

If you end up with a new commit that patches a Pharo4 problem, you'd tag that commit as `v4.0.1` and so on .... The above `v4.?` pattern will match `v4.0.1` and you'll pick up that tag the next time you refresh your build (i.e., do a `get` on the Project baseline ... which causes a new download from Github) ...

Intuitively I would have thought that #'pharo4.0.x' 
would correspond to repository: 'github://username/Project:v4.0.?/'
I seem to be missing something.

I guess it's not intuitive to me, because I'm not sure what point you are making:)

In general terms I'm not very intuitive, so this is my personality flaw:)

Dale
Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

Ben Coman
On Thu, Oct 22, 2015 at 1:30 AM, Dale Henrichs
<[hidden email]> wrote:

>
>
> On 10/21/2015 05:55 AM, Ben Coman wrote:
>
>
>
> On Wed, Oct 21, 2015 at 2:49 AM, Dale Henrichs
> <[hidden email]> wrote:
>>
>> Here's the documentation for the Metacello github:// repository
>> description[1]. ...
>>
>> In recent versions of Metacello I have made it possible for you to use
>> pattern matching in the <version identifier> to provide for
>> symbolic-version-like facility for github references.
>>
>> Instead of stableForPharo4 you would associate a semantic version with the
>> code that is "stableForPharo4" for example `4.0.0` and use the tag `v4.0.0`
>> to mark the commit that is "stableForPharo4".
>>
>> Similarly you'd use the tag `v5.0.0` to mark the commit that is
>> "stableForPharo5".
>>
>> Then you'd use the following in your baseline: method (not in a
>> symbolicVersion method).
>>
>>   spec for: #'pharo4.0.x'
>>     do: [spec
>>       baseline: 'Project'
>>        with: [ spec repository: 'github://username/Project:v4.?/']].
>>   spec for: #'pharo5.0.x'
>>     do: [spec
>>        baseline: 'Project'
>>        with: [ spec repository: 'github://username/Project:v5.?/']].
>>
>> If you end up with a new commit that patches a Pharo4 problem, you'd tag
>> that commit as `v4.0.1` and so on .... The above `v4.?` pattern will match
>> `v4.0.1` and you'll pick up that tag the next time you refresh your build
>> (i.e., do a `get` on the Project baseline ... which causes a new download
>> from Github) ...
>
>
> Intuitively I would have thought that #'pharo4.0.x'
> would correspond to repository: 'github://username/Project:v4.0.?/'
> I seem to be missing something.
>
> I guess it's not intuitive to me, because I'm not sure what point you are
> making:)

My point was that these two
4.0.x
4.0.?

seem to correspond better than these two
4.0.x
4.?

but maybe I looked at this the wrong way.
So v4.? would also match pharo4.1.0  ?

cheers -ben

>
> In general terms I'm not very intuitive, so this is my personality flaw:)
>
> Dale

Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

Dale Henrichs-3


On 10/22/2015 05:31 AM, Ben Coman wrote:

> On Thu, Oct 22, 2015 at 1:30 AM, Dale Henrichs
> <[hidden email]> wrote:
>>
>> On 10/21/2015 05:55 AM, Ben Coman wrote:
>>
>>
>>
>> On Wed, Oct 21, 2015 at 2:49 AM, Dale Henrichs
>> <[hidden email]> wrote:
>>> Here's the documentation for the Metacello github:// repository
>>> description[1]. ...
>>>
>>> In recent versions of Metacello I have made it possible for you to use
>>> pattern matching in the <version identifier> to provide for
>>> symbolic-version-like facility for github references.
>>>
>>> Instead of stableForPharo4 you would associate a semantic version with the
>>> code that is "stableForPharo4" for example `4.0.0` and use the tag `v4.0.0`
>>> to mark the commit that is "stableForPharo4".
>>>
>>> Similarly you'd use the tag `v5.0.0` to mark the commit that is
>>> "stableForPharo5".
>>>
>>> Then you'd use the following in your baseline: method (not in a
>>> symbolicVersion method).
>>>
>>>    spec for: #'pharo4.0.x'
>>>      do: [spec
>>>        baseline: 'Project'
>>>         with: [ spec repository: 'github://username/Project:v4.?/']].
>>>    spec for: #'pharo5.0.x'
>>>      do: [spec
>>>         baseline: 'Project'
>>>         with: [ spec repository: 'github://username/Project:v5.?/']].
>>>
>>> If you end up with a new commit that patches a Pharo4 problem, you'd tag
>>> that commit as `v4.0.1` and so on .... The above `v4.?` pattern will match
>>> `v4.0.1` and you'll pick up that tag the next time you refresh your build
>>> (i.e., do a `get` on the Project baseline ... which causes a new download
>>> from Github) ...
>>
>> Intuitively I would have thought that #'pharo4.0.x'
>> would correspond to repository: 'github://username/Project:v4.0.?/'
>> I seem to be missing something.
>>
>> I guess it's not intuitive to me, because I'm not sure what point you are
>> making:)
> My point was that these two
> 4.0.x
> 4.0.?
>
> seem to correspond better than these two
> 4.0.x
> 4.?
>
> but maybe I looked at this the wrong way.
> So v4.? would also match pharo4.1.0  ?
Ah yes, you do have  a point there, because v4.? does match 4.1.0.

Dale


Reply | Threaded
Open this post in threaded view
|

Re: ConfigurationOf and Git

gcotelli
In case anyone is interested, I've managed to re-use the BaselineOf definition inside the ConfigurationOf. If you need to do something similar take a look at https://github.com/gcotelli/RenoirSt/tree/master/source/ConfigurationOfRenoirSt.package/ConfigurationOfRenoirSt.class/instance

This allows to copy this configuration in the corresponding MetaRepoForPharoX for projects managed using BaselineOf.

On Thu, Oct 22, 2015 at 5:48 PM, Dale Henrichs <[hidden email]> wrote:


On 10/22/2015 05:31 AM, Ben Coman wrote:
On Thu, Oct 22, 2015 at 1:30 AM, Dale Henrichs
<[hidden email]> wrote:

On 10/21/2015 05:55 AM, Ben Coman wrote:



On Wed, Oct 21, 2015 at 2:49 AM, Dale Henrichs
<[hidden email]> wrote:
Here's the documentation for the Metacello github:// repository
description[1]. ...

In recent versions of Metacello I have made it possible for you to use
pattern matching in the <version identifier> to provide for
symbolic-version-like facility for github references.

Instead of stableForPharo4 you would associate a semantic version with the
code that is "stableForPharo4" for example `4.0.0` and use the tag `v4.0.0`
to mark the commit that is "stableForPharo4".

Similarly you'd use the tag `v5.0.0` to mark the commit that is
"stableForPharo5".

Then you'd use the following in your baseline: method (not in a
symbolicVersion method).

   spec for: #'pharo4.0.x'
     do: [spec
       baseline: 'Project'
        with: [ spec repository: 'github://username/Project:v4.?/']].
   spec for: #'pharo5.0.x'
     do: [spec
        baseline: 'Project'
        with: [ spec repository: 'github://username/Project:v5.?/']].

If you end up with a new commit that patches a Pharo4 problem, you'd tag
that commit as `v4.0.1` and so on .... The above `v4.?` pattern will match
`v4.0.1` and you'll pick up that tag the next time you refresh your build
(i.e., do a `get` on the Project baseline ... which causes a new download
from Github) ...

Intuitively I would have thought that #'pharo4.0.x'
would correspond to repository: 'github://username/Project:v4.0.?/'
I seem to be missing something.

I guess it's not intuitive to me, because I'm not sure what point you are
making:)
My point was that these two
4.0.x
4.0.?

seem to correspond better than these two
4.0.x
4.?

but maybe I looked at this the wrong way.
So v4.? would also match pharo4.1.0  ?
Ah yes, you do have  a point there, because v4.? does match 4.1.0.

Dale