|
Re: How to update subset of p2 site content? [message #765491 is a reply to message #765243] |
Wed, 14 December 2011 07:26 |
|
HI Andrew,
It's likely that you would benefit from using a
lastModified/lastRevision qualifier generator. It will generate a
qualifier based on repository (svn/git/cvs) data so that unless you
change your code, the qualifier will remain the same.
The feature qualifier is then based on the qualifiers of each of its
included features/plugins so that unless at least one them change, the
feature qualifier will also remain stable.
HTH,
- thomas
On 2011-12-13 18:25, Andrey Ilinykh wrote:
> Hello everybody!
> Our application has a bunch of features. Each feature has its own life
> cycle and release schedule, but all of them use the same p2 site. As far
> I understand, buckminster rebuilds all projects. As result when we
> create p2 site all features get new versions (because of qualifier), and
> application has to update everything even only one feature gets version
> increment.
> What is the best way to handle this situation? What is the best practice
> to use the same p2 site for several independent components?
>
> Thank you,
> Andrey
|
|
|
|
Re: How to update subset of p2 site content? [message #766918 is a reply to message #766895] |
Fri, 16 December 2011 16:43 |
|
On 2011-12-16 17:00, Fabian Baboschi wrote:
> Hi,
>
> I have a problem with lastModified/lastRevision approach.
>
> You have 2 features containing 2 plugins:
> Feature 1 has plugin 1 which has class 1 which defines constant X=3
> Feature 2 has plugin 2 which has class 2 which uses constant X
>
> From what I saw (and it was a painful conclusion), the constants are replaced by their value at compile time. So
> although you don't have any modification in the plugin 2 source, you have a binary that is different.
>
> For some reason, you need to change the constant value from 3 to 5. Note that the last revision/last modification won't
> pick up that the class 2 binary has changed (the constant X value changed in the binary from 3 to 5) in the mean time.
>
> Is there a solution that would fix this scenario?
>
A fix would include comparing the new binary artifact with a previously built binary artifact before generating the
qualifier which in turn is included in the manifest of the binary artifact. Tricky business to say the least.
In order to solve it, the binaries needs to be unpacked and then the class files must be compared one by one.
Buckminster doesn't perform such comparisons.
On the other hand, changing a public constant should be considered an API change and hence, render a change of at least
the minor version number. Such changes must be done manually.
- thomas
|
|
|
Powered by
FUDForum. Page generated in 0.02559 seconds