Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ide-dev] A "releases/latest" URL in the IDE to ease upgrades?

On 12/04/2015 12:24 PM, Bruno Medeiros wrote:
"When user does check for updates, Neon.2 and Neon+1 are two update possibility. Will p2 go down the most aggressive path that will require remediation (removing third-party plugin that the user may not be ready to part with) or will it try a less aggressive path that will resolve cleanly?"

The update mechanism in Eclipse will only update automatically if it can update all existing features successfully. So if it tries to upgrade to Neon, but there is a feature that requires Mars only, it will fail the update, and instead present a dialog with some possible choices (one choice being uninstalling the feature that requires Mars-only, so that update to Neon can proceed). But it will never uninstall features automatically, or proceed with an update that breaks such features.That's why I think it's ok to have Eclipse try to update across major Eclipse versions. If there is a 3rd party plugin that is only supposed to work on Eclipse 4.3 only, then that should be specified if the feature where the plugin is bundled with, so that Eclipse isn't broken when a major update is attempted.
I believe the p2 UI is at that point explicit and helpful enough to leave the opportunity to users to not upgrade if they don't want to; or to suggest remediation if they have conflicting software.

Note that, AFAIK, p2 only checks dependencies on the *feature* level, not plugin level.
Nope, p2 has what's called "installation unit" which is an abstract definition to resolve dependencies for both features and plugins. So if the conflict comes from an individual bundle under a feature, p2 will fail at installing the feature and explain in the error message the reason of the conflict.
The paradigm of p2 is that "if it installs, it runs" (in the OSGi meaning of run). The only case where p2 cannot help is for API or behavioral changes, that are not expressed as depenencies.

Mickael Istria
Eclipse developer at JBoss, by Red Hat
My blog - My Tweets

Back to the top