Bug 398653 - Support for optional install
Summary: Support for optional install
Status: RESOLVED FIXED
Alias: None
Product: MPC
Classification: Technology
Component: Install (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 enhancement (vote)
Target Milestone: 1.4.0   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 401457 430110 464112 (view as bug list)
Depends on: 453250
Blocks:
  Show dependency tree
 
Reported: 2013-01-21 11:45 EST by Tim deBoer CLA
Modified: 2015-05-28 06:16 EDT (History)
6 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tim deBoer CLA 2013-01-21 11:45:22 EST
MPC currently assumes that all features that are part of a Marketplace entry should be installed by default. In our experience most users don't notice the second page of the wizard that allows you to deselect these options, which means that most users install everything.

The problem is worst if you have (for example) one feature that you expect only 40% of your users to need, but is >15Mb to download. Since you don't want to penalise all users with the larger content, the only option today is to create a second Marketplace entry just for that content, and hence potentially also split your download stats, upkeep, etc.

The minimum bar to fix this would be a 'not selected by default' option on each feature... even better would be custom or data-driven install panels that allow some features to be off by default and prompt the user via logical install options instead of feature names.
Comment 1 Konstantin Komissarchik CLA 2014-09-26 13:56:18 EDT
This would be extremely useful for Oracle as well. We have solutions that are composed of a tools feature along with half a dozen or so different versions of the tooled framework. We want all of the versions to be accessible for install through MPC, but we really only want the latest pre-selected by default.

Ideally, there should be too flags for each feature:

required (boolean) - cannot be deselected

selected (boolean) - defaults to true and disabled if required is true
Comment 2 Carsten Reckord CLA 2014-11-25 16:16:02 EST
Not only would this be useful for solutions to manage their optional parts better, it would also solve the long-standing issue of determining whether a solution should be considered installed or based on the installed features. In the future, a solution would then be considered as installed exactly if all its required features are installed.

I'd really like to get this done for Mars. Here's what I think needs to happen in order to implement this:

1. The two flags need to be added to the server-side Marketplace data.

2. We will need a way to interact with and manage installed solutions that contain optional parts. We should be able to
a) Uninstall the whole thing
b) Update installed features (do you think we need a selective update capability for selected sub-features here?)
c) Uninstall optional features that are currently installed
d) Install additional optional features not currently installed
I have an idea for that, which I'll post as a separate comment in a moment...

3. We need to decide how to deal with legacy entries. I think there are two parts to that:
a) Server-side: Get maintainers to add this data to their solution - this should be enforced when an entry is updated.
b) Client-side: We have the special case here that no feature is marked required. In this case, keep the current behavior: all features are selected by default and all can be deselected; the solution is considered installed if at least one of its features is installed. Point 2 will still allow users to deal with solutions that are detected as installed erroneously, essentially fixing bug 401457.
Comment 3 Carsten Reckord CLA 2014-11-25 16:17:50 EST
I've opened bug 453250 for the required server-side changes.
Comment 4 Carsten Reckord CLA 2014-11-25 17:00:15 EST
Regarding 2.:

We currently have one or two buttons on solutions in MPC: One is either "Install" or "Uninstall" depending on the install state, the other is an optional "Update" that becomes available if there is an update for any of the solutions's features.

I don't think we should add any more buttons. In fact, I've already cheated a bit with the install numbers next to the buttons - abbreviating them to make room when both buttons are visible. Instead, I think we could turn the existing second button into a multi-function "Manage" button that provides all the functions in a context-sensitive manner. Looking at the possible operations, I would suggest:

If the solution isn't installed:
- "Install"

If the solution is installed:
- "Manage" to open the "Selected Features" page to change optional features (available only if there are optional features)
- "Update" (available only if updates are available)
- "Uninstall"

I would turn the button into a combo button with a menu if there is more than one possible operation on the entry (technically by using a mini swt toolbar). The default action could depend on the state, i.e. "Update" if an update is available, otherwise "Manage", or just "Uninstall" if no optional features are available to be configured. The additional actions would be available through the dropdown menu.

What I'm not quite sure about is if it's a good idea to put the "Uninstall" function into the menu or keep it as a separate button for visibility's sake. What do you think?
Comment 5 Carsten Reckord CLA 2014-11-26 07:40:40 EST
*** Bug 430110 has been marked as a duplicate of this bug. ***
Comment 6 Carsten Reckord CLA 2014-11-26 07:59:55 EST
*** Bug 401457 has been marked as a duplicate of this bug. ***
Comment 7 Ricardo Gladwell CLA 2015-01-07 11:39:27 EST
Is there an ETA for a fix for this? Users cannot install my third party plugin at all through Eclipse Marketplace and are reporting issues with us.
Comment 8 Carsten Reckord CLA 2015-01-07 12:15:58 EST
This is planned for the Mars release this summer. The actual work will probably be done by M6, which is planned for March, 27.

BUT if users cannot install your entry at all, then that is probably a bug in itself. What exactly is the install problem that you see? Can you point me to your entry on the marketplace?
Comment 9 Carsten Reckord CLA 2015-04-08 04:20:27 EDT
*** Bug 464112 has been marked as a duplicate of this bug. ***
Comment 10 Carsten Reckord CLA 2015-05-28 06:16:23 EDT
This has been solved with commit fdece9586098167fd0f61d7d0160be945dc126d2. 

Installed status is now calculated based on required features, initial selection on the feature selection page is adapted according to 'required' and 'selected' options, and there is a new 'Change' action for installed entries on the 'Installed' tab to install/uninstall optional features for an entry.