Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipse-dev] Best practice how to deal with different target platforms

Hi Christian,

PyDev has something similar where it support 3.8+ [1]. The builds are done against newest Eclipse, but some bundles are optional in the MANIFEST.MF, then at runtime you just need to cope with ClassNotFoundException or similar.

This is a concrete example in PyDev.

PyDev uses some CSS themeing options that are not part of older releases. The Manifest bit [2] is:
Require-Bundle: org.eclipse.e4.ui.services;resolution:=optional,
 org.eclipse.e4.ui.css.swt.theme;resolution:=optional

and in the code there is a try/catch around the use of optional part [3]

Of course, I the key thing will be doing (automated) testing to ensure that it works as expected! I don't know what the flow is to test automatically against different target platforms.

I hope that helps a little.

Jonah

[1] not 3.7 because of some signing issues, can't remember exact details, but code signing changed from 3.7 to 3.8 in some way....
[2] https://github.com/fabioz/Pydev/blob/development/plugins/org.python.pydev.shared_ui/META-INF/MANIFEST.MF#L21
[3] https://github.com/fabioz/Pydev/blob/development/plugins/org.python.pydev.shared_ui/src/org/python/pydev/shared_ui/SharedUiPlugin.java#L107




~~~
Jonah Graham
Kichwa Coders Ltd.
www.kichwacoders.com

On 12 February 2016 at 13:24, Christian Pontesegger <christian.pontesegger@xxxxxx> wrote:
Hi,

I am wondering how other projects handle different target platforms for their projects. If you are not part of the release train, users might install your plugins into a wide range of eclipse installations ranging from 3.x versions up to the newest neon builds. While it is easy to set a minimum target platform, how do you deal with optional features that only exist in newer versions of eclipse.

Maybe I will use a simple example:
IToolTipProvider was introduced in .
How would I adapt my basic Label provider to implement that and still provide a compatible version with Indigo?
I guess I could use patches or fragments replacing a base version working with Juno by an advanced version for Mars. But is this the way to go?
How would I put this to update sites? Something like "Advanced <myproject> features for Mars"?

I would love to hear how other projects handle these problems.

thanks
Christian
_______________________________________________
eclipse-dev mailing list
eclipse-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/eclipse-dev


Back to the top