Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Plugin Development Environment (PDE) » PDE Build, SVN and jar qualifiers
PDE Build, SVN and jar qualifiers [message #62529] Thu, 21 May 2009 23:01 Go to next message
Matt Seashore is currently offline Matt SeashoreFriend
Messages: 58
Registered: July 2009
Member
I have an p2 enabled RCP application built by PDE Build. Each plugin is
versioned like: "1.0.0.qualifier". Right now, the SVN source code is
checked out first and PDE Build on my Product via Hudson.

The problem I have is that for each build, a new timestamp qualifier is
set for each plugin whether it has changed or not. The result is that
if I make a one line change to a single plugin, all PDE built plugins
need to be redownloaded on update rather than just the single plugin
that was updated (because all the qualifiers were updated to the build
time).

Ideally, I'd like to set the qualifier on each plugin such that it only
changes when the underlying source code changes. With Subversion, this
would make sense to simply use the revision number of the plugin folder,
but there may be other ways to do it.

I'm not quite sure if this can be done with PDE Build. It seems there's
some support similar to this for CVS using map files(?), and I see
there's an SVN plugin for PDE Build. Perhaps I could call PDE Build for
each plugin, getting the qualifier from svn and then call PDE BUild for
the product (though that seems a bit painful)? I just don't want to
spend too much time figuring out this problem with PDE Build if it's not
possible :-).

Does anyone know if a scenario like this is possible with PDE Build? Any
other advice on how to best accomplish automated qualifiers based on
version control information?

Thanks,
Matt
Re: PDE Build, SVN and jar qualifiers [message #62630 is a reply to message #62529] Fri, 22 May 2009 15:49 Go to previous messageGo to next message
Matt Seashore is currently offline Matt SeashoreFriend
Messages: 58
Registered: July 2009
Member
I'm still not sure about doing it with PDE Build, but in talking with
the Buckminster guys, you can get build qualifiers based on the SVN
revision info using Buckminster and properties like:
qualifier.replacement.*=generator:lastRevision
generator.lastRevision.format=r{0,number,00000}

Unless I hear something groundbreaking about PDE Build, I'll probably
just convert my build to Buckminster.

Thanks,

Matt

Matt Seashore wrote:
> I have an p2 enabled RCP application built by PDE Build. Each plugin is
> versioned like: "1.0.0.qualifier". Right now, the SVN source code is
> checked out first and PDE Build on my Product via Hudson.
>
> The problem I have is that for each build, a new timestamp qualifier is
> set for each plugin whether it has changed or not. The result is that
> if I make a one line change to a single plugin, all PDE built plugins
> need to be redownloaded on update rather than just the single plugin
> that was updated (because all the qualifiers were updated to the build
> time).
>
> Ideally, I'd like to set the qualifier on each plugin such that it only
> changes when the underlying source code changes. With Subversion, this
> would make sense to simply use the revision number of the plugin folder,
> but there may be other ways to do it.
>
> I'm not quite sure if this can be done with PDE Build. It seems there's
> some support similar to this for CVS using map files(?), and I see
> there's an SVN plugin for PDE Build. Perhaps I could call PDE Build for
> each plugin, getting the qualifier from svn and then call PDE BUild for
> the product (though that seems a bit painful)? I just don't want to
> spend too much time figuring out this problem with PDE Build if it's not
> possible :-).
>
> Does anyone know if a scenario like this is possible with PDE Build? Any
> other advice on how to best accomplish automated qualifiers based on
> version control information?
>
> Thanks,
> Matt
Re: PDE Build, SVN and jar qualifiers [message #62676 is a reply to message #62630] Fri, 22 May 2009 19:07 Go to previous message
Andrew Niefer is currently offline Andrew NieferFriend
Messages: 990
Registered: July 2009
Senior Member
The built-in support for fetching from repositories will generate two
properties files in the buildDirectory: "pluginVersions.properties" and
"featureVersions.properties". The contents of these files then become
the basis for qualifier replacement.

If you are fetching your source yourself instead of using the built-in
stuff, you can create these properties files yourself to tell pde.build
which qualifiers to use.

The format of the properties file is:
<id>,<3segments>=<qualifier>
Generally, 3segments can just be 0.0.0:
org.eclipse.ui.navigator,0.0.0=I20090520-2000
However, if there are multiple version of the bundle, then it is like:
org.eclipse.equinox.http.jetty,1.1.100=v20090520-1800
org.eclipse.equinox.http.jetty,2.0.0=v20090520-1800

Matt Seashore wrote:
> I'm still not sure about doing it with PDE Build, but in talking with
> the Buckminster guys, you can get build qualifiers based on the SVN
> revision info using Buckminster and properties like:
> qualifier.replacement.*=generator:lastRevision
> generator.lastRevision.format=r{0,number,00000}
>
> Unless I hear something groundbreaking about PDE Build, I'll probably
> just convert my build to Buckminster.
>
> Thanks,
>
> Matt
>
> Matt Seashore wrote:
>> I have an p2 enabled RCP application built by PDE Build. Each plugin
>> is versioned like: "1.0.0.qualifier". Right now, the SVN source code
>> is checked out first and PDE Build on my Product via Hudson.
>>
>> The problem I have is that for each build, a new timestamp qualifier
>> is set for each plugin whether it has changed or not. The result is
>> that if I make a one line change to a single plugin, all PDE built
>> plugins need to be redownloaded on update rather than just the single
>> plugin that was updated (because all the qualifiers were updated to
>> the build time).
>>
>> Ideally, I'd like to set the qualifier on each plugin such that it
>> only changes when the underlying source code changes. With
>> Subversion, this would make sense to simply use the revision number of
>> the plugin folder, but there may be other ways to do it.
>>
>> I'm not quite sure if this can be done with PDE Build. It seems
>> there's some support similar to this for CVS using map files(?), and I
>> see there's an SVN plugin for PDE Build. Perhaps I could call PDE
>> Build for each plugin, getting the qualifier from svn and then call
>> PDE BUild for the product (though that seems a bit painful)? I just
>> don't want to spend too much time figuring out this problem with PDE
>> Build if it's not possible :-).
>>
>> Does anyone know if a scenario like this is possible with PDE Build?
>> Any other advice on how to best accomplish automated qualifiers based
>> on version control information?
>>
>> Thanks,
>> Matt
Re: PDE Build, SVN and jar qualifiers [message #597760 is a reply to message #62529] Fri, 22 May 2009 15:49 Go to previous message
Matt Seashore is currently offline Matt SeashoreFriend
Messages: 58
Registered: July 2009
Member
I'm still not sure about doing it with PDE Build, but in talking with
the Buckminster guys, you can get build qualifiers based on the SVN
revision info using Buckminster and properties like:
qualifier.replacement.*=generator:lastRevision
generator.lastRevision.format=r{0,number,00000}

Unless I hear something groundbreaking about PDE Build, I'll probably
just convert my build to Buckminster.

Thanks,

Matt

Matt Seashore wrote:
> I have an p2 enabled RCP application built by PDE Build. Each plugin is
> versioned like: "1.0.0.qualifier". Right now, the SVN source code is
> checked out first and PDE Build on my Product via Hudson.
>
> The problem I have is that for each build, a new timestamp qualifier is
> set for each plugin whether it has changed or not. The result is that
> if I make a one line change to a single plugin, all PDE built plugins
> need to be redownloaded on update rather than just the single plugin
> that was updated (because all the qualifiers were updated to the build
> time).
>
> Ideally, I'd like to set the qualifier on each plugin such that it only
> changes when the underlying source code changes. With Subversion, this
> would make sense to simply use the revision number of the plugin folder,
> but there may be other ways to do it.
>
> I'm not quite sure if this can be done with PDE Build. It seems there's
> some support similar to this for CVS using map files(?), and I see
> there's an SVN plugin for PDE Build. Perhaps I could call PDE Build for
> each plugin, getting the qualifier from svn and then call PDE BUild for
> the product (though that seems a bit painful)? I just don't want to
> spend too much time figuring out this problem with PDE Build if it's not
> possible :-).
>
> Does anyone know if a scenario like this is possible with PDE Build? Any
> other advice on how to best accomplish automated qualifiers based on
> version control information?
>
> Thanks,
> Matt
Re: PDE Build, SVN and jar qualifiers [message #597770 is a reply to message #62630] Fri, 22 May 2009 19:07 Go to previous message
Andrew Niefer is currently offline Andrew NieferFriend
Messages: 990
Registered: July 2009
Senior Member
The built-in support for fetching from repositories will generate two
properties files in the buildDirectory: "pluginVersions.properties" and
"featureVersions.properties". The contents of these files then become
the basis for qualifier replacement.

If you are fetching your source yourself instead of using the built-in
stuff, you can create these properties files yourself to tell pde.build
which qualifiers to use.

The format of the properties file is:
<id>,<3segments>=<qualifier>
Generally, 3segments can just be 0.0.0:
org.eclipse.ui.navigator,0.0.0=I20090520-2000
However, if there are multiple version of the bundle, then it is like:
org.eclipse.equinox.http.jetty,1.1.100=v20090520-1800
org.eclipse.equinox.http.jetty,2.0.0=v20090520-1800

Matt Seashore wrote:
> I'm still not sure about doing it with PDE Build, but in talking with
> the Buckminster guys, you can get build qualifiers based on the SVN
> revision info using Buckminster and properties like:
> qualifier.replacement.*=generator:lastRevision
> generator.lastRevision.format=r{0,number,00000}
>
> Unless I hear something groundbreaking about PDE Build, I'll probably
> just convert my build to Buckminster.
>
> Thanks,
>
> Matt
>
> Matt Seashore wrote:
>> I have an p2 enabled RCP application built by PDE Build. Each plugin
>> is versioned like: "1.0.0.qualifier". Right now, the SVN source code
>> is checked out first and PDE Build on my Product via Hudson.
>>
>> The problem I have is that for each build, a new timestamp qualifier
>> is set for each plugin whether it has changed or not. The result is
>> that if I make a one line change to a single plugin, all PDE built
>> plugins need to be redownloaded on update rather than just the single
>> plugin that was updated (because all the qualifiers were updated to
>> the build time).
>>
>> Ideally, I'd like to set the qualifier on each plugin such that it
>> only changes when the underlying source code changes. With
>> Subversion, this would make sense to simply use the revision number of
>> the plugin folder, but there may be other ways to do it.
>>
>> I'm not quite sure if this can be done with PDE Build. It seems
>> there's some support similar to this for CVS using map files(?), and I
>> see there's an SVN plugin for PDE Build. Perhaps I could call PDE
>> Build for each plugin, getting the qualifier from svn and then call
>> PDE BUild for the product (though that seems a bit painful)? I just
>> don't want to spend too much time figuring out this problem with PDE
>> Build if it's not possible :-).
>>
>> Does anyone know if a scenario like this is possible with PDE Build?
>> Any other advice on how to best accomplish automated qualifiers based
>> on version control information?
>>
>> Thanks,
>> Matt
Previous Topic:Export Wizard doesn't show my plugin
Next Topic:P2 generator - How to specify feature categories ?
Goto Forum:
  


Current Time: Sun Jun 20 17:20:43 GMT 2021

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

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

Back to the top