Hi,
is there a policy on specifying the version ranges in
bundle dependencies for Papyrus-RT?
While double-checking the dependencies on plug-ins I
intend to add to Papyrus-RT, I checked a few existing plug-ins and
it seems that the version ranges are not always specified
consistently across all plug-ins. For instance, in core/ the min
versions are specified, except for eclipse.core.runtime or
eclipse.ui, which has no version range. Max version is never
specified. In common/, however, we have min and max versions for
eclipse.ui and eclipse.core.runtime, and only min for internal
dependencies.
So I thought I put this topic up for discussion, whether
such a policy should be introduced.
In other projects, such as EMF Forms, we always set min
and max versions for all (eclipse platform, external projects, and
internal plug-ins) as follows:
* min inclusive of the earliest
version we intend to support; typically, this is at least the
current version at the time of adding the dependency
* max exclusive of the next major, if
only public API is used from the dependency
* max exclusive of the next minor, if
also "SPI" / "internal API" is used
Thus, the typical dependency would look like this, if only
public API is used:
org.eclipse.papyrus.infra.core.log;bundle-version="[1.2.0,2.0.0)"
While this certainly demands some additional effort in setting
it up and maintaining it, it enables quite high level of security
to detect API issues early and avoid version conflicts.
Thanks and best wishes,
Philip
--
Philip Langer
Senior Software Architect / General Manager
EclipseSource Services GmbH
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit