Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[mdt-papyrus.dev] Building Papyrus with Google Guava

Hi, Team,

Yesterday, I pushed a Gerrit review with a bunch of new code, some of it using those handy Google Guava utilities that we all enjoy so much.  The Hudson CI job happily built my new code.

There's a problem, though:  I think it should have failed to compile.

The reason is that my code was using APIs that are in the 11.0 release of Guava but had been removed somewhere in or around the 14.0/15.0 release.  As I understand it, the Luna EPPs generally ship with Guava 15.0, right?

Currently, our various plug-ins that use Guava express a Require-Bundle dependency on a version range [11.0.0, ∞).  If we're going to stick with that, then we need to build Papyrus against every one of those major Guava versions:  11.0, 12.0, 13.0, 14.0, 15.0, and whatever subsequent new version is adopted from time to time by Orbit, to verify that the APIs we are using still exist (and hopefully our test coverage checks that those APIs still behave the way we expect).  Otherwise, we would have to let OSGi protect us from breakage by using upper bounds (e.g., [11.0.0, 12.0.0) etc.).

I know why we've left the upper bound unconstrained, because of the serious integration headaches in the release train, but if this continues, we are going to see Papyrus break on some users' desktops the next time they update.  Even having the build check that we are compatible with every currently available Guava isn't sufficient because there will be new Guavas and Google will break APIs.

Thoughts?

Christian


P.S. The reason this question arises now is that I have switched my main development workspace from the painstakingly managed projects and PDE target I've been using for the last two years (with Guava 11) to the Oomph setup.  Oomph naturally brought Guava 15 into my PDE target.

Back to the top