What's new in p2 (2009)?

1,162 views

Published on

After a brief recap of what p2 is and depicting the overall vision, the presenter will show how this vision is realized and how the improvements made to both the runtime (core and UI) and the tooling in Galileo pave the way for a better provisioning solution at Eclipse.

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,162
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
41
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • This is made possible because of immutability IU and artifacts
  • Refer to the continuum
  • What's new in p2 (2009)?

    1. 1. What’s new in p2? A year later Pascal Rapicault IBM Rational TM , p2 lead EclipseCon, March 2009
    2. 2. p2 is installing! <ul><li>An extensible provisioning platform </li></ul><ul><li>Install and update technology since 3.4 </li></ul><ul><ul><li>New UI, simplified workflow </li></ul></ul><ul><ul><li>Manage Eclipse, RCP and more </li></ul></ul><ul><ul><ul><li>exe, ini, bundles, registry keys, native code, … </li></ul></ul></ul><ul><ul><li>Shared bundles across Eclipse-based products </li></ul></ul><ul><li>A provisioning solution for OSGi™ systems </li></ul><ul><ul><li>Managing non-running instance </li></ul></ul><ul><ul><li>Start level, framework extension </li></ul></ul><ul><ul><li>Fine-grained dependency management </li></ul></ul>
    3. 3. The year by numbers <ul><li>650 bug / enhancements fixed (as of March 2009) </li></ul><ul><ul><li>Including the infamous, “I can’t cancel the download”, “The error message is useless”, “The UI sucks”, etc… </li></ul></ul><ul><li>7 active committers </li></ul><ul><li>3 “will be committers” contributors from Cloudsmith and EclipseSource </li></ul><ul><li>A lot of users (everyone is a user!) </li></ul><ul><li>Some extenders </li></ul><ul><li>1 baby delivered </li></ul><ul><li>2 babies designed </li></ul>
    4. 4. p2 in wild <ul><li>Installer for products (EPP Wizard, WindRiver, Motorola, IBM Rational, etc.) </li></ul><ul><li>Server managed deployment solution and distros (Genuitec, EclipseSource, Cloudsmith) </li></ul><ul><li>Remote management of device (EclipseSource) </li></ul><ul><li>Buckminster (Cloudsmith) </li></ul><ul><li>Provisioning of server side (EclipseSource) [1] </li></ul><ul><li>Cloud provisioning (EclipseSource) </li></ul><ul><li>Repository management (Sonatype) </li></ul>[1] - Short talk on using p2 on the server - http://www.eclipsecon.org/2009/sessions?id=423
    5. 5. Outline <ul><li>Update / Extend / Service </li></ul><ul><li>Initial deployment </li></ul><ul><li>Build and publish </li></ul><ul><li>Development </li></ul>
    6. 6. Enough concepts to follow <ul><li>Installable Units (aka IU, or Metadata) </li></ul><ul><ul><li>Metadata describing what to install </li></ul></ul><ul><ul><li>Typically stored into a repository </li></ul></ul><ul><li>Artifacts </li></ul><ul><ul><li>The actual bytes you want to install </li></ul></ul><ul><ul><li>Stored in a repository </li></ul></ul><ul><ul><li>p2 offers a continuum from initial installation to serviceability </li></ul></ul>
    7. 7. Update / Extend / Service Initial deployment Build and publish Development
    8. 8. Updating, extending, … <ul><li>Two usage mode </li></ul><ul><ul><li>External mode, the p2 plug-ins are external to the application (e.g an installer) </li></ul></ul><ul><ul><li>Co-hosted mode, the p2 plug-ins are in your application (e.g. the Eclipse SDK). This mode still allows the application to be externally managed. </li></ul></ul><ul><li>User interface </li></ul><ul><ul><li>The p2.ui.* bundles, offering reusable and customizable dialogs </li></ul></ul><ul><ul><li>Agent running in the background checking for updates </li></ul></ul><ul><ul><li>Command line using the director application </li></ul></ul>
    9. 9. New GUI in 3.5 <ul><li>Smoother integration </li></ul><ul><li>Improved disconnected mode </li></ul><ul><li>Improved general responsiveness </li></ul><ul><li>Redesigned using the feedback from the UIUWG </li></ul>
    10. 10. The controlled mode <ul><li>Notice that the entry to choose a site is not available. </li></ul><ul><li>The preference page to add repo is also removed. </li></ul>
    11. 11. Granularity of what is visible <ul><li>Installation history, and installed software page can be removed </li></ul><ul><li>Ability to only make the update command, or the an install command. </li></ul>
    12. 12. Check for update on startup Details on UI customization available at: http://wiki.eclipse.org/Equinox/p2/Adding_Self-Update_to_an_RCP_Application
    13. 13. Non UI things improved <ul><li>Explanation support </li></ul><ul><li>Transactional model of installation </li></ul><ul><li>Transport </li></ul><ul><ul><li>Robustness </li></ul></ul><ul><ul><li>Cancellation </li></ul></ul><ul><ul><li>Error messages (in 3.5 M7) </li></ul></ul><ul><ul><li>MD5 </li></ul></ul><ul><li>… </li></ul><ul><li>Modularity of the base exercised </li></ul>
    14. 14. Serviceability, the profile registry <ul><li>The profile registry reflects from a metadata standpoint </li></ul><ul><ul><li>What the user is currently running </li></ul></ul><ul><ul><li>What the user has been running </li></ul></ul><ul><ul><ul><li><install>/p2/org.eclipse.equinox.p2.engine/<….profile>/ </li></ul></ul></ul><ul><li>A profile can be used to recreate the user’s installation on another machine. </li></ul>
    15. 15. Update / Extend / Service Initial deployment Build and publish Development
    16. 16. Initial deployment <ul><li>Installer </li></ul><ul><ul><li>p2 basic installer (~5/6M) </li></ul></ul><ul><ul><ul><li>Deployable using JavaWebStart </li></ul></ul></ul><ul><ul><li>EPP wizard [1,2] </li></ul></ul><ul><ul><ul><li>“ Shopping cart” approach to software selection. </li></ul></ul></ul><ul><ul><li>Home brewed p2-based installer </li></ul></ul><ul><li>Complete application </li></ul><ul><ul><li>The application results from a provisioning operation done at build time. [3] </li></ul></ul>[1] – EPP wizard - http://wiki.eclipse.org/EPP/Wizard [2] – EPP Wizard talk - http://www.eclipsecon.org/2009/sessions?id=426 [3] – Director application doc - http://wiki.eclipse.org/Equinox_p2_director_application
    17. 17. EPP Wizard The user picks its software in a shopping cart style and a custom p2 installer is built.
    18. 18. Initial deployment <ul><li>Installer </li></ul><ul><ul><li>p2 basic installer (~5/6M) </li></ul></ul><ul><ul><ul><li>Deployable using JavaWebStart </li></ul></ul></ul><ul><ul><li>EPP wizard [1,2] </li></ul></ul><ul><ul><ul><li>“ Shopping cart” approach to software selection. </li></ul></ul></ul><ul><ul><li>Home brewed p2-based installer </li></ul></ul><ul><li>Complete application </li></ul><ul><ul><li>The application results from a provisioning operation done at build time. [3] </li></ul></ul>[1] – EPP wizard - http://wiki.eclipse.org/EPP/Wizard [2] – EPP Wizard talk - http://www.eclipsecon.org/2009/sessions?id=426 [3] – Director application doc - http://wiki.eclipse.org/Equinox_p2_director_application
    19. 19. Update / Extend / Service Initial deployment Build and publish Development
    20. 20. Build, when the metadata comes to be <ul><li>Metadata matters </li></ul><ul><li>PDE Build fully embraces p2 </li></ul><ul><ul><li>Product build now produces a p2-enabled application </li></ul></ul><ul><ul><li>Straight from the source to the repository </li></ul></ul><ul><ul><li>Product can be published straight from repositories (given that you have all the pieces in the repo). </li></ul></ul><ul><ul><ul><li>Separate the concerns of building and packaging </li></ul></ul></ul><ul><ul><ul><li>Toward more incremental builds </li></ul></ul></ul><ul><ul><ul><li>Faster way to produce products </li></ul></ul></ul><ul><ul><li>Can use repositories as build input  This is the recommended way. </li></ul></ul><ul><ul><li>Can fetch directly from p2 repositories [1] </li></ul></ul><ul><li>The p2.publisher is responsible for metadata / artifact generation </li></ul><ul><ul><li>Can be used independently of PDE Build. </li></ul></ul>[1] – How to - http://wiki.eclipse.org/Equinox/p2/Build_Input See also: Section on product builds from http://www.eclipsecon.org/2009/sessions?id=560
    21. 21. Repository management <ul><li>Everybody creates repos, they need to be managed </li></ul><ul><li>Problems </li></ul><ul><ul><li>You want to promote one build over another one </li></ul></ul><ul><ul><ul><li>Composite repositories </li></ul></ul></ul><ul><ul><li>You build more than you want to make available </li></ul></ul><ul><ul><ul><li>Slicing </li></ul></ul></ul><ul><ul><li>You want to replicate builds from one repository to another </li></ul></ul><ul><ul><ul><li>Mirroring applications </li></ul></ul></ul><ul><li>Repository validation </li></ul><ul><ul><li>Repository validation that everything is installable </li></ul></ul><ul><ul><li>For every IU, each artifact is available </li></ul></ul><ul><ul><li>IU comparison tools, to ensure that the metadata is not changed </li></ul></ul><ul><ul><li>Artifact comparison tool to ensure that one artifact has not changed [1] </li></ul></ul><ul><ul><li>Repository diff’ing tool </li></ul></ul>[1] – Talk on versioning and provisioning - http://www.eclipsecon.org/2009/sessions?id=585
    22. 22. Update / Extend / Service Initial deployment Build and publish Development
    23. 23. Development time, where the metadata is authored (partially) <ul><li>Locality of the metadata </li></ul><ul><li>The developer of a plug-in knows the most about it (start level, file permission, …) </li></ul><ul><ul><li>Things go into features, config.ini in the product, or in build scripts. </li></ul></ul><ul><li>p2.inf [1] </li></ul><ul><ul><li>A way to augment / tweak the metadata being generated for bundles, features and product files. </li></ul></ul>You need to be careful to separating the metadata that is absolutely necessary from the things that are config specific [1] – p2.inf format - http://wiki.eclipse.org/Equinox/p2/Engine/Touchpoint_Instructions
    24. 24. Future work <ul><li>What you want it to be. </li></ul>
    25. 25. Summary <ul><li>Cover all aspects of the software lifecycle </li></ul><ul><li>p2 is an powerful provisioning platform </li></ul><ul><li>Highly extensible </li></ul><ul><li>Enable the creation of comprehensive solutions </li></ul>
    26. 26. Thank you Tonight BOF mailto:p2-dev@eclipse.org http://wiki.eclipse.org/Equinox/p2

    ×