What's new in p2 (2009)?

26
1 What’s new in p2? A year later Pascal Rapicault IBM Rational TM , p2 lead EclipseCon, March 2009

description

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.

Transcript of What's new in p2 (2009)?

  • 1. Whats new in p2? A year later Pascal Rapicault IBM Rational TM , p2 lead EclipseCon, March 2009

2. p2 is installing!

  • An extensible provisioning platform
  • Install and update technology since 3.4
    • New UI, simplified workflow
    • Manage Eclipse, RCP and more
      • exe, ini, bundles, registry keys, native code,
    • Shared bundles across Eclipse-based products
  • A provisioning solution for OSGi systems
    • Managing non-running instance
    • Start level, framework extension
    • Fine-grained dependency management

3. The year by numbers

  • 650 bug / enhancements fixed (as of March 2009)
    • Including the infamous, I cant cancel the download, The error message is useless, TheUI sucks, etc
  • 7 active committers
  • 3 will be committers contributors from Cloudsmith and EclipseSource
  • A lot of users (everyone is a user!)
  • Some extenders
  • 1 baby delivered
  • 2 babies designed

4. p2 in wild

  • Installer for products (EPP Wizard, WindRiver, Motorola, IBM Rational, etc.)
  • Server managed deployment solution and distros (Genuitec, EclipseSource, Cloudsmith)
  • Remote management of device (EclipseSource)
  • Buckminster (Cloudsmith)
  • Provisioning of server side (EclipseSource)[1]
  • Cloud provisioning (EclipseSource)
  • Repository management (Sonatype)

[1] - Short talk on using p2 on the server -http://www.eclipsecon.org/2009/sessions?id=423 5. Outline

  • Update / Extend / Service
  • Initial deployment
  • Build and publish
  • Development

6. Enough concepts to follow

  • Installable Units (aka IU, or Metadata)
    • Metadata describing what to install
    • Typically stored into a repository
  • Artifacts
    • The actual bytes you want to install
    • Stored in a repository
    • p2 offers acontinuum from initial installation to serviceability

7. Update / Extend / Service Initial deployment Build and publish Development 8. Updating, extending,

  • Two usage mode
    • External mode, the p2 plug-ins are external to the application (e.g an installer)
    • 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.
  • User interface
    • The p2.ui.* bundles, offering reusable and customizable dialogs
    • Agent running in the background checking for updates
    • Command line using the director application

9. New GUI in 3.5

  • Smoother integration
  • Improved disconnected mode
  • Improved general responsiveness
  • Redesigned using the feedback from the UIUWG

10. The controlled mode

  • Notice that the entry tochoose a site is not available.
  • The preference page toadd repo is also removed.

11. Granularity of what is visible

  • Installation history, and installed software page can be removed
  • Ability to only make the update command, or the an install command.

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. Non UI things improved

  • Explanation support
  • Transactional model of installation
  • Transport
    • Robustness
    • Cancellation
    • Error messages (in 3.5 M7)
    • MD5
  • Modularity of the base exercised

14. Serviceability, the profile registry

  • The profile registry reflects from a metadata standpoint
    • What the user is currently running
    • What the user has been running
      • /p2/org.eclipse.equinox.p2.engine//
  • A profile can be used to recreatethe users installation on another machine.

15. Update / Extend / Service Initial deployment Build and publish Development 16. Initial deployment

  • Installer
    • p2 basic installer (~5/6M)
      • Deployable using JavaWebStart
    • EPP wizard[1,2]
      • Shopping cart approach to software selection.
    • Home brewed p2-based installer
  • Complete application
    • The application results from a provisioning operation done at build time.[3]

[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. EPP Wizard The user picks its software in a shopping cart styleand a custom p2 installer is built. 18. Initial deployment

  • Installer
    • p2 basic installer (~5/6M)
      • Deployable using JavaWebStart
    • EPP wizard[1,2]
      • Shopping cart approach to software selection.
    • Home brewed p2-based installer
  • Complete application
    • The application results from a provisioning operation done at build time.[3]

[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. Update / Extend / Service Initial deployment Build and publish Development 20. Build, when the metadata comes to be

  • Metadata matters
  • PDE Build fully embraces p2
    • Product build now produces a p2-enabled application
    • Straight from the source to the repository
    • Product can be published straight from repositories (given that you have all the pieces in the repo).
      • Separate the concerns of building and packaging
      • Toward more incremental builds
      • Faster way to produce products
    • Can use repositories as build inputThis is the recommended way.
    • Can fetch directly from p2 repositories[1]
  • The p2.publisher is responsible for metadata / artifact generation
    • Can be used independently of PDE Build.

[1] How to - http://wiki.eclipse.org/Equinox/p2/Build_Input See also:Section on product buildsfromhttp://www.eclipsecon.org/2009/sessions?id=560 21. Repository management

  • Everybody creates repos, they need to be managed
  • Problems
    • You want to promote one build over another one
      • Composite repositories
    • You build more than you want to make available
      • Slicing
    • You want to replicate builds from one repository to another
      • Mirroring applications
  • Repository validation
    • Repository validation that everything is installable
    • For every IU, each artifact is available
    • IU comparison tools, to ensure that the metadata is not changed
    • Artifact comparison tool to ensure that one artifact has not changed[1]
    • Repository diffing tool

[1] Talk on versioning and provisioning - http://www.eclipsecon.org/2009/sessions?id=585 22. Update / Extend / Service Initial deployment Build and publish Development 23. Development time,where the metadata is authored (partially)

  • Locality of the metadata
  • The developer of a plug-in knows the most about it (start level, file permission, )
    • Things go into features,config.iniin the product, or in build scripts.
  • p2.inf [1]
    • A way to augment / tweak the metadata being generated for bundles, features and product files.

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. Future work

  • What you want it to be.

25. Summary

  • Cover all aspects of the software lifecycle
  • p2 is an powerful provisioning platform
  • Highly extensible
  • Enable the creation of comprehensive solutions

26. Thank you Tonight BOF mailto:[email protected]://wiki.eclipse.org/Equinox/p2