Monday, May 13, 2013

Improved P2 requirements resolution

Today, I've been surprised and excited by a new Eclipse Kepler feature which should have come up with the last milestone (M7). I guess that more than one time you must be hit by the issue in which you want to update your Eclipse installation or some components of it and the IDE doesn't allow to do so because some prerequisites violation. Moreover, it's not trivial to realize what exactly is going wrong with the current installation configuration and the new components you want to install/update:

Well, it looks like that Eclipse platform folks have enhanced the P2 installation units (IU) resolution so that now  the IDE simply doesn't simply complain about the conflicts between your current installation and the components you want to install, but also it explores other combinations along the different versions for those available components (as long they are reachable from your configured P2 repositories). For example, for my development IDE I decided to do some components updates which I didn't update during my M6-M7 transition:

We can see that instead of just "failing" the updater provides some alternative solution, so that in this case in order to update the Buckminster components, the EGit/JGit one should be downgraded.

Moreover, if instead I decided to selectively update the EGit components via the traditional Help -> Install New Software... Now I could different options to achive that:

  • Keep my installation the same and modify the items being installed to be compatible.
  • Update my installation to be compatible with the items being installed.
  • Build my own solution.
In this case keeping my installation intact would imply some EGit components downgrading:

However, If I strongly desired an EGit update, the installer proposes me to remove the Buckminster - Git Support feature which is that one which prohibited the EGit features update:

Simply awesome !!!!

No comments:

Post a Comment