Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 412233 - 7 bundles need to be touched in maintenance, for valid .api_descriptions
Summary: 7 bundles need to be touched in maintenance, for valid .api_descriptions
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.3   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 4.3.1   Edit
Assignee: Platform-Releng-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-07-03 11:30 EDT by David Williams CLA
Modified: 2013-07-11 15:47 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2013-07-03 11:30:32 EDT
See http://download.eclipse.org/eclipse/downloads/drops4/M20130703-0800/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt

In maintenance branch (as in 44 builds) we have updated to the correct (current) version of PDE's API tools, so during our build the correct .api_description files, BUT, due the comparator heuristics, our distribution still pulls "old" version of bundle, since qualifier has not changed. 

These are the bundles that need to be "touched" ... I'd suggest by next Wednesday, if there was no other reason they are modified. 

eclipse.platform.ui/bundles/org.eclipse.e4.ui.model.workbench
eclipse.platform.ui/bundles/org.eclipse.e4.ui.services
eclipse.platform.ui/bundles/org.eclipse.e4.ui.workbench
eclipse.platform.ui/bundles/org.eclipse.ui.ide

eclipse.jdt.core/org.eclipse.jdt.core

eclipse.platform.team/bundles/org.eclipse.compare

rt.equinox.p2/bundles/org.eclipse.equinox.p2.operations
Comment 1 Paul Webster CLA 2013-07-03 14:05:55 EDT
Do we need to update their versions (0.10.0 to 0.10.1 for example)?  Or will we accept the qualifier goes up for Kepler SR1 is good enough since the bundles contain no code changes?

PW
Comment 2 Stephan Herrmann CLA 2013-07-03 14:26:30 EDT
(In reply to comment #0)
> eclipse.jdt.core/org.eclipse.jdt.core

I'm not familiar with what exactly this is testing, but is it expected
that issues with content of a fragment are reported against the host plugin?
Is s.o. simply looking in the wrong place?
Comment 3 David Williams CLA 2013-07-03 17:38:30 EDT
(In reply to comment #2)
> (In reply to comment #0)
> > eclipse.jdt.core/org.eclipse.jdt.core
> 
> I'm not familiar with what exactly this is testing, but is it expected
> that issues with content of a fragment are reported against the host plugin?
> Is s.o. simply looking in the wrong place?

No, nothing to do with hosts/fragments. The .api_description file is a file that "describes" the API of the bundle in such a way that it works with tools in PDE build (in the workbench) so can provide more detailed "warnings" or "errors" if someone is mis-using the methods ... you know, such as how there are some classes that are public, and not final, but should not be subclassed, etc. 

For the Kepler release, we happened to be be using an "old" version of the tool that produces those .api_description files. Now we've updated that tool and it produces a "new" version (that now "describes" classes/method annotated with "no not reference" annotation. But, since the source code itself didn't change, the qualifier doesn't change, so the "comparator" takes the "old" version from the repo, instead of the "new" version that was just built. Very similar to how sometimes we change the version of the compiler, and different byte codes are produced. 

Am I close to answering what you were asking? :) 

I'll attach examples of "old" and "new" .api_description files for jdt.core, and that might help make it more concrete .... if I've not been too wordy already.
Comment 4 David Williams CLA 2013-07-03 17:49:21 EDT
Well, instead of attach, I'll just show the difference. You can download, and see the .api_description file in current jdt.core bundle ... that's the one that was produced with the "old" tool. I also downloaded the new version, from build server ..../target which was produced with "new" tool and this is the "diff": 

diff -r new/.api_description old/.api_description
74a75,77
>         <type name="ASTRecoveryPropagator" restrictions="0">
>             <method name="&lt;init&gt;" restrictions="8" signature="([Lorg/eclipse/jdt/core/compiler/CategorizedProblem;Lorg/eclipse/jdt/internal/compiler/parser/RecoveryScannerData;)V"/>
>         </type>

Its is that "restrictions="8" (I believe) that means "do not reference" and is the new data produced by the new version of the PDE tool. 

Now I'm sure it is perfectly clear. :) 

Bottom line, having the "accurate" .api_description file will produce the correct warnings/errors in workbench. I'm sure others can give more details ... like how this interacts with "filters" ... I'm already over my head. :)
Comment 5 David Williams CLA 2013-07-03 17:53:12 EDT
(In reply to comment #1)
> Do we need to update their versions (0.10.0 to 0.10.1 for example)?  Or will
> we accept the qualifier goes up for Kepler SR1 is good enough since the
> bundles contain no code changes?
> 
> PW

Yes.  Even though "java code" didn't change ... contents of the bundle did ... so ... new service version. 

(In a perfect world, in a "service release" we'd never have any bundle that changed in qualifier only without an increment in service field ... but, admit ... technically all would still work and be fine without it ... but, semantically, I believe any change in contents, requires change in service field).
Comment 7 Jay Arthanareeswaran CLA 2013-07-09 01:24:05 EDT
The JDT/Core changes have been released via commit:

http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/commit/?h=R4_3_maintenance&id=d8347daf466c123d6a0e3c78fc343c4c7bb9a04d
Comment 8 Dani Megert CLA 2013-07-09 05:16:30 EDT
> eclipse.platform.team/bundles/org.eclipse.compare

Done.


Adding Pascal and Ian for p2.
Comment 9 David Williams CLA 2013-07-10 12:25:37 EDT
According to 

http://download.eclipse.org/eclipse/downloads/drops4/M20130710-0800/buildlogs/comparatorlogs/buildtimeComparatorUnanticipated.log.txt

only p2 is left. 

This also means p2 needs to create an R3_9_maintenance branch (let me know if you need help) and then an update to repositories.txt.
Comment 10 Ian Bull CLA 2013-07-10 22:30:35 EDT
(In reply to comment #8)
> Adding Pascal and Ian for p2.

Sorry, I've been travelling. I will get to this tomorrow.
Comment 11 Ian Bull CLA 2013-07-11 14:11:44 EDT
I've touched the p2 bundle in the R3_9_Maintenance branch.

http://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/?h=R3_9_maintenance&id=7795cff886b8113af330ccbd6fc92af9a565bcdb
Comment 12 David Williams CLA 2013-07-11 15:47:51 EDT
(In reply to comment #11)
> I've touched the p2 bundle in the R3_9_Maintenance branch.
> 
> http://git.eclipse.org/c/equinox/rt.equinox.p2.git/commit/
> ?h=R3_9_maintenance&id=7795cff886b8113af330ccbd6fc92af9a565bcdb

I've update the repositories.txt file to use 
R3_9_maintenance for rt.equinox.p2
(Note: lower case 'm' as it should be :) 

So, I think we are done here.