Bug 21352 - Drill down updating should not be supported
Summary: Drill down updating should not be supported
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Update (deprecated - use Eclipse>Equinox>p2) (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows 2000
: P1 blocker (vote)
Target Milestone: 2.0.2   Edit
Assignee: Dejan Glozic CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-07-08 12:06 EDT by Greg Adams CLA
Modified: 2002-10-21 11:04 EDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Greg Adams CLA 2002-07-08 12:06:15 EDT
If a root feature “includes” another feature for the purpose of blocking its 
updates, then it should not be possible to update the inner feature using the 
update manager perspectives.

(note: there is a separate pr indicating that tying inclusion and support 
availability together is a problem)
Comment 1 Greg Adams CLA 2002-07-08 13:02:56 EDT
For V5 we are structuring our features to ensure that customers do not get 
updates from any lower level features. It is critical they not be able to 
circumvent this by going to the update manager perspective.
Comment 2 Vlad Klicnik CLA 2002-07-18 23:08:11 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 3 Vlad Klicnik CLA 2002-07-18 23:13:41 EDT
Sorry, got the url wrong

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-
home/doc/working/feature_extensions.html
Comment 4 Dejan Glozic CLA 2002-09-06 10:28:39 EDT
There are two levels of defence here, and we don't know how strict to be:

1) Users can go into the Update Manager and install a new version of Eclipse 
SDK. A product that includes an older version will continue to be active, but 
at runtime the newer version will 'win' due to the behavior of the Eclipse 
registry resolver. The net effect would be that the Eclipse-based product now 
runs with the version of the platform it was not originally installed with. We 
can fairly easily prevent this if the feature is marked as to prohibit it (see 
Vlad's proposal).

2) Users can download newer Eclipse manually, unzip it, and copy plug-ins from 
the /plugins directory into the /plugins directory of the Eclipse-based product.
We will not see anything strange but registry resolver will pick the newer plug-
ins.

3) The same as 2), but the user also manually copies /features from the new 
Eclipse drop into the /features of the Eclipse product. On startup, Update will 
detect new features and prompt the users to accept them. If accepted, they will 
be enabled, resulting in the situation identical to 1).

We propose to handle case 1) but not 2) and 3). If the user wants to 'doctor' 
their installed product manually (by copying files), we (Update) should not
play police (users can also hack their Windows registries too, for example,
and Windows allows them, even provides the tool for it - Regedit).

Is the problem sufficiently addressed by handling the case 1) only?
Comment 5 Dejan Glozic CLA 2002-09-24 19:50:10 EDT
We will address the problem as defined in 1) above. The fix is
described in:

http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-update-
home/doc/working/feature_extensions_2.html

As a result of further discussions, we may tweak the spec by
making the 'updateAllowed' flag recursive. What that would mean
is that feature included using 'updateAllowed=false' and 
all of its subsequent children are protected from being masked
by installing newer versions of them as root features (the
original spec affects only the included child).
Comment 6 Dejan Glozic CLA 2002-09-27 21:20:57 EDT
We have revised the initial intention. After further clarification, it became 
clear that the proposed attribute would only complicate matters and not resolve 
the main issue: the combination of the discovery URLs and the scope settings on 
the search page.

The following set of step creates a problem:

1) A feature has a discovery site that points at the same URL as the update site
2) That feature is included in a larger product
3) The larger product wants to exclusively control updates to all the features
in its hierarchy
4) Scope settings in the Available Updates search are set to include
'Sites to Visit' in scope

The above sequence of steps may result in the new version of the included
feature to show up as a result of a search, allowing users to update
included feature from its own site (discovery site).

We will close this loophole by preventing included features to add
discovery sites to the 'Sites to Visit' folder. Only root features will
be allowed to do so. If discovery sites are not contributed by the included
features, they will not be placed on the list of sites to search for
new updates.

If the user creates a bookmark by typing the site URL explicitly,
navigates to the feature and installs it that way, at that point
it is considered an advanced user and will be allowed to proceed,
assuming that he knows what he is doing.
Comment 7 Dejan Glozic CLA 2002-10-04 17:39:11 EDT
Implemented - ready to test.
Comment 8 Dejan Glozic CLA 2002-10-21 11:04:08 EDT
tested