Skip to main content
Jump to: navigation, search

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

< Equinox‎ | p2
(Past milestone plans)
(Additional Requirements)
Line 18: Line 18:
 
Here are some requirements that have surfaced so far.  They are not added in a milestone plan yet.
 
Here are some requirements that have surfaced so far.  They are not added in a milestone plan yet.
  
* (deferred from M4) Filtering of available IU view [https://bugs.eclipse.org/bugs/show_bug.cgi?id=204826 Bug 204826]
 
 
* Installation by drag and drop on a running eclipse
 
* Installation by drag and drop on a running eclipse
 
* Ability to update to a new version of a base and keep other plug-ins
 
* Ability to update to a new version of a base and keep other plug-ins

Revision as of 14:57, 7 December 2007

Provisioning UI Overview

There are currently two flavors of provisioning UI under development. To complicate matters, you can configure your workspace to run both at the same time if you desire.

  • The end user UI appears as a new menu item Software Updates (Incubation)... in the help menu of your eclipse application. To include this UI in your eclipse application, you want to include the plug-in org.eclipse.equinox.p2.ui.sdk in your launch.
  • The admin UI appears as either a perspective in your Eclipse launch, or as a stand-alone RCP app. The intention of this UI is to help the team develop, test, and use the provisioning infrastructure. Thus the UI exposes the underlying infrastructure and associated terminology to the end user, which is definitely not the approach we expect to take for end users. To include this UI, you want to include the plug-in org.eclipse.equinox.p2.ui.admin in your launch, or else run the RCP version of the app using the launch in org.eclipse.equinox.p2.ui.admin.rcp.
  • Note that if you enable the sdk UI in a launch of the admin UI, you can operate the admin UI and still launch the end-user UI using the menu item in the help menu. If you do this, you will notice multiple property pages for repositories and IU's, one with developer/implementation info, and the other with more end-user info.

Milestone plan

  • M5
    • API Cleanup and Javadoc
    • Understand dependencies between platform and update UI
    • Progress.gif Polish install and update scenarios
      • Additional descriptive info about what is to be installed
      • Presenting total sizing info in addition to / instead of individual sizes

Additional Requirements

Here are some requirements that have surfaced so far. They are not added in a milestone plan yet.

  • Installation by drag and drop on a running eclipse
  • Ability to update to a new version of a base and keep other plug-ins
  • Ability to install from other eclipse installs on the machine
  • Install from a click on the webpage
  • Silent installation
  • Support installation even when there are errors in the configuration
  • Admin/tooling
    • Repo management
      • Create and populate repos
      • Manage repo content
      • Category definition
    • Defining and persisting profiles for mass deployment to users

Past milestone plans

  • M4
    • Progress.gif Polish install and update scenarios
      • Ok green.gif Notify of auto-download separate from install
      • Ok green.gif Preferences for reminding user of available updates Bug 207493
      • Progress.gif Performance/progress when resolving/planning
    • Ok green.gif Improved support for browsing repos
      • Ok green.gif IU categories Bug 203115
      • Ok green.gif remove duplicates, better sorting
      • Ok green.gif show only latest versions
    • Ok green.gif Refactoring and code polish items
      • Ok green.gif Clean up adapter usage
      • Ok green.gif Clean up/simplify colocated repo handling
      • Ok green.gif Use deferred content providers for repo content
      • Ok green.gif Allow UI app to specify repo taxonomy via queries
    • Ok green.gif UI for Revert Bug 205223
    • Ok green.gif Improved way to present licenses and remember accepted licenses Bug 205232
    • Ok green.gif Admin UI features as needed by team
  • M3
    • End user UI
      • Ok green.gif Improve workflow and information pre-<install/update/uninstall>
        • Ok green.gif Prompting replaced by informational wizard Bug 204321
        • Ok green.gif Size/time estimation on install/update (Depends on Bug 201488)
        • Ok green.gif One entry point per group Bug 204823
        • Ok green.gif Detect invalid states on install/update/uninstall
      • Ok green.gif Polling for software updates and associated user prefs
        • Ok green.gif Automatic updating
        • Ok green.gif Alert me when updates available
        • Progress.gif Ability to download and then notify
    • Ok green.gif Admin UI
      • Ok green.gif Artifact repo view shows artifact descriptors, processing steps, etc.
  • M2
    • Install, Uninstall, and/or update IU's from running profile
      • user views installed IU's in the current profile
      • user can manage repositories as an advanced feature (separate button on dialog)
        • repositories are colocated (no distinction between metadata and artifact repo)
      • UI prequalifies the install
        • figure out if the install is valid using oracle
        • [deferred] use advanced oracle to flag any invalid states
        • [deferred] use advanced oracle to precompute info such as download size/time, etc.
      • user can uninstall an installed IU
      • user can update an installed IU
    • Repository naming
      • repo level
      • [deferred] user can override repo name
    • Better filtering of repos and IU's (show only what's relevant to end user)
    • Refactor drag support into common UI project
    • Filtering of IU's based on entry point concept
      • Give the ability to name what is being installed
    • Admin UI can launch end user UI from selected profile in profile view
      • should be able to disable colocated repo management
    • AdminUI views show enhanced info about objects (multiple columns)
    • AdminUI and User UI contribute different property pages
  • M1
    • Browse repositories
      • Add/remove repositories
      • Browse IU's in a metadata repository
      • Install IU from a metadata repository into a selected profile
    • Browse profiles
      • Add/remove profiles
      • Browse IU's in a profile
      • Uninstall IU

Plugin Structure

  • org.eclipse.equinox.p2.ui contains code we think is useful for any SWT/JFace-based provisioning UI.
    • Content and label providers for showing provisioning objects in views
    • View filtering
    • Widget groups for creating/editing provisioning objects
    • Common drag/drop adapters with pluggable prompting
    • Reusable actions and operations for provisioning commands
    • Pluggable update and install UI
    • Issues not addressed yet
      • Evolve the current undo support to use the underlying engine history, not UI-level implementation
      • Scalability issues - lazy content providers for repo access (iteration vs. collection)
      • consider UI forms vs. dialogs
      • Input validators for provisioning info (repo URLs, capabilities, touchpoint types, etc.)
      • Automatic checking for available updates with pluggable notification style
  • org.eclipse.equinox.p2.ui.sdk contains the update manager replacement UI. You'll see terminology such as "feature" and "site" used in this UI.
  • org.eclipse.equinox.p2.ui.admin is the current developer/administrator UI.
  • org.eclipse.equinox.p2.ui.rcp is an RCP application of the admin UI

Eclipse SDK UI

Different workflows drive the development of this UI. The first priority is to deliver the equivalent functionality of the current Update Manager UI. Note that we are not saying we are solving all of these problems. Part of defining the workflow may be saying that we aren't addressing it yet.

  • User is looking for a specific software component to add to their environment
    • Simple install
      • user browses repositories for software to install/update
      • UI precomputes info such as required software, download size/time, etc
      • user accepts licenses, etc.
    • Install requires updating (or downgrading) of existing components
    • Conflicts arise in the requirements for various components
  • Software updating
    • User looks for updates of software already installed
    • User wants automatic checking/notification of available updates
    • Silent/automatic updating
  • User wants to remove a software component from their environment
    • Simple uninstall
    • Associated uninstall of required software
    • How much does the user care about complete rollback (downgrading components that were upgraded by an install, etc.)
  • User wants to know what software is available for download (browse, search by function or name, etc.)
  • User's environment is defined explicitly by someone external (administrator)
    • Upgrade or install to a new specification
    • Compare current installation to required one
  • User wants to return to some previously known state (rollback to a named state)

Admin UI

The following are improvements for the admin UI

  • General UI polish issues
    • persisting user choices (view expansions, etc.)
    • more flexible work flows (create a new profile from profile chooser, etc.)
    • configurable label providers to control what is seen in various views

Copyright © Eclipse Foundation, Inc. All Rights Reserved.