Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 369171 - Move up to non-greedy p2 publisher
Summary: Move up to non-greedy p2 publisher
Status: RESOLVED FIXED
Alias: None
Product: WTP Releng
Classification: WebTools
Component: releng (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: David Williams CLA
QA Contact: Carl Anderson CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-01-19 23:52 EST by David Williams CLA
Modified: 2012-01-20 17:09 EST (History)
0 users

See Also:


Attachments
patch fo use newer bsae builder (937 bytes, patch)
2012-01-19 23:52 EST, David Williams CLA
no flags Details | Diff
6 content.xml files (789.49 KB, application/zip)
2012-01-20 16:28 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 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.