[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform] Re: No solution found because the problem in /tmp/p2Encoding13004.opb is unsatisfiable.

On 12/11/2008 1:57 PM, John J Barton wrote:
Andrew Niefer wrote:
The problem is unsatisfiable means that p2 can't find a set of plugins
that satisfies all the requirements. If you look at the errors one at
a time, it really isn't that hard. (The hard part would be finding the
root cause).

Thanks Andrew. ...
More non-overlapping version ranges, there are a bunch of these. And
this is probably the root cause. You are perhaps trying to install
something old into a 3.4.0 eclipse, and that old thing has
dependencies on a 3.2.0 eclipse.

but what I was doing was installing something new -- a plugin I build with 3.4.1 eclipse update site thing -- in to 3.4.0 eclipse.

My gut feeling is that the dependency analysis is just wrong. I assume
it relies on information I gave to eclipse when I built my plugin, stuff
in the manifest.mf? other places? But I have no idea what all that stuff
means and frankly I don't want to know. How can I build my plugin to
work with a given eclipse version? Somewhere I want to put "check
against eclipse 3.4.0" and when users install I want the message to be
either "success" or "you need eclipse 3.4.0". All that other stuff
simply cannot be my users interface to my install.

First of all, it is not an option for you to be ignorant about dependencies and installation management if you're going to be a plugin publisher. It is just as important as understanding how to use SWT or what to do in your Activator start/stop methods, etc; it goes with the territory.


Now, if you want to target a particular version of particular plugins (remember, each plugin can be updated and change its version independently), you need to specify that in your plugins' Dependency list. For each plugin listed as a Dependency, you can (and should) specify a version range that is acceptable. Of course it is not a trivial matter, you have to think about the version ranges you want to allow: too restrictive and your stuff won't be compatible with arbitrary Eclipse instances; too loose and you'll get installed into environments that aren't really compatible with your code.
This is all part of designing a plugin or plugins - you have to think about what your target environment requirements are and embed that info into your plugin(s) dependencies and possibly your Feature definition.


Hope this helps,
Eric