-
Notifications
You must be signed in to change notification settings - Fork 320
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update to Guava 33 #2878
Update to Guava 33 #2878
Conversation
Signed-off-by: Christian Dietrich <[email protected]>
needs to be checked for completeness / functionality |
To me, it looks fine. I'd tend to merge it ASAP, since it blocks the build ;) |
we also need to check the mwe side (see pr) and build a mwe M0 and bootstrap against it. how @szarnekow can have a look |
Meaning the following sequence?
|
am not sure about the order. i assume we can start with Xtext |
Signed-off-by: Sebastian Zarnekow <[email protected]>
@cdietrich I pushed an additional commit to your branch with two missing version constraints for Guava (xtext.ide and codemining). Also added an upper bound for failureaccess. Do you remember why we need to add the dependency to failureaccess even if we don't use it directly? Shouldn't that be available by transitivity? |
@szarnekow maybe this is not the case but for other bundles created from Maven artifacts in Orbit transitive dependencies are to be listed explicitly since they are not really transitive (not required bundles); you might want to check from Eclipse the MANIFEST of google.inject to verify that. For example, I'm using Mockito from Orbit and I have to add as required bundles byte-buddy and other Mockito's dependencies (or I get NoClassDefFound errors during tests). |
I don’t remember |
Hmm I removed that require-bundle locally and could run xtext.tests and xtext.xtext.ui.tests without trouble. I'll make a branch and give it a try. Note that failureaccess exports a package that imported in guava. In that sense, the dependency is declared. |
Great! Maybe it was just a problem of the Mockito bundle then. |
Signed-off-by: Sebastian Zarnekow <[email protected]>
Let's see if Jenkins agrees |
The CI is happy! :) |
am getting
when create new xtext project and launch mwe2. |
=> something changed in orbit? with the new guava? |
explicit readd works. but why did it work before? |
=> we have no tests that launch mwe2 |
Ok, let’s drop the last commit. I’m only on m y phone right now. @LorenzoBettini can you please revert the last attempt I made? |
ahhhh you did experiment here |
This reverts commit a0bdf30.
@szarnekow I've just reverted it; so we can merge right? @cdietrich now that you reported the exception, I remember a similar problem in EMF Parsley without failureaccess; I had forgotten about that, and only remembered about troubles with Mockito. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
OK, I'm merging |
A few observations from a distance. a) Tycho is very tightly coupled to the platform, so really weird things can happen until you have the Tycho version that tracks the latest platform dependency change. "NoClassDefFoundError: com/google/common/util/concurrent/internal/InternalFutureFailureAccess" looks a bit like this. b) Guava versions keep changing and have good compatibility. For my Xtext-based projects, I leave the Guava bounds unspecified until I have a good reason to specify; I therefore indirectly use the Xtext version specification and avoid appearing on Ed M's naughty list. So far I have only needed to repair a couple of deprecated-then-removed incompatibilities by creating my own utility version. My weekly forced rebuild alerts me to an incompatibility. My weekly compatibility builds check the preferred Guava version for each platform verson since Oxygen. (Provided my JUnit coverage is adequate.) Wouldn't it be easier for Xtext to leave Guava bounds unspecified so that once the next Java/platform/Orbit/Tycho configuration gives you a new Guava, your 'weekly' full rebuild fails tell you what to work on? Rather than "we also need to check the mwe side", why not improve the JUnit coverage? |
Closes #2876