[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [p2-dev] Creating a Target Platform and p2...

The PDE folks should comment on the workflow topics but I'll comment on the more generic Target Platform topic.  Target platforms are NOT software installs.  You *add* things to the target.  They are not *installed*. This is an important difference.  Adding something to a target platform gets the bytes and makes them available to be run. A target platform may contain many conflicting or mutually exclusive bundles. The user creates launch configs or product defs that identifies bundles/features from the workspace and the target.  *This* set should be a consistent, resolvable collection of bundles/features as it will actually be run.

So with that context we are faced with a double edged sword. On the one hand, as you point out, users like the convenience of adding X to their target and getting everything that X depends on.  On the other hand, if you were to do that with some SDKs you would get way too much stuff for any normal situation and you would be stuck resolving the target and dealing with all the conflicts.

That is the purpose of the two "modes". With the checkbox selected, PDE attempts to resolve the target and make it consistent.  With the box deselected, PDE just gets what you said you wanted.

The rationale for using only the selected repo is unknown to me.

Note also that this is really a PDE topic. p2 is, in this case, an underlying implementation detail of how target platforms work.

Jeff
 

> Let's say I'm an eclipse user. I have a list of user "approved" update sites. As a user I want to get a new version of a software library, so I go to create a new target platform. I select the project's update site to get the new software and... it won't install.
> 
> I'd  then go on the forums and complain that the update site is broken. I'd be told it isn't and I need to un-select "include all dependencies". At this point the software will install, but I still don't have a viable Target Platform, and worse I need to manually figure out the missing OSGi dependencies.
> 
> Why? I believe P2 has the functionality to handle this situation gracefully. Why aren't we using it? Is there a bug number that contained a design discussion on this previously?
> 
> Thanks.
> 
> -Eric
> 
> Jeff McAffer wrote:
>> Clarification, unchecking the box should not "grab all dependencies". It will follow the feature *include* dependencies and get the specific versions listed therein, ignoring those that cannot be found.  
>> Jeff
>> 
>> On 2010-04-22, at 3:20 PM, Curtis Windatt wrote:
>> 
>>> Hi Eric,
>>> 
>>> Yes, this is expected behaviour.  The target resolves the required dependencies of each location independently.  If you want to create a target from multiple sites you can uncheck the "Include required software" button at the bottom of the Add Content from Software Site wizard.  When trying to gather requirements, the site will (using the p2 slicer) grab all dependencies that are available in the repo you are working with and will ignore dependencies it cannot find.
>>> 
>>> Curtis
>>> 
>>> 
>>> From: 	Eric Gwin <eric.gwin@xxxxxxxxxx <mailto:eric.gwin@xxxxxxxxxx>>
>>> To: 	Cross project issues <cross-project-issues-dev@xxxxxxxxxxx <mailto:cross-project-issues-dev@xxxxxxxxxxx>>, P2 developer discussions <p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>>
>>> Date: 	2010/04/22 02:02 PM
>>> Subject: 	[p2-dev] Creating a Target Platform and p2...
>>> Sent by: 	p2-dev-bounces@xxxxxxxxxxx <mailto:p2-dev-bounces@xxxxxxxxxxx>
>>> 
>>> 
>>> ------------------------------------------------------------------------
>>> 
>>> 
>>> 
>>> Hi,
>>> 
>>> I've been trying to figure out a weird issue I've been getting trying to
>>> create a Target platform from an update site.
>>> 
>>> Basically the issue appears to be that when creating a Target Platform,
>>> P2 does not look outside the selected repo to resolve dependencies. If
>>> the Helios repo is used everything resolves fine. If the local project
>>> repo is used there are errors that required dependencies are missing -
>>> Even if the default platform is used as a starting point (so the
>>> platform isn't used to resolve dependencies either).
>>> 
>>> Is this expected behavior?
>>> 
>>> Anyone?
>>> -- 
>>> -Eric
>>> 
>>> Oracle <http://www.oracle.com <http://www.oracle.com/>>
>>> Eric Gwin | Senior Software Developer
>>> Phone: +613 288 4622 <tel:+613%20288%204622> | | Fax: +613 2382818
>>> <fax:+613%202382818> | | Mobile: +613 8582347 <tel:+613%208582347>
>>> Oracle Java Server Technologies
>>> ORACLE Canada | 45 O'Connor St., Ottawa, Ontario | K1P 6L2
>>> Green Oracle <http://www.oracle.com/commitment> Oracle is committed to
>>> developing practices and products that help protect the environment
>>> 
>>> _______________________________________________
>>> p2-dev mailing list
>>> p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>
>>> https://dev.eclipse.org/mailman/listinfo/p2-dev
>>> 
>>> 
>>> _______________________________________________
>>> p2-dev mailing list
>>> p2-dev@xxxxxxxxxxx <mailto:p2-dev@xxxxxxxxxxx>
>>> https://dev.eclipse.org/mailman/listinfo/p2-dev
>> 
>> ------------------------------------------------------------------------
>> 
>> _______________________________________________
>> p2-dev mailing list
>> p2-dev@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/p2-dev
>>  
> 
> -- 
> -Eric
> 
> Oracle <http://www.oracle.com>
> Eric Gwin | Senior Software Developer
> Phone: +613 288 4622 <tel:+613%20288%204622> | | Fax: +613 2382818 <fax:+613%202382818> | | Mobile: +613 8582347 <tel:+613%208582347>
> Oracle Java Server Technologies
> ORACLE Canada | 45 O'Connor St., Ottawa, Ontario | K1P 6L2
> Green Oracle <http://www.oracle.com/commitment> Oracle is committed to developing practices and products that help protect the environment
> 
> _______________________________________________
> p2-dev mailing list
> p2-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/p2-dev