Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 369171

Summary: Move up to non-greedy p2 publisher
Product: [WebTools] WTP Releng Reporter: David Williams <david_williams>
Component: relengAssignee: David Williams <david_williams>
Status: RESOLVED FIXED QA Contact: Carl Anderson <ccc>
Severity: normal    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Attachments:
Description Flags
patch fo use newer bsae builder
none
6 content.xml files none

Description David Williams CLA 2012-01-19 23:52:43 EST
Created attachment 209788 [details]
patch fo use newer bsae builder

As documented in bug 247099 and 
http://wiki.eclipse.org/Equinox/p2/Publisher
the Juno based p2 publisher for repositories now treats optional as non-greedy. Previously greedy value would not be specified, and p2 assumes true if not specified. 

In many cases, this results in more being installed than users (or adopters) desired ... plus, the final installation could all depend on which repo you pointed to from which to get the install ... not very that deterministic. Not good.  

This new p2 publisher has been ready since Juno M1, and in Orbit, I just moved to use Juno M4 SDK (see bug 368999) and appears to be no issues (though, of course, with Orbit, we don't actually compile anything (well, not much) but just assemble. The repo seems to have been correctly created with greedy='false', but for WTP we'd have to be ready to "back out" if weird compile errors occur, as they did when we accidentally started using M2 (or was it M3)? 

I'll attach small patch. on how to incorporate 3.8 M4. 

At the same time, I suggest we move up to use the very-near M5 version of Orbit, that has the non-greedy repo. I say "near" since it is still an I build ... but, I'd feel better making sure it can be sued before promoting to an S build. 

http://download.eclipse.org/tools/orbit/downloads/drops/I20120119143614/

So, assuming all works as planned, early next week we'd want to move up to the official "S" version, though no contents would change. 

I am 99% sure these changes won't effect us in WTP ... but, you never know. More importantly, if it effect any of our consumers, best they (and we) find out now wo we can fix before the EclipseCon M6 version.
Comment 1 David Williams CLA 2012-01-19 23:55:57 EST
I'll be happy to do the leg work on this one, since i have a selfish interest ... I want to make sure the new Orbit repo and p2 publisher works before declaring our new Orbit repo. 

So ... unless anyone objects ... after the I build declared this week, I'll swap.
Comment 2 David Williams CLA 2012-01-20 10:40:49 EST
I've first updated the Orbit pre-req to 
http://download.eclipse.org/tools/orbit/downloads/drops/I20120119143614/

Once that build is done I'll update the builder to the M4 level. 

That way, if there are oddities or unexpected differences, we will better know the source of the difference. 

FYI, I'll send not to wtp-releng to make sure wtp committers know we are "experimenting" today. 

Assuming it all works as expected, near end of day, I'll send note to wtp-dev list, since, in theory, rarely, there is a chance consumers of wtp might be effected.
Comment 3 David Williams CLA 2012-01-20 13:13:57 EST
the first "test build" is complete and the junit tests running. 

I downloaded the repo zip files, for code and tests, and confirmed all is as expected. The list of bundles is exactly the same as the build declared this week (one jmock bundle "moved up", I guess since tweaked in Orbit) and the artifacts.xml and content.xml files with new Orbit build all compare as expected with just-declared build. Interestingly, as desired, the Orbit bundles we "include" all contain the greedy='false' proving the pde build and mirroring operations maintain the original repo's meta data (as desired). 

So ... to save time ... I will cancel the remaining JUnit tests, and move on to second phase of changing our PDE builder to the Juno M4 level so our own "optional" bundles will be marked as greedy='false'.
Comment 4 David Williams CLA 2012-01-20 16:18:48 EST
Status: the next test build is done building, unit test in progress. 

http://build.eclipse.org/webtools/committers/wtp4x-R3.4.0-I/20120120182304/I-3.4.0-20120120182304/

At least no compile errors like last time we used a Juno compiler :) 

Its unlikely the tests would show any problems, since we pretty much "install everything" ... but, we'll see ... would be more likely when people install some special purpose subset. For example, I noticed jpt.core has optional dependency on PDE, so ... if PDE not otherwise installed ... it won't be there now when if installed by users/adopters (previously, would have greedily installed it from common repo).
Comment 5 David Williams CLA 2012-01-20 16:28:09 EST
Created attachment 209861 [details]
6 content.xml files

I bet no one finds diffing these content files as interesting as I do ... but, if anyone wanted to "see" the difference you can compare them. Or, check in one place for unexpected "optional" now non-greedy dependencies.
Comment 6 David Williams CLA 2012-01-20 17:09:06 EST
build complete, I think one or so extra JUnit test failures compared to just declared build, but did not seem related to anything missing due to non-greedy repos. 

So, I'll count this bug as "fixed". 

But ... one (new) issue is that the new JDT compiler causes some .class files to be a little different. I've opened bug 369300 to track/discuss that.