Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[papyrus-rt-dev] Version ranges in bundle dependencies

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.

What do you think?

Thanks and best wishes,

Philip

--
Philip Langer

Senior Software Architect / General Manager
EclipseSource Services GmbH

Back to the top