We were working in parallel :) I opened bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=371526 to discuss this further, if needed, but the more I think about it, I'm not sure what else an "optional feature" would mean, since there is not really an OSGi runtime effect.
So, we can use the bug to have further discussion, if needed, but it may not really be a bug, but "working as designed". Appreciate the confirmation. Thanks, From: Ian Bull <[email protected]> To: P2 developer discussions <[email protected]>, Date: 02/14/2012 01:07 PM Subject: Re: [p2-dev] What is the meaning of an optional feature? Sent by: [email protected] Actually, I just built a very simple test case (two features, an optional dependency between them) and I published them both (actually I just exported from the workbench). I'm seeing what you saw David: <required namespace='org.eclipse.equinox.p2.iu' name='org.second.feature.group' range='[1.0.0.201202141003,1.0.0.201202141003]' optional='true'/> Cheers, Ian On Tue, Feb 14, 2012 at 9:34 AM, Ian Bull <[email protected]> wrote: Bug [1] was certainly released into master and has commit hashes: [1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=247099 5f0fb71330107d64a71b94c89443627bbc6dd159 21aef5cd787b0b0408b13fcfb0efa7cff0a46c5d However, this fix only appears to affect the 'bundles Action'. That is, only IUs that were created for bundles (plug-ins, whatever you want to call them) were affected by this patch. In the case that you're looking at, it appears that "features" are not being properly handled. David, can you confirm that the feature.groups are the ones missing missing the greedy == false? Cheers, Ian On Mon, Feb 13, 2012 at 9:21 PM, David M Williams < [email protected]> wrote: I'm sure readers of this list recall all the discussion last year about how bundles that are optional at runtime, should not be installed greedily, but instead allow it to be more of of a user/adopter choice, since it is, after all, optional. [1] [2] And, after some discussion [1], it was decided to change how the publishers work, rather change core behavior of p2. So, by default optional=true would also publish greedy=false. Fine and well, and I was sitting around just leisurely reading through some M5 content.xml files :) and noticed that for all "optional groups" (*feature.group) the IU requires statement (still) says only optional=true and never says greedy=false. So, I'm wondering ... a) is this a coincidence about a point in time, and those that have optional features haven't used new publisher? or b) intentional behavior to maintain some historical meaning of the concept of "optional feature"?, or c) a possible bug in the p2 publisher .... and all optional IU's should be treated the same? It seems that bug 354581 discusses a similar issue, but not so much from the "publisher" point of view, but from the workings of p2, I think. I'm leaning towards thinking it is a bug in the publisher, but seemed a large and complicated enough issue to raise on this list first, in case its clear to the core team why its done the way it is. I seem to recall "optional features" in the old update manager was still something users had to pick explicitly to get installed? So, thought I'd raise this issue on this list to see if we can get some quick resolution in time for Juno? And, seems like the first step in that would be to know what "optional feature" is supposed to mean. Some of the ones I saw were source features (which seems like should be greedy=false, to me), but not all. For example, <unit id='org.eclipse.platform.feature.group' ... requires p2.user.ui.feature optionally <required namespace='org.eclipse.equinox.p2.iu' name='org.eclipse.equinox.p2.user.ui.feature.group' range='[2.2.0.v20 111122-0424-62Bh9JXThteMThaKvT55BLhaBpx2,2.2.0.v20111122-0424-62Bh9JXThteMThaKvT55BLhaBpx2]' optional='true'/> (Admittedly, this one might be optional=true greedy=true (implied) on purpose?) Advice welcome, I'd be happy to investigate deeper, if the publisher should be specifying greedy=false by default, but thought I'd ask here first about what it is supposed to mean. [1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=247099 [2] http://wiki.eclipse.org/Equinox/p2/Publisher#BundlesAction [3] https://bugs.eclipse.org/bugs/show_bug.cgi?id=354581 _______________________________________________ p2-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/p2-dev -- R. Ian Bull | EclipseSource Victoria | +1 250 477 7484 http://eclipsesource.com | http://twitter.com/eclipsesource -- R. Ian Bull | EclipseSource Victoria | +1 250 477 7484 http://eclipsesource.com | http://twitter.com/eclipsesource _______________________________________________ p2-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/p2-dev _______________________________________________ p2-dev mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/p2-dev
