Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 443353 - Increase (and better check) feature versions
Summary: Increase (and better check) feature versions
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.4.2   Edit
Assignee: Platform-Releng-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 443741 445326 446365 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-09-04 16:28 EDT by David Williams CLA
Modified: 2015-02-02 08:13 EST (History)
19 users (show)

See Also:
daniel_megert: pmc_approved+


Attachments
diff of feature versions 4.4.1 vs RC2 candidate (5.05 KB, text/plain)
2015-01-29 12:44 EST, David Williams CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2014-09-04 16:28:56 EDT
This is a "blanket reminder" to increase service (or minor) field when a contained bundle changes service (or minor) field. 

This bug was open in response to last minute check of 4.4.1, where it appears very few features increased service field. 

Tooling would help remind us, as we went along. See bug 382161 for more discussion of "tooling". 

And, to carry along one reminder from Dani, the branding bundle changes each build, and just because it changes, does not, by itself, mean the service field needs to change. [And frankly, I am not sure what Tycho's auto qualifier increase does with that case, ... but, ... should find out and document it].
Comment 1 Dani Megert CLA 2014-09-05 04:11:48 EDT
To clarify bug 443264 comment 13: Given that each build puts a new version (qualifier) on any feature, we can safely fix the service increase (+1) omissions right at the beginning of 4.4.2 and then, when real 4.4.2 changes are made, increase by one again.
Comment 2 David Williams CLA 2014-09-10 14:22:52 EDT
*** Bug 443741 has been marked as a duplicate of this bug. ***
Comment 3 David Williams CLA 2014-09-29 12:24:27 EDT
*** Bug 445326 has been marked as a duplicate of this bug. ***
Comment 6 David Williams CLA 2014-10-09 13:21:48 EDT
*** Bug 446365 has been marked as a duplicate of this bug. ***
Comment 7 Mickael Istria CLA 2014-10-10 05:52:39 EDT
Isn't baseline tool meant to catch this kind of errors at build-time? Is this issue revealing a limitation or a bug in baseline comparison?
Comment 8 Dani Megert CLA 2014-10-10 05:58:36 EDT
(In reply to Mickael Istria from comment #7)
> Isn't baseline tool meant to catch this kind of errors at build-time? Is
> this issue revealing a limitation or a bug in baseline comparison?

You mean PDE API Tools? If so, "no". It currently doesn't even tell you the minimal version for required bundles (see bug 213020).
Comment 9 Mickael Istria CLA 2014-10-10 06:05:35 EDT
(In reply to Dani Megert from comment #8)
> You mean PDE API Tools? If so, "no". It currently doesn't even tell you the
> minimal version for required bundles (see bug 213020).

Nope, I was more thinking about the Tycho baseline mechanism which compares/replaces bundles. But now I've re-read the documentation and it appears that ensuring version consistency isn't part of Tycho baseline goals.
What I have in mind would be a mojo on the "verify" goal which compares the output of the build with what's available in released repositories, and that would fail is it notice that a bundle/feature already exists with x.y.z version but with a different qualifier (Which most likely highlights a forgotten version bump).

On bug 446365, we noticed that this version issue doesn't only affect features but also the org.eclipse.platform bundle which is still 4.4.0 in SR1 (but with a different qualifier).
Comment 10 Dani Megert CLA 2014-10-10 07:35:15 EDT
(In reply to Mickael Istria from comment #9)
> On bug 446365, we noticed that this version issue doesn't only affect
> features but also the org.eclipse.platform bundle which is still 4.4.0 in
> SR1 (but with a different qualifier).

The branding bundle are created with each build and hence always get a new qualifier that matches the build id. Having said that, this particular bundle also had changes and hence the service segment should have been increased. I've done that now in the maintenance branch. This has no side-effect for users.
Comment 11 David Williams CLA 2014-10-16 02:52:59 EDT
As discussed at status meeting, on Wednesday, Markus, comment 4, based his changes on "SDK install". That covers about 40 features, but there are 20 others in our p2 repository that are not actually in an SDK install. 

So, I got copies, from the repo, of all the features, removed those that are in the SDK (since already analyzed) and analyzed the remaining 20 or so. From what I can tell the following need no change: 

org.eclipse.equinox.compendium.sdk
org.eclipse.equinox.p2.discovery.feature
org.eclipse.equinox.server.jetty
org.eclipse.equinox.server.p2
org.eclipse.osgi.compatibility.plugins.feature
org.eclipse.pde.api.tools.ee.feature
org.eclipse.releng.tools
org.eclipse.test

BUT, the follow do need a bump in service field. In most (65%?) of the cases it is due to a direct service increase in a contained bundle but in some it is a ripple effect, where features that included a "service bundle" are themselves included in a "higher" feature, hence that higher feature needs incrementing too. I can handle the last three (in platform.releng) ... but think the first  9 are in equinox. 

CC'ing Tom ... open your own bug, if you'd like ... or ... just update this one, when done. 

org.eclipse.core.runtime.feature
org.eclipse.equinox.core.feature
org.eclipse.equinox.core.sdk
org.eclipse.equinox.executable
org.eclipse.equinox.p2.sdk
org.eclipse.equinox.sdk
org.eclipse.equinox.server.core
org.eclipse.equinox.serverside.sdk
org.eclipse.equinox.weaving.sdk
org.eclipse.sdk.examples
org.eclipse.sdk.examples.source
org.eclipse.sdk.tests
Comment 12 David Williams CLA 2014-10-16 03:33:40 EDT
Here's the commit for R4_4_maintenance stream, for 'examples' and 'tests'. 

http://git.eclipse.org/c/platform/eclipse.platform.releng.git/commit/?h=R4_4_maintenance&id=300cf0b9d37595fc33998cc7873dd5882532897a

Note, I also changed the '.project' file of tests feature to include "feature builder" ... I noticed it was missing, since I didn't get the usual warning (after incrementing feature version) that the pom version needed updating too. 
Not sure why it's not had a 'feature builder' ... hopefully not some good, subtle reason, and just an oversight. 

I then made exact same changes in 'master', since the features are the same, at this point ... but, would anticipate those in master to "diverge" from Luna at some point during Mars. 

http://git.eclipse.org/c/platform/eclipse.platform.releng.git/commit/?id=01e52ba2e8e569c2d14db2156515b804824c6d7f
Comment 13 David Williams CLA 2014-10-16 18:22:53 EDT
FYI, for those cases where a feature has a "branding bundle" the branding bundle is supposed to also be updated to "match" the feature version. See 

Bug 447617 - Keep the branding plug-in version consistent with the feature version

and/or see

https://wiki.eclipse.org/Platform-releng/Incrementing_Version_Numbers#Plugin_versions
Comment 14 Thomas Watson CLA 2014-10-24 10:41:15 EDT
(In reply to David Williams from comment #11)
> CC'ing Tom ... open your own bug, if you'd like ... or ... just update this
> one, when done. 
> 
> org.eclipse.core.runtime.feature

http://git.eclipse.org/c/platform/eclipse.platform.runtime.git/commit/?h=R4_4_maintenance&id=a01706946791bc076843adb6681a5444dd4fe5e9

> org.eclipse.equinox.core.feature
> org.eclipse.equinox.core.sdk
> org.eclipse.equinox.sdk
> org.eclipse.equinox.server.core
> org.eclipse.equinox.serverside.sdk
> org.eclipse.equinox.weaving.sdk

http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?h=R4_4_maintenance&id=ecae16361c23f6c31a18755d48f42dedd13a0eb2

> org.eclipse.equinox.executable

 http://git.eclipse.org/c/equinox/rt.equinox.framework.git/commit/?h=R4_4_maintenance&id=89aa2f61c5aa25d453cb9a66bff962f9e9d939f0

> org.eclipse.equinox.p2.sdk

http://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?h=R4_4_maintenance&id=aa7ea36f3cc9d927a54e412e264de6a1315fd700

> org.eclipse.sdk.examples
> org.eclipse.sdk.examples.source
> org.eclipse.sdk.tests
Comment 15 David Williams CLA 2015-01-29 12:44:19 EST
Created attachment 250363 [details]
diff of feature versions 4.4.1 vs RC2 candidate

Please check our 4.4.2 feature versioning. 

In attachment, I'm put "list" of features (with versions) that are in our repository -- 4.1.1 compared to SR2 RC2 candidate

I've put ** with a comment for those that I think especially need attention ... 
but ... I could be wrong. 

Others, that are "blank", should be checked by component owners, but I do not have much intuition or knowledge of the "blank" ones. 

As the bottom, in a section labeled "ok" are those that look obviously correct.
Comment 16 David Williams CLA 2015-01-29 12:50:42 EST
And, remember, if you do increment a feature that has a branding bundle, the branding bundle should have same version as it's feature. See Bug 447617.
Comment 18 Dani Megert CLA 2015-01-29 15:16:09 EST
I'll take a look for RC2. No time right now.
Comment 19 Dani Megert CLA 2015-01-29 15:16:30 EST
(In reply to Dani Megert from comment #18)
> I'll take a look for RC2. No time right now.

RC3.
Comment 20 Dani Megert CLA 2015-02-02 08:13:41 EST
(In reply to David Williams from comment #15)
> Created attachment 250363 [details]
> diff of feature versions 4.4.1 vs RC2 candidate
> 
> Please check our 4.4.2 feature versioning. 


> ** Does this need a service increment, due to new "jcraft" prereq, and 
> handling of "ssl"?
> < org.eclipse.cvs.feature.group [1.4.100.v20140925-0400]

No, jcraft is part of the platform feature and not part of the CVS feature.


The following are OK, i.e. increased compared to 4.4.1. We won't increase a second time during 4.4.2 development:
- org.eclipse.e4.rcp.feature.group
- org.eclipse.help.feature.group
- org.eclipse.jdt.feature.group
- org.eclipse.pde.feature.group
- org.eclipse.sdk.examples.feature.group
- org.eclipse.sdk.tests.feature.group

> org.eclipse.test.feature.group [3.6.100.v20141204-0815]
Fixed with http://git.eclipse.org/c/platform/eclipse.platform.releng.git/commit/?id=23f61b440a13baf8b39700976a59f4be3d987f61