p2 committers, 

For this year's Simultaneous Release document, I wanted to add a sentence 
or two on why it was important ... in the context of our Simultaneous 
Release ... to specify (or publish) greedy="false" for runtime-optional 
dependencies. 

In the past, we just said "do it" and for the reasoning pointed to bug 
247099 [1] and the wiki page [2] both of which are pretty complicated. One 
thing I'd like to confirm with you experts is that ... as far as I know 
... it is not possible for an adopter to provide a customer with a 
"feature patch" for something that was installed via greedy=true. Right so 
far? So some adopters would have to jump through hoops (that I don't even 
know) to maintain some installed products if their customers happened to 
install some particular thing from some particular repository -- if it 
caused a critical bug in their product. Sound right? I've not provided a 
reason why someone would want to have greedy=true and am not sure I know 
one ... for the common repo. I do see the rationale mentioned in the bug 
for "services" where an OSGi server with a tightly controlled repository 
might want to roll-out changes that way ... but ... if any of you have a 
(brief) reason or example of when to use greediness in the Simultaneous 
Release, I'd appreciate hearing that too. 

My full write-up is at 

http://wiki.eclipse.org/SimRel/Simultaneous_Release_Requirements#Provide_optimized_p2_repository_.28partially_tested.29

But I've pasted the relevant section below [3] for your ease of reviewing. 


And ... please note! ... I do not want to re-start the long debate in bug 
247099 ... I just want to make sure the brief reasons I have stated are 
accurate and adequate. 

Thank you for any review/confirmation you can provide (and apologies in 
advance if I've asked before and its already been explained to me and 
documented elsewhere), 


[1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=247099
[2] http://wiki.eclipse.org/Equinox/p2/Publisher
[3] 
= = = = = =
... the repositories produced and contributed must use p2 publishers that 
produce greedy='false' in the content metadata for runtime-optional 
dependencies. See bug 247099 and the p2 Publisher wiki for some history 
and details on this issue of greedy vs. non-greedy requirements. But in 
brief, to have a runtime-optional dependency be non-greedy is important 
for several reasons, especially in an IDE environment. First it gives 
ultimate control over what is installed to the user, based on their 
feature selection, instead of depending on what happens to be available 
from the repositories they are pointing to at that moment it time. It also 
makes it much easier for adopters to be able to predict (and maintain) 
what their users have installed. In fact, if something is 
runtime-optional, but pulled into an install because someone did not 
specify greedy='false' meta-data, there is no way an adopter can provide a 
patch feature to one of their customers if that optional bundle causes a 
bug. 
= = = = = =

_______________________________________________
p2-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/p2-dev

Reply via email to