Subversive - pde.build: best practices? [message #510400] |
Wed, 27 January 2010 12:50 |
Stephan Herrmann Messages: 1853 Registered: July 2009 |
Senior Member |
|
|
Hi,
I'm trying to migrate a non-trivial build to using the
org.eclipse.team.svn.pde.build plugin.
The one thing I couldn't yet figure out is qualifier
replacement in version numbers.
Until now I always built my plugins from trunk and let
pde.build substitute the qualifier in all version numbers
by the current date. So my first attempt was to specify
"trunk" as the "tag" element in each map-entry, like
feature@my.feature=SVN,url=http://my.server/svnroot,tag=trunk,path=path/to/my/feature
However, this causes qualifier substitution to insert
the string "trunk" into all version numbers like
1.2.3.v_qualifier -> 1.2.3.v_trunk
After debugging I found this intermediate solution:
feature@my.feature=SVN,url=http://my.server/svnroot/trunk,path=path/to/my/feature
Note: no "tag" specified. Now substitution works:
1.2.3.v_qualifier -> 1.2.3.v_201001271200
This is fine, but doesn't support working with explicit
tags any more. I.e., now I'm looking for a way to easily
switch between nightly builds and integration builds:
nightly builds
- check out from "trunk"
- use date as qualifier
integration builds
- check out from "tags/builds/MYBUILDTAG"
- use "MYBUILDTAG" as qualifier
I didn't find a pattern that easily supports both kinds
of builds. Preferably I would just change the "fetchTag"
property to switch between N and I builds.
Option 1
If I include /trunk in the url I cannot append a tag,
i.e., specifying
fetchTag=SVN=tag/builds/MYBUILDTAG
would create paths like
/svnroot/trunk/tags/builds/MYMBUILDTAG/path/to/my/feature
I can't get rid of the "trunk" segment.
Option 2
If I omit "trunk" from the url, I have to specify it as
the "tag" and cannot use the date as qualifier substitution.
IMHO, the plugin should be smarter in interpreting "trunk".
E.g., if not specifying a tag would implicitly insert "trunk"
I could write a tag-less map.file ready for nightlies
and specify a "fetchTag" property for integration builds.
Remaining problem: the fetchTag would need to be a
path, of which only the last segment is the build qualifier.
(This has been discussed in https://bugs.eclipse.org/273230)
Alternatively, if the map file contains specific tags, to be
updated explicitly for each I build, then I'd like to use
for nightlies and expect that this creates a path containing
trunk, but still uses the date as the qualifier.
(also this solution requires the tag for I builds to be
a multi-segment path, which it can't currently).
Finally, I saw in the code some mentioning of "tagPath".
Did someone start splitting the tag into a path prefix
and the final actual tag?
Is there a best practice of repository layout plus
map file content plus usage of fetchTag? Otherwise
I would open a bug describing one possible strategy.
thanks,
Stephan
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03677 seconds