Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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

< Equinox‎ | p2
(End user workflows =)
 
(65 intermediate revisions by one other user not shown)
Line 1: Line 1:
__TOC__
+
This page provides links to the various design and discussion documents surrounding the p2 User Interface.
== Goals of a new Provisioning UI ==
+
With the delivery of a new provisioning infrastructure must come a new UI.  The following goals have been driving the development of the UI for p2.
+
* Gradual discovery.  "The best update UI is no UI."  Consider the user of an eclipse-based RCP product in addition to SDK.  The update UI should be unobtrusive and the RCP app user shouldn't even have to know about it to get their basic updates and work done.
+
* Operate using modeless interaction and background processing to keep from blocking user when performing network operations
+
* Most update functions should be consolidated in a simple "dashboard."  Managing the current configuration and looking for what's out there should be better integrated.
+
* Code should be structured so that eclipse-based products can easily extend, reuse, assemble their update UI without having to rewrite. 
+
* Notifications and errors reported should be understandable by the user.  If something wasn't directly triggered by user, the notification should not interrupt their work.
+
* Make it easier for the user who finds something cool via the web to get it into Eclipse
+
  
== End user workflows ==
+
== Workflows ==
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.
+
* [[Equinox p2 UM workflows]] summarizes the Eclipse 3.3 Update Manager scenarios
* User is looking for a specific software component to add to their environment
+
* [[Equinox p2 UI 3.4 workflows]] summarizes the goals for the Eclipse 3.4 (p2) Update UI. It includes scenarios and compares click counts to the 3.3 UI.
** Simple install
+
* [[Equinox p2 UI 3.5 workflows]] provides mockups for proposed changes in 3.5
*** 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 never sees the update UI, it just happens
+
* 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)
+
  
== How to Run the UI ==
+
== Design discussions ==
The update UI (aka 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'''.
+
* [[Equinox p2 UIWG Walkthrough|p2 UIWG First Walkthrough]] includes the both the prep info and the minutes from the 6/25/2008 walkthrough of the p2 UI at the UIWG.
 +
* [[Equinox p2 UI Use Cases]] includes discussion of user personas, important user scenarios, and discussion of changes that may be necessary in the 3.5 p2 UI
 +
*[[Equinox/p2/UIWG Walkthrough 2|p2 UIWG Second Walkthrough]] includes the prep info for the 10/1/2008 walkthrough of the p2 UI at the UIWG
  
There is also an "admin UI" which allows the p2 team to drive the p2 infrastructure in a multi-profile scenario.  This UI is also used as the provisioning agent in the current milestone builds.  It can appear as either a perspective in your Eclipse workbench, or as a stand-alone RCP app.  Since the intention of this UI is to help the team develop, test, and use the provisioning infrastructure, 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 get the plug-in '''org.eclipse.equinox.p2.ui.admin''', or else run the RCP version of the app.
+
== Development Plans ==
 
+
* [[Equinox p2 UI Plan]] contains the working plan for the UI current release
Currently, if you include both UI plug-ins in your launched workbench, or you include the sdk UI in the launch of the RCP app, 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.
+
* [[Equinox p2 UI Eclipse 3.4 Plan]] contains milestone plans from the 3.4 release
 
+
== Milestone plan ==
+
*M5
+
** UI for signature verification
+
** [[Image:Progress.gif]]Performance issues
+
*** Automatic update checker runs sizing phases in advance
+
*** [[Image:Ok_green.gif]]Background resolving/sizing for user-triggered updates
+
*** [[Image:Ok_green.gif]]Rework model to reference ids (profile ids, repo URLs) in lieu of objects
+
** Prefs for add-ons
+
*** Directory watcher
+
*** Artifact GC
+
** Understand the tie between the UI and the Update manager and find a replacement story (Susan, Pascal)
+
** Improve property pages for IUs in end user UI
+
** [[Image:Progress.gif]] Filtering of available IU view [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=204826 Bug 204826]]
+
** Summary info for install/update wizards
+
** Automatic updates affordance and popup cosmetics
+
**[[Image:Progress.gif]] Revisit filtering of available IU view [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=204826 Bug 204826]]
+
** Repo names via drag/drop and clipboard [[https://bugs.eclipse.org/bugs/show_bug.cgi?id=207220 Bug 207220]]
+
** API Cleanup and Javadoc
+
 
+
== 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
+
* Install from a click on the webpage
+
* Silent installation
+
* Support installation even when there are errors in the configuration
+
 
+
== Past milestone plans ==
+
 
+
*M4
+
** [[Image:Progress.gif]] Polish install and update scenarios
+
***[[Image:Ok_green.gif]] Notify of auto-download separate from install
+
***[[Image:Ok_green.gif]] Preferences for reminding user of available updates [https://bugs.eclipse.org/bugs/show_bug.cgi?id=207493 Bug 207493]
+
***[[Image:Progress.gif]] Performance/progress when resolving/planning
+
** [[Image:Ok_green.gif]] Improved support for browsing repos
+
*** [[Image:Ok_green.gif]] IU categories [https://bugs.eclipse.org/bugs/show_bug.cgi?id=203115 Bug 203115]
+
*** [[Image:Ok_green.gif]] remove duplicates, better sorting
+
*** [[Image:Ok_green.gif]] show only latest versions
+
** [[Image:Ok_green.gif]] Refactoring and code polish items
+
*** [[Image:Ok_green.gif]] Clean up adapter usage
+
*** [[Image:Ok_green.gif]] Clean up/simplify colocated repo handling
+
*** [[Image:Ok_green.gif]] Use deferred content providers for repo content
+
*** [[Image:Ok_green.gif]] Allow UI app to specify repo taxonomy via queries
+
** [[Image:Ok_green.gif]] UI for Revert [https://bugs.eclipse.org/bugs/show_bug.cgi?id=205223 Bug 205223]
+
** [[Image:Ok_green.gif]] Improved way to present licenses and remember accepted licenses [https://bugs.eclipse.org/bugs/show_bug.cgi?id=205232 Bug 205232]
+
** [[Image:Ok_green.gif]] Admin UI features as needed by team
+
 
+
* M3
+
** End user UI
+
*** [[Image:Ok_green.gif]] Improve workflow and information pre-<install/update/uninstall>
+
**** [[Image:Ok_green.gif]] Prompting replaced by informational wizard [https://bugs.eclipse.org/bugs/show_bug.cgi?id=204321 Bug 204321]
+
**** [[Image:Ok_green.gif]] Size/time estimation on install/update (Depends on [https://bugs.eclipse.org/bugs/show_bug.cgi?id=201488 Bug 201488])
+
**** [[Image:Ok_green.gif]] One entry point per group [https://bugs.eclipse.org/bugs/show_bug.cgi?id=204823 Bug 204823]
+
**** [[Image:Ok_green.gif]] Detect invalid states on install/update/uninstall
+
*** [[Image:Ok_green.gif]] Polling for software updates and associated user prefs
+
**** [[Image:Ok_green.gif]] Automatic updating
+
**** [[Image:Ok_green.gif]] Alert me when updates available
+
**** [[Image:Progress.gif]] Ability to download and then notify
+
** [[Image:Ok_green.gif]]  Admin UI
+
*** [[Image: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
+
 
+
== Tooling issues ===
+
There are issues outside of the scope of end users that are not covered in the end user UI.  It's not clear whether these will be added to the Admin UI or whether they are separate tools for builds or publishes.
+
* Repo management
+
** Create and populate repos
+
** Manage repo content
+
** Category definition
+
* Defining and persisting profiles for mass deployment to users
+
  
 +
== Testing ==
 +
* [[Equinox/p2/UI Manual Tests]] contains the UI manual tests
  
 +
== How-to's ==
 +
* [[Equinox/p2/Adding Self-Update to an RCP Application]]
  
 
[[Category:Equinox p2|User Interface]]
 
[[Category:Equinox p2|User Interface]]

Latest revision as of 15:30, 3 January 2011

This page provides links to the various design and discussion documents surrounding the p2 User Interface.

Workflows

Design discussions

  • p2 UIWG First Walkthrough includes the both the prep info and the minutes from the 6/25/2008 walkthrough of the p2 UI at the UIWG.
  • Equinox p2 UI Use Cases includes discussion of user personas, important user scenarios, and discussion of changes that may be necessary in the 3.5 p2 UI
  • p2 UIWG Second Walkthrough includes the prep info for the 10/1/2008 walkthrough of the p2 UI at the UIWG

Development Plans

Testing

How-to's

Back to the top