Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » Centrally controlling component versions
Centrally controlling component versions [message #379851] Thu, 28 August 2008 15:27 Go to next message
Roland Tepp is currently offline Roland TeppFriend
Messages: 336
Registered: July 2009
Senior Member
I am trying to manage component dependencies and materialization using
Buckminster and while I was declaring dependencies on a component, I
notices that I was continuously copying the same version information to
CSPEC version and and dependency (versionDesignator) nodes.

That prompted me to wonder how the version information is meant to be
used/handled by Buckminster.

If I have to specify version information of all dependencies in all
CSPECs, wouldn't it become rather troublesome to manage later on, when
the whole project moves to new new branch/version.

I would have to remember to (manually) change the version number of the
component and all of the dependency declarations of the dependent
components?

In my use case there is actually 1:1 mapping between version and branch
in source control tree - so that one can be inferred from the other.

So is there a way to infer component version number from the source
control branch defined in CQUERY?

--
Roland Tepp
Re: Centrally controlling component versions [message #379853 is a reply to message #379851] Thu, 28 August 2008 19:59 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi Roland,
Buckminster can infer the version from a branch or a tag using what is called a
versionConverter. A versionConverter is declared in a provider element of the RMAP and
it's task is to transform a branch name or a tag into a valid version and vice versa.

See:
http://wiki.eclipse.org/Buckminster_component_meta-data_lang uage_1.0_(Reference)#VersionConverter_component

for more info.

Kind Regards,
Thomas Hallgren

Roland Tepp wrote:
> I am trying to manage component dependencies and materialization using
> Buckminster and while I was declaring dependencies on a component, I
> notices that I was continuously copying the same version information to
> CSPEC version and and dependency (versionDesignator) nodes.
>
> That prompted me to wonder how the version information is meant to be
> used/handled by Buckminster.
>
> If I have to specify version information of all dependencies in all
> CSPECs, wouldn't it become rather troublesome to manage later on, when
> the whole project moves to new new branch/version.
>
> I would have to remember to (manually) change the version number of the
> component and all of the dependency declarations of the dependent
> components?
>
> In my use case there is actually 1:1 mapping between version and branch
> in source control tree - so that one can be inferred from the other.
>
> So is there a way to infer component version number from the source
> control branch defined in CQUERY?
>
Re: Centrally controlling component versions [message #379857 is a reply to message #379853] Fri, 29 August 2008 13:22 Go to previous messageGo to next message
Roland Tepp is currently offline Roland TeppFriend
Messages: 336
Registered: July 2009
Senior Member
Aah, so that is what the versionConverter in RMAP was for...

So in my CQUERY I specify a branch and in RMAP I translate this branch
to a version number?

In my component dependencies I do not have to specify an exact version
number of the component (that will be inferred from the branch)?

Still, there is the matter of version numbers of the components
themselves declared in CSPEC - can I omit version information there and
have it inferred from branch or should I still manage these manually?


Thomas Hallgren kirjutas mulle midagi seesugust:
> Hi Roland,
> Buckminster can infer the version from a branch or a tag using what is
> called a versionConverter. A versionConverter is declared in a provider
> element of the RMAP and it's task is to transform a branch name or a tag
> into a valid version and vice versa.
>

--
Roland Tepp
Re: Centrally controlling component versions [message #379902 is a reply to message #379857] Fri, 29 August 2008 13:59 Go to previous message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Roland Tepp wrote:
> Aah, so that is what the versionConverter in RMAP was for...
>
> So in my CQUERY I specify a branch and in RMAP I translate this branch
> to a version number?
>
No, not really. You either use branches as a non-versioning scheme and rely on that the
components that you find in a branch (or in head/trunk) will provide the version from
meta-data files in some way or another OR you let the branches/tags be the ones that
defines the versions. If you do the latter, Buckminster will scan the branches that are
available and select the best one according to a version designator. In this case, you do
NOT want to specify a branch or tag in the CQUERY.

The branch/tag path in the CQUERY can be used if you want Buckminster to use a specific
branch or tag when resolving. You can enter several comma separated values (hence the term
path) which will cause Buckminster to search them one at a time. The keyword "main" can be
used to denote head/trunk. This approach is particularly useful when you have a number of
components but only a few of them needs to be branched. We use this ourselves since only a
small selection of our plug-ins needs special handling for the differences between Europa
and Ganymede. When working with Europa, we use a CQUERY that first looks in our 3.3.x
branch and then in head, i.e. "3.3.x,head"


> In my component dependencies I do not have to specify an exact version
> number of the component (that will be inferred from the branch)?
>
> Still, there is the matter of version numbers of the components
> themselves declared in CSPEC - can I omit version information there and
> have it inferred from branch or should I still manage these manually?
>
Yes, that's possible. You can control all version explicitly using branches. In some cases
that's the simplest thing to do. It all depends on how you want to work :-)

Regards,
Thomas Hallgren
Previous Topic:Updates for 3.3 and 3.4
Next Topic:Problem resolving buckminster-dev.cquery
Goto Forum:
  


Current Time: Fri Apr 19 02:03:21 GMT 2024

Powered by FUDForum. Page generated in 0.02689 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top