I’m definitely interested in the discussion but don’t have the time to initiate and follow-up on it right now. I’d like to keep this for future improvement but I don’t know how to proceed. Should I change the existing bug to “enhancement” (implementing bestMatch in director app) or it’s better to close it and put this topic in some TODO list? Thanks, Katya From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Pascal Rapicault Sent: jeudi 13 octobre 2011 19:27 To: P2 developer discussions Subject: Re: [p2-dev] Unexpected resolution failure On 2011-10-13, at 11:24 AM, Todorova, Katya wrote:
Thank you very much, that’s exactly what I was looking for J Just one more question regarding director app – wouldn’t it be incompatible change if 0.0.0 semantic is changed in that way? Or you mean the new behavior could be switched on/off somehow? I’m wondering what would be considered as default in that case (and why)? Changing the behaviour of "-installIU abc" is a breaking change for ppl using the tool. I think it would be best to introduce a fake version number at the end like "bestMatch"("-installIU abc/bestMatch") or something in that flavor so it is explicit. Adopting “I feel lucky” is worth discussing - it seems as a very nice feature. I’m sure that if you are kind enough to help clarifying the “unknowns”, it would be really easy to find a volunteer about the patch.
Note that, the I feel lucky code I sent can not be used as-is since it loosen all the roots which is not the desired behaviour all the time. For example I can say "installIU abc/1.0.0 def ghj/bestMatch" The code for I feel lucky is something that I wrote last year to deal with automatic updates. It could also be integrated behind a new flag, but this is a separate discussion.
From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Pascal Rapicault Sent: jeudi 13 octobre 2011 16:53 To: P2 developer discussions Subject: Re: [p2-dev] Unexpected resolution failure On 2011-10-13, at 10:02 AM, Todorova, Katya wrote: Could be a stupid question but how could you "ask" the planner to resolve an open range? As far as I've seen the planner source you could pass as a root IU only an exact IU contained by a repo? Look at IProvisioningChangeRequest#addExtraRequirements If you could provide a link to "I feel lucky" bug or/and to the corresponding source it would be extremely helpful. Do you think this is going to be supported in director app in future?
If someone provides a patch, yes. I'll update the bug but currently I don't have enough information (e.g a workaround, components handling it, etc). Since 0.0.0 interpretation could be confusing to others as it was to me and I didn't find it officially documented, I would like to include in the report a clear statement on this as well.
-----Original Message----- From: p2-dev-bounces@xxxxxxxxxxx [mailto:p2-dev-bounces@xxxxxxxxxxx] On Behalf Of Pascal Rapicault Sent: jeudi 13 octobre 2011 15:35 To: P2 developer discussions Subject: Re: [p2-dev] Unexpected resolution failure
Makes sense. This is currently not supported by the director app. The necessary logic to add to support this is very similar to the one I did for the "I feel lucky" button. You need to do a first call to the planner with open ranges so the resolver figures out the most appropriate solution and then another call to get all the final plan with all the properties.
If bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=359902 is related to this, please update it with the relevant information.
On 2011-10-13, at 9:17 AM, Todorova, Katya wrote:
From user stand point I expect to install the highest "resolvable" version that is available in the repository, not the highest "exact". Motivation? Since I don't specify an exact version, any version would be acceptable for me but I implicitly expect the highest (which could be resolved) to be preferred. I make an analogy here with OSGi import/export wiring when multiple
exported versions are available.
Currently "-installIU abc" tries to install the "exact" highest version and if its resolution fails, the whole installation fails. As Tobias suggested I could implement something on top of p2 -
for example I could traverse the repository on my own, sort available IUs by version in descendent order, look for the first resolvable in the list and then pass it to p2 engine.
Does the use case make more sense now?
So is there a way p2 director app to interpret 0.0.0 as version range instead of exact version and are you aware of scenarios that strictly rely on 0.0.0 = exact highest?
-----Original Message-----
Sent: jeudi 13 octobre 2011 14:32
To: P2 developer discussions
Subject: Re: [p2-dev] Unexpected resolution failure
In the case of the p2 director, doing "-installIU abc" (without specifying a version) is a shortcut for saying install the highest version available of this IU.
Could you please describe from a user point of view the behaviour you are trying to get for the director app?
On 2011-10-13, at 6:04 AM, Todorova, Katya wrote:
My confusion came from trying to map equinox and p2 resolvers behavior on 0.0.0.
Back on the technical stuff - I think version range would do for my use case.
Do you have any idea how to specify version range in director app? (curious if there is any documentation when p2 handles 0.0.0 as fixed version and when as range?)
What is the use case(s) of using 0.0.0 as fixed version?
Implementing my desired behavior outside p2 would mean re-implementing the planner :) I'm not sure I'd like to go in that direction. Just want to play around
with what's currently available and try to come up with a decent solution.
-----Original Message-----
Sent: jeudi 13 octobre 2011 11:35
To: P2 developer discussions
Subject: Re: [p2-dev] Unexpected resolution failure
It seems that 0.0.0 is interpreted as [1.0.1.201109261256,
1.0.1.201109261256] instead of [0.0.0, infinity) and p2 resolver doesn't
make an attempt to find a solution containing lower version.
Is that the expected behavior?
0.0.0 can be a version or a version range. 0.0.0 as version is a fixed version - the latest one available when querying a metadata repo, 0.0.0 as version range is an open version range.
You need to know what you are specifying (version vs. Version range) to know the semantics.
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________
_______________________________________________ p2-dev mailing list p2-dev@xxxxxxxxxxx https://dev.eclipse.org/mailman/listinfo/p2-dev |