Jump to: navigation, search

Difference between revisions of "Equinox/p2/Galileo/Features"

< Equinox‎ | p2‎ | Galileo
(Tooling / plug-in developer)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This page highlights the features and function intended to be worked on for p2 during the [[Galileo]] release. The general themes for this release are robustness, ease of use, more direct value-add to our users, and be a better platform.
+
This page highlights the proposed features and function to implement in p2 during the [[Galileo]] release. The general themes for this release are robustness, ease of use, more direct value-add to our users, and be a better platform.
Readers interested in additional details can consult the [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=RT&product=Equinox&component=p2&target_milestone=3.5&target_milestone=3.5+M1&target_milestone=3.5+M2&target_milestone=3.5+M3&target_milestone=3.5+M4&target_milestone=3.5+M5&target_milestone=3.5+M6&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= 3.5 bug list].
+
Readers interested in additional details can consult the [https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&classification=RT&product=Equinox&component=p2&target_milestone=3.5&target_milestone=3.5+M1&target_milestone=3.5+M2&target_milestone=3.5+M3&target_milestone=3.5+M4&target_milestone=3.5+M5&target_milestone=3.5+M6&long_desc_type=allwordssubstr&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&status_whiteboard_type=allwordssubstr&status_whiteboard=&keywords_type=allwords&keywords=&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailtype1=substring&email1=&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=noop&type0-0-0=noop&value0-0-0= 3.5 bug list]. See also the [[Equinox/p2/Plan | p2 Milestone Plan]]
  
 
Note that this document evolved from the [[ Equinox_p2_3.5_contributions | 3.5 contributions page]] as it was on September 5 2008.
 
Note that this document evolved from the [[ Equinox_p2_3.5_contributions | 3.5 contributions page]] as it was on September 5 2008.
Line 6: Line 6:
 
== User Interaction ==
 
== User Interaction ==
 
; '''Improve overall usability'''
 
; '''Improve overall usability'''
: Review the overall usability of the current UI. See also [[Equinox_p2_UI_Plan | p2 UI plan]]. Priority: 1.
+
: [[Image:Ok_green.gif]] Review the overall usability of the current UI. See also [[Equinox_p2_UI_Plan | p2 UI plan]]. Priority: 1.
 
: Improve the error messages provided in case of inability to install. Priority: 1. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200380 Bug 200380]
 
: Improve the error messages provided in case of inability to install. Priority: 1. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=200380 Bug 200380]
 
: Allow for selection of the optional pieces. Priority: 2.
 
: Allow for selection of the optional pieces. Priority: 2.
  
 
; '''Closer integration with the VM'''
 
; '''Closer integration with the VM'''
: Provide a way to change the VM being used by Eclipse through the UI and thus trigger the appropriate provisioning actions. Priority: 1.
+
: [[Image:Error.gif]] Provide a way to change the VM being used by Eclipse through the UI and thus trigger the appropriate provisioning actions. Priority: 1.
  
 
; '''Promote the usage of an installer'''
 
; '''Promote the usage of an installer'''
: In order to promote bundle pooling, we need to promote the usage of an installer and make it more robust than it is today. Priority: 1.
+
: In order to promote bundle pooling, we need to promote the usage of an installer and make it more robust than it is today. Priority: 2.
  
 
; '''Tighter desktop integration'''
 
; '''Tighter desktop integration'''
Line 36: Line 36:
 
; '''Installation duplication'''  
 
; '''Installation duplication'''  
 
: Provide a way to create a new install from the existing one. Priority: 2.
 
: Provide a way to create a new install from the existing one. Priority: 2.
 
; '''Repository announcement/discovery'''
 
: Provide the ability for repositories announce themselves and also be discovered by p2. Priority: 3.
 
  
 
; '''Recovery application'''
 
; '''Recovery application'''
Line 48: Line 45:
 
==Download technology==
 
==Download technology==
 
; '''Download integrity through MD5/SHA1 and signature verification'''
 
; '''Download integrity through MD5/SHA1 and signature verification'''
: The integrity of downloaded artifacts can be verified using MD5/SHA1 hashing algorithms and/or signature verification.  Priority: 1
+
: [[Image:Ok_green.gif]] The integrity of downloaded artifacts can be verified using MD5/SHA1 hashing algorithms and/or signature verification.  Priority: 1
  
 
; '''Robustness / responsiveness / user friendliness'''
 
; '''Robustness / responsiveness / user friendliness'''
Line 54: Line 51:
  
 
; '''Pre-download'''
 
; '''Pre-download'''
: In order to ease some configuration changes (e.g. VM, locale, etc.), p2 should allow for some artifacts to be pre-downloaded.
+
: In order to ease some configuration changes (e.g. VM, locale, etc.), p2 should allow for some artifacts to be pre-downloaded. Priority: 2.
  
 
; '''Improve Adaptive downloads and mirror selection'''
 
; '''Improve Adaptive downloads and mirror selection'''
Line 67: Line 64:
 
; '''Media support'''
 
; '''Media support'''
 
: p2 supports and properly manages the interaction with repositories stored on removable and ''volume-oriented'' media such as CDs, DVDs.  Priority: 2.
 
: p2 supports and properly manages the interaction with repositories stored on removable and ''volume-oriented'' media such as CDs, DVDs.  Priority: 2.
 
  
 
== Update Manager replacement ==
 
== Update Manager replacement ==
 
; '''Replace update manager'''
 
; '''Replace update manager'''
: In addition of installing and configuring plug-ins, update manager constructs were being used by other components to drive certain aspects of the  UI, the branding, primary plug-in, etc. p2 needs to provide a replacement for these constructs. Priority: 1. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=196318 Bug 196318]
+
: [[Image:Progress.gif]] In addition of installing and configuring plug-ins, update manager constructs were being used by other components to drive certain aspects of the  UI, the branding, primary plug-in, etc. p2 needs to provide a replacement for these constructs. Priority: 1. [https://bugs.eclipse.org/bugs/show_bug.cgi?id=196318 Bug 196318]
  
 
; '''Mechanism to execute arbitrary code'''
 
; '''Mechanism to execute arbitrary code'''
Line 78: Line 74:
 
== Core facilities ==
 
== Core facilities ==
 
; '''API'''
 
; '''API'''
: p2 will graduate some of its provisional API into final APIs. Priority: 1.
+
: [[Image:Error.gif]] p2 will graduate some of its provisional API into final APIs. Priority: 1.
  
 
; '''Review touchpoint contribution model'''
 
; '''Review touchpoint contribution model'''
: The touchpoint contribution model needs to be reworked to facilitate the addition of touchpoints. Priority: 1. [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=203323 Bug 203323]
+
: [[Image:Ok_green.gif]] The touchpoint contribution model needs to be reworked to facilitate the addition of touchpoints. Priority: 1. [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=203323 Bug 203323]
  
 
; '''Reaction to configuration changes'''
 
; '''Reaction to configuration changes'''
: When some configuration aspects of p2 change, we need to properly react to those. Priority: 1.
+
: [[Image:Error.gif]] When some configuration aspects of p2 change, we need to properly react to those. Priority: 1.
  
 
; '''Dynamic provisioning of missing touchpoints'''
 
; '''Dynamic provisioning of missing touchpoints'''
Line 97: Line 93:
  
 
; '''Improve robustness of installation'''
 
; '''Improve robustness of installation'''
: Provide infrastructure to help touchpoint author create action that will leave the system in a good state in case of installation failure. Priority: 1.
+
: [[Image:Ok_green.gif]] Provide infrastructure to help touchpoint author create action that will leave the system in a good state in case of installation failure. Priority: 1.
  
 
; '''Improve the eclipse touchpoint'''
 
; '''Improve the eclipse touchpoint'''
: Add actions to the touchpoint to handle things like preferences, OSGi framework extensions, etc. Priority: 1.
+
: [[Image:Error.gif]] Add actions to the touchpoint to handle things like preferences, OSGi framework extensions, etc. Priority: 1.
  
 
; '''Dependency model improvement'''
 
; '''Dependency model improvement'''
: Add metadata construct to allow for a separation of the line-ups information from grouping information. Priority: 2.
+
: Add metadata construct to allow for separation of line-up information from grouping information. Priority: 2.
 
: Add metadata constructs allowing the expression of negation and choice. Priority: 3.
 
: Add metadata constructs allowing the expression of negation and choice. Priority: 3.
 
: Look at making the model of capabilities / requirements more general. Priority: 3.
 
: Look at making the model of capabilities / requirements more general. Priority: 3.
Line 111: Line 107:
  
 
; '''Garbage collection'''
 
; '''Garbage collection'''
: Need a way to ensure that a bundle pool is only used by one agent to avoid problems with GC. Priority: 1.
+
: [[Image:Progress.gif]] Need a way to ensure that a bundle pool is only used by one agent to avoid problems with GC. Priority: 1.
 
: Metadata garbage collector. Priority: 2. [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=218564 Bug 218564]
 
: Metadata garbage collector. Priority: 2. [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=218564 Bug 218564]
: GC the download cache. Priority: 1.
+
: GC the download cache. Priority: 2.
: GC the profile registry. Priority: 2.
+
: GC the profile registry. Priority: 1.
  
 
; '''Sequenced provisioning'''
 
; '''Sequenced provisioning'''
Line 120: Line 116:
  
 
; '''Multiple processes modifying the same profile registry / profile'''
 
; '''Multiple processes modifying the same profile registry / profile'''
: Lock the repo when writing from multiple profiles. Priority: 1.
+
: [[Image:Progress.gif]] Lock the repo when writing from multiple profiles. Priority: 1.
: Multiple process modifying the profile registry and the GC. Priority: 1.
+
: [[Image:Progress.gif]] Multiple process modifying the profile registry and the GC. Priority: 1.
  
 
; '''Profile initialization'''
 
; '''Profile initialization'''
Line 127: Line 123:
  
 
; '''Improve overall traceability of the install'''
 
; '''Improve overall traceability of the install'''
: Provide better trace of what is going on during the install (which server files have been downloaded, where we unzipped files, etc.). Priority: 1.
+
: [[Image:Error.gif]] Provide better trace of what is going on during the install (which server files have been downloaded, where we unzipped files, etc.). Priority: 1.
  
; '''Improve test suite'''
+
; '''Improve test suites'''
: We need to have a rich automated test suite as well as detailed smoke tests. Also we should encourage the eclipse team to use p2 for each I-build. Priority: 1.
+
: [[Image:Ok_green.gif]] We need to have a rich automated test suite as well as detailed smoke tests. Also we should encourage the eclipse team to use p2 for each integration build. Priority: 1.
 +
 
 +
; '''Repository enhancements'''
 +
: [[Image:Progress.gif]] Improve the model with which repositories are associated with each others. Priority: 1.
 +
: [[Image:Ok_green.gif]] Ability to do composite repositories. Priority: 1.
 +
: Provide the ability for repositories announce themselves and also be discovered by p2. Priority: 3.
  
 
== Tooling / plug-in developer ==
 
== Tooling / plug-in developer ==
Line 137: Line 138:
  
 
; '''Repository tooling'''
 
; '''Repository tooling'''
: Artifact and metadata repositories can be duplicated in whole or in part using a set of tools included in p2.  Priority: 1.
+
: [[Image:Ok_green.gif]] Artifact and metadata repositories can be duplicated in whole or in part using a set of tools included in p2.  Priority: 1.
 
: Provide IU / artifact correlation tool to check if all the artifacts of an IU are available in an artifact repository, to remove all the artifacts related to an IU, etc. Priority: 2.
 
: Provide IU / artifact correlation tool to check if all the artifacts of an IU are available in an artifact repository, to remove all the artifacts related to an IU, etc. Priority: 2.
  
; '''Metadata Authoring'''
+
; '''Metadata authoring'''
 
: p2 tooling will offer the ability to author installable units. Priority:2.
 
: p2 tooling will offer the ability to author installable units. Priority:2.

Latest revision as of 12:06, 8 December 2008

This page highlights the proposed features and function to implement in p2 during the Galileo release. The general themes for this release are robustness, ease of use, more direct value-add to our users, and be a better platform. Readers interested in additional details can consult the 3.5 bug list. See also the p2 Milestone Plan

Note that this document evolved from the 3.5 contributions page as it was on September 5 2008.

User Interaction

Improve overall usability
Ok green.gif Review the overall usability of the current UI. See also p2 UI plan. Priority: 1.
Improve the error messages provided in case of inability to install. Priority: 1. Bug 200380
Allow for selection of the optional pieces. Priority: 2.
Closer integration with the VM
Error.gif Provide a way to change the VM being used by Eclipse through the UI and thus trigger the appropriate provisioning actions. Priority: 1.
Promote the usage of an installer
In order to promote bundle pooling, we need to promote the usage of an installer and make it more robust than it is today. Priority: 2.
Tighter desktop integration
Provide ways to better integrate an Eclipse based application with the desktop (e.g. desktop shortcuts, registry keys...). Priority: 2.
Better shared install
Improve the management of shared installs to allow for the end user to not lose the extensions installed. Priority: 2.
Browser-based installation
Installation of new function can be triggered by users clicking on a link in a browser. Priority: 3. Bug 246628
Ease the installation of extension and bridges plug-ins
p2 should make it easier for bridge plug-ins to be found (e.g. The Mylyn/CDT integration). Priority: 2.
p2 should make it easier for extension plug-ins to be found (e.g. Webserver adaptors for WTP). Priority: 2.
Ease the management of complementary items
Provide a way to change language in the UI (and always automatically install the language pack). Priority: 2.
Provide a way to install doc automatically when available. Priority: 2.
Provide a way to install source for the installed bundles. Priority: 2.
Installation duplication
Provide a way to create a new install from the existing one. Priority: 2.
Recovery application
Provide a recovery application allowing the user to revert to a previous well-known state in case where the installation has been left in a broken state as a result of the last installation. Priority: 3.
Profile interchange
Profiles can be manipulated and exchanged between users. This allows previous setups to be stored and recreated and for users to exchange profiles. Priority: 3

Download technology

Download integrity through MD5/SHA1 and signature verification
Ok green.gif The integrity of downloaded artifacts can be verified using MD5/SHA1 hashing algorithms and/or signature verification. Priority: 1
Robustness / responsiveness / user friendliness
p2 needs to be robust when downloading from misbehaving servers and still provide an overall good responsiveness. Also it needs to provide more precise messages wrt download failures (e.g. distinguish between missing file, unknown host, no connectivity, etc.). Priority: 1.
Pre-download
In order to ease some configuration changes (e.g. VM, locale, etc.), p2 should allow for some artifacts to be pre-downloaded. Priority: 2.
Improve Adaptive downloads and mirror selection
p2 currently has a simple adaptive download scheme. This could be improved by taking into account aspect of the download such as artifact type available, artifact processing time, download speed, etc. Priority: 2
Restart from partial downloads
In presence of very large artifacts, p2 needs to be able to restart a download where it left off. Priority: 2.
Download time estimation
Estimation of the download time as the download progresses. Priority: 2
Media support
p2 supports and properly manages the interaction with repositories stored on removable and volume-oriented media such as CDs, DVDs. Priority: 2.

Update Manager replacement

Replace update manager
Progress.gif In addition of installing and configuring plug-ins, update manager constructs were being used by other components to drive certain aspects of the UI, the branding, primary plug-in, etc. p2 needs to provide a replacement for these constructs. Priority: 1. Bug 196318
Mechanism to execute arbitrary code
UM provided with install handlers a way to execute arbitrary code. p2 replaced this with the concept of touchpoints however lost some flexibility there. We need to reinstate this flexibility whether it is by automatic provisioning of touchpoints or by having an escape mechanism. Priority: 1.

Core facilities

API
Error.gif p2 will graduate some of its provisional API into final APIs. Priority: 1.
Review touchpoint contribution model
Ok green.gif The touchpoint contribution model needs to be reworked to facilitate the addition of touchpoints. Priority: 1. [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=203323 Bug 203323]
Reaction to configuration changes
Error.gif When some configuration aspects of p2 change, we need to properly react to those. Priority: 1.
Dynamic provisioning of missing touchpoints
p2 should allow for touchpoints to be dynamically downloaded before the installation starts. Priority: 2.
Making the agent fully dynamic
The p2 code base needs to be able to react to parts of its code coming and going dynamically. Priority: 2.
UI building blocks and programmatic configurability
Reusable building blocks of UI needs to be provided to facilitate the creation of other kinds of user interface. Priority: 2.
Provide configuration option of various p2 default dialogs to limit the coding necessary when using p2 controlled environments. Priority: 2.
Improve robustness of installation
Ok green.gif Provide infrastructure to help touchpoint author create action that will leave the system in a good state in case of installation failure. Priority: 1.
Improve the eclipse touchpoint
Error.gif Add actions to the touchpoint to handle things like preferences, OSGi framework extensions, etc. Priority: 1.
Dependency model improvement
Add metadata construct to allow for separation of line-up information from grouping information. Priority: 2.
Add metadata constructs allowing the expression of negation and choice. Priority: 3.
Look at making the model of capabilities / requirements more general. Priority: 3.
Linkability in metadata
Explore the addition of more links / "bookmarks" into an IU. Priority: 2.
Garbage collection
Progress.gif Need a way to ensure that a bundle pool is only used by one agent to avoid problems with GC. Priority: 1.
Metadata garbage collector. Priority: 2. [ https://bugs.eclipse.org/bugs/show_bug.cgi?id=218564 Bug 218564]
GC the download cache. Priority: 2.
GC the profile registry. Priority: 1.
Sequenced provisioning
Users and developers can mandate that various update and install operations must be executed prior to attempting subsequent operations. Priority: 2
Multiple processes modifying the same profile registry / profile
Progress.gif Lock the repo when writing from multiple profiles. Priority: 1.
Progress.gif Multiple process modifying the profile registry and the GC. Priority: 1.
Profile initialization
Provide the ability for profiles to be pre-populated with various capabilities and variables (e.g. VM, OS, etc.). Priority: 2.
Improve overall traceability of the install
Error.gif Provide better trace of what is going on during the install (which server files have been downloaded, where we unzipped files, etc.). Priority: 1.
Improve test suites
Ok green.gif We need to have a rich automated test suite as well as detailed smoke tests. Also we should encourage the eclipse team to use p2 for each integration build. Priority: 1.
Repository enhancements
Progress.gif Improve the model with which repositories are associated with each others. Priority: 1.
Ok green.gif Ability to do composite repositories. Priority: 1.
Provide the ability for repositories announce themselves and also be discovered by p2. Priority: 3.

Tooling / plug-in developer

Repository browsers and editors
p2 tooling includes browsers and editors for the artifact and metadata repositories. Users can view, add and remove elements from local and remote p2 repositories. Priority: 2.
Repository tooling
Ok green.gif Artifact and metadata repositories can be duplicated in whole or in part using a set of tools included in p2. Priority: 1.
Provide IU / artifact correlation tool to check if all the artifacts of an IU are available in an artifact repository, to remove all the artifacts related to an IU, etc. Priority: 2.
Metadata authoring
p2 tooling will offer the ability to author installable units. Priority:2.