Jump to: navigation, search

Difference between revisions of "Equinox/p2/User Interface"

< Equinox‎ | p2
(Summary of Problems)
Line 136: Line 136:
 
=== Scenario 6: What's wrong with my configuration? ===
 
=== Scenario 6: What's wrong with my configuration? ===
  
p2 currently does not provide any diagnostic tools to help users when plug-ins they expect to be installed are not there, or if there are compatibility conflicts with plug-ins.  However, users can choose to revert to a previously known configuration if there is a problem.
+
p2 currently does not provide any diagnostic tools to help users when plug-ins they expect to be installed are not there, or if there are compatibility conflicts with plug-ins.  Users must use the ''Help > About'' mechanism to see what features or plug-ins are installed.
 +
 
 +
To resolve a problem, users can choose to revert to a previously known configuration.
  
 
*Help >  
 
*Help >  

Revision as of 16:30, 19 June 2008

This page captures user scenarios in the p2 User Interface and discusses problems and issues in the workflow.

Original Goals

Most of the goals were derived from problems observed/reported in the previous UI (Update Manager). See Equinox p2 UM workflows for the equivalent scenarios.

  • Reduce click/decision counts
  • Move advanced concepts out of main workflows
    • required software details (automatic resolution)
    • repo management (alternate views of content)
    • mirror selection (automatic)
    • install locations (not supported)
  • Automatic updating should not interrupt workflow
  • Make it easier for users to get content they find on the web
  • Integrate "what do I have" with "what can I get"
  • Integrate "what do I have" with "what updates are available"
  • User-oriented error messages, higher level explanations
  • Code structured for multiple levels of integration (pluggable policies, different host dialogs, building blocks)

Scenarios

Scenario 1: Check for updates

  • Help >
  • Software Updates...

P2InstalledList.jpg

  • select Installed Software page
  • Update...

P2UpdateDialog.jpg

  • Next

P2LicenseDialog.jpg

  • I accept...
  • Finish

Click/decision count

  • 7 clicks/decisions (vs. 14 for UM)
  • Can reduce to 5 once a license has been accepted/remembered (vs. 12 with UM automatic mirror selection)

Scenario 2: What add-ons can I get?

  • Help >
  • Software Updates...

P2AvailableList.jpg

  • select Available Software page
  • expand each site, then categories, and checkmark desired items
    • P2BySite.jpg
  • OR view by categories, expand categories, and checkmark desired items
    • P2ByCategory.jpg
  • OR view by name, checkmark desired items
    • P2ByName.jpg
  • OR filter by name from any view
    • P2Filtered.jpg
  • Install...
  • Progress dialog followed by Install dialog
  • Scenario continues similar to update completion

Click/decision count

  • 3 clicks/decisions to get to browsing mode (vs. 7 for UM)
  • alternate ways to find content (UM by site only)
  • ability to find by name
  • once items are selected for install, 3 clicks to finish (Next, I accept..., Finish) as in update scenario. One click if license was previously accepted. (UM is 4 clicks)

Scenario 3: Found something cool on the web

Setup: User finds software with an update site reference on the web

 P2WebContent.jpg
  • Help >
  • Software Updates...
  • select Available Software page
  • drag URL from browser to list (this adds the site and expands it)

P2DragResult.jpg

Click/decision count

  • 4 clicks/decisions to get new content shown in UI (vs. 14 for UM)
  • once items are selected for install, 3 clicks to finish (Next, I accept..., Finish) as in update scenario. One click if license was previously accepted. (UM is 4 clicks)

Scenario 4: What do I have?

  • Help >
  • Software Updates...
  • select Installed Software page

P2InstalledList.jpg

Click/decision count

  • 3 clicks/decisions to see high level of what user installed (vs. 4 for UM)
  • No way to get more detail (UM provides drill-down detail)
  • No link from installed view to more detailed Help > About information

Detailed feature view of what's installed

  • Help >
  • About Eclipse SDK
  • Feature Details

P2AboutFeatureDetail.jpg

Detailed plug-in view of what's installed

  • Help >
  • About Eclipse SDK
  • Plug-in Details

Scenario 5: Automatic Updating

Like Update Manager, p2 defines preferences for the user to set up automatic update scheduling on every startup of Eclipse, or at daily or weekly scheduled times. Users can also set a preference so that updates are automatically downloaded before the user is ever notified that updates have been found. In addition, users can set reminder options so that they can ignore update notifications and be reminded later.

Setup: User is working and updates have been discovered and/or downloaded

  • Popup notifies user of available updates. User can keep working.

P2UpdateNotify.jpg

  • User can click on the popup to review the updates when ready. This will result in the update dialog shown in Scenario #1
  • User can ignore popup until ready to deal with it
  • User can dismiss popup and retrieve the update list again by clicking on the update affordance in the status bar

Click/decision count

  • Work is not interrupted, user can ignore updates until ready or dismiss popup until ready
    • After clicking on popup, 3 clicks (or 1 if license has previously been accepted) to install the updates (vs. 7 for UM)
    • If popup is dismissed, 4 clicks (or 2 if license has previously been accepted) to reactivate and complete update dialog (vs. 14 clicks/decisions to manually recheck for updates with UM)
    • Reminder options allow the 3-click (or 1 if license has previously been accepted) option at specified intervals

Scenario 6: What's wrong with my configuration?

p2 currently does not provide any diagnostic tools to help users when plug-ins they expect to be installed are not there, or if there are compatibility conflicts with plug-ins. Users must use the Help > About mechanism to see what features or plug-ins are installed.

To resolve a problem, users can choose to revert to a previously known configuration.

  • Help >
  • Software Updates...

P2InstalledList.jpg

  • select Installed Software page
  • Revert Configuration...

P2RevertDialog.jpg

  • browse dated snapshots and choose desired configuration
  • Finish
  • User prompted to restart

Click/decision count

  • 4 clicks to browse revert history

Scenario 7: What sites am I using?

The UM scenarios lead the user through site selection every time the user searches for content. The metaphor is that the user is always performing a "search" and the wizard leads them through the site selection each time (including the ability to add, remove, import, or export sites) each time the search task is performed.

In p2, the metaphor is that the user "browses" all of the software available. The system automatically searches all sites when looking for updates or finding software required by other software. The default view when browsing available software is grouping the software by site (this is a familiar presentation for UM users). However, users can also view by category or by name. Sites can be added using drag and drop, but to remove sites, disable sites, import/export sites, users must use the Available Software Site dialog.

  • Help >
  • Software Updates...
  • select Available Software page
  • Manage Sites...

P2ManageSites.jpg

Click/decision count

  • 4 clicks to get to a page where sites can be configured
  • Task is defined as "Manage Sites..." (In UM, user must know to use the search wizard to get to this task).

Houston, we have a problem

Egad! Where did all of those sites come from?

There is an inherent mismatch between Update Manager's model of repositories and p2's model. It turns out that UM lets producers define relationships between software and its site. Features can define discovery sites and update sites. Sites can define associated sites. UM traverses this site structure under the covers when looking for updates and thus the user never has to think about where their updates are coming from. UM can be very specific in its determination of which sites are needed for an operation.

p2 does not currently define any relationships between content and sites. There is simply one pool of sites used when browsing software or searching for updates. This works nicely when the pool of sites is small. However, in order to achieve backward compatibility with UM, p2 must honor all previously referenced sites when it encounters old update sites and site references inside features. This causes a performance problem because the site pool would get very large, and often the referred sites are old sites which must be parsed and converted to p2 sites when first encountered. For example, the Ganymede site refers to over 60 other sites.

This caused a serious performance hit when working with older sites. Since p2 was near the end of the release cycle, we had to solve the problem without seriously changing the existing workflows. We had to define the notion of enabled and disabled sites in p2. The checkmarked sites are those that are enabled, and therefore their content is shown in the Available Features page and used when checking for updates.

The user must know to visit the Available Software Sites page and enable sites when looking for certain updates, whereas UM would have found them automatically.

Summary of Problems

  • First-time access of repositories has same performance problems (in some cases worse) as UM did. Original assumptions were that repo information was more quickly/easily accessed and cached. User may have to wait a long time for content to fill in on available software page.
  • Original modeless ("dashboard") design forced to become modal due to implementation problems with progress reporting, keyboard handling, inconsistency with rest of Eclipse
  • Too much repo management forced on user (enabling and disabling sites, must figure out where updates are located)
  • We haven't improved error reporting (some find it worse) - need to decipher resolution errors and report in user-friendly way
  • We removed detail about software requirements/underlying libraries. Some users want to know. Inconsistencies remain due to late-breaking issues (need to show licenses for all things even though user doesn't see those things anywhere else).