I was wondering if something like this can work:
Given a ConfigurationOfProject (a subclass of ConfigurationOf) defining:
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. |
Hi Gabriel,
Looks ok to me. Take a look at https://github.com/theseion/LibGit/blob/master/BaselineOfLibGit.package/BaselineOfLibGit.class/instance/baseline..st. I think you’ll find all your use cases in that baseline. 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
|
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:
|
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:
|
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:
|
On Wed, Oct 21, 2015 at 2:49 AM, Dale Henrichs <[hidden email]> wrote:
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
|
On 10/21/2015 05:55 AM, Ben Coman
wrote:
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 |
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 |
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 ? Dale |
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:
|
Free forum by Nabble | Edit this page |