Bug 21351

Summary: Separation of feature containment (includes) & updating needed
Product: [Eclipse Project] Platform Reporter: Greg Adams <greg_adams>
Component: Update (deprecated - use Eclipse>Equinox>p2)Assignee: Christophe Elek <celek>
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: P1 CC: klicnik, manahan, patmc, tim_koss
Version: 2.0   
Target Milestone: 2.0.2   
Hardware: PC   
OS: Windows 2000   
Whiteboard:

Description Greg Adams CLA 2002-07-08 12:05:22 EDT
It should be possible for a product to provide a root feature that bundles 
together many features and yet still allow those contained features to be 
separately updated. 

Currently the orthogonal issues of how to update, vs. how to bundle have 
incorrectly been tied together.

This allows the feature to look like a product, yet still allow its bundled 
elements to be updated. This is also important in the product upgrade scenarios.
Comment 1 Vlad Klicnik CLA 2002-07-18 23:08:36 EDT
I have put together a design note with a proposed 2.0.1 approach for this and 
several related defects. See the doc below (have to paste the split line 
together to get the whole url).

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-
home/doc/feature_extensions.html
Comment 2 Vlad Klicnik CLA 2002-07-18 23:14:00 EDT
Sorry, got the url wrong

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-
home/doc/working/feature_extensions.html
Comment 3 Dejan Glozic CLA 2002-09-05 20:26:53 EDT
Let us assume that we allow an additional attribute 'match' to be specified in 
the 'includes' element. This attribute would follow similar referencing rules 
used by dependent plug-ins (equivalent, compatible, greatedOrEqual etc.). In 
theory, this relaxation of the cross-feature referencing would allow us to 
update child features without breaking the parent reference (as long as the 
upgraded version still resolves according to the 'match' attribute).

What this solution implies is that the root-level feature that allows 
some 'wiggle' space to its children to upgrade individually may not be able to 
guarantee that they all work together. With each member feature individually 
updatable, possible combinations of versions may result in inability of the 
original suite provider to guarantee anything and therefore deletage any 
conflict resolution to providers of the child features (products in the suite). 

We are seeking feedback on the following: if each individual feature (product) 
in a suite can be independenly updated (possibly from its own update site), 
what expectations (if any) can be had regarding the stability of the suite as 
it randomly evolves through upgrades of the constituting products. Does a suite 
version make any sense (since it is invalidated as soon as the first member 
product is upgraded under it)?
Comment 4 Christophe Elek CLA 2002-09-23 07:35:32 EDT
Attribute 'match' has been added. Code for reconciliation has been changed.
released in 2.0.2 dev stream
Comment 5 Dejan Glozic CLA 2002-09-24 19:51:04 EDT
The problem will be addressed as specified in the following document:

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-
home/doc/working/feature_extensions.html
Comment 6 Dejan Glozic CLA 2002-09-24 19:51:31 EDT
Correction:

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-
home/doc/working/feature_extensions_2.html
Comment 7 Dejan Glozic CLA 2002-09-29 23:17:07 EDT
*** Bug 22879 has been marked as a duplicate of this bug. ***
Comment 8 Dejan Glozic CLA 2002-10-04 17:38:51 EDT
Implemented - ready to test.
Comment 9 Dejan Glozic CLA 2002-10-11 15:45:37 EDT
Tested