Centrally controlling component versions [message #379851] |
Thu, 28 August 2008 11:27  |
Eclipse User |
|
|
|
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 #379902 is a reply to message #379857] |
Fri, 29 August 2008 09:59  |
Eclipse User |
|
|
|
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
|
|
|
Powered by
FUDForum. Page generated in 0.24674 seconds