Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-1111

Upgrade Guava, and test on a range of Guava versions

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.7.0
    • Component/s: None
    • Labels:
      None

      Description

      Cassandra server depends on Guava 15.0. To use it we'd need to upgrade Guava too. But Hive is still on Guava 14, as is the rest of Hadoop.

      It might just work if we upgrade Calcite to Guava 15.0 but mark the dependency "provided". Then Hive can continue to provide Guava 14. It should give other projects more flexibility too.

      We should continue to run on versions of Guava as early as 11, and also try running on recent versions (the latest is 19). We should describe the dependencies in http://calcite.apache.org/downloads/#maven-artifacts.

        Issue Links

          Activity

          Hide
          julianhyde Julian Hyde added a comment - - edited

          Jacques Nadeau, Josh Elser, Ashutosh Chauhan, Maryann Xue, Please review proposed fix at https://github.com/julianhyde/calcite/tree/1111-guava. In the release notes I committed to test on a range of versions 13.0.1 - 19.0, and made the default version 18.0.

          We no longer plan to make the guava dependency "provided". We use guava 18.0 as a regular dependency but make it clear that it is safe to override to any version between 13.0.1 and 19.0.

          The compatibility note is in the release notes, not on the downloads page.

          Show
          julianhyde Julian Hyde added a comment - - edited Jacques Nadeau , Josh Elser , Ashutosh Chauhan , Maryann Xue , Please review proposed fix at https://github.com/julianhyde/calcite/tree/1111-guava . In the release notes I committed to test on a range of versions 13.0.1 - 19.0, and made the default version 18.0. We no longer plan to make the guava dependency "provided". We use guava 18.0 as a regular dependency but make it clear that it is safe to override to any version between 13.0.1 and 19.0. The compatibility note is in the release notes, not on the downloads page.
          Hide
          elserj Josh Elser added a comment -

          +1 works for me since we're taking on the testing burden. Clear documentation on building Calcite is nice – do you think downstream consumers of Calcite will understand that they can just do the following in their own Maven pom, or do we need to be painfully specific?

          <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${whatever_version_you_want_in_advertised_range}</version>
          </dependency>
          
          Show
          elserj Josh Elser added a comment - +1 works for me since we're taking on the testing burden. Clear documentation on building Calcite is nice – do you think downstream consumers of Calcite will understand that they can just do the following in their own Maven pom, or do we need to be painfully specific? <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${whatever_version_you_want_in_advertised_range}</version> </dependency>
          Hide
          julianhyde Julian Hyde added a comment -

          I think anyone who wants to use a different version of guava will know what to do. If we include that fragment in the doc, some users will be dumb enough to paste that fragment into their pom and it will cause more problems.

          Show
          julianhyde Julian Hyde added a comment - I think anyone who wants to use a different version of guava will know what to do. If we include that fragment in the doc, some users will be dumb enough to paste that fragment into their pom and it will cause more problems.
          Hide
          elserj Josh Elser added a comment -

          I think anyone who wants to use a different version of guava will know what to do. If we include that fragment in the doc, some users will be dumb enough to paste that fragment into their pom and it will cause more problems.

          Haha, ok. Good enough for me

          Show
          elserj Josh Elser added a comment - I think anyone who wants to use a different version of guava will know what to do. If we include that fragment in the doc, some users will be dumb enough to paste that fragment into their pom and it will cause more problems. Haha, ok. Good enough for me
          Hide
          jamestaylor James Taylor added a comment -

          FYI, HBase & HDFS are on guava 12, so it'd be good to go back to that on the lower end.

          Show
          jamestaylor James Taylor added a comment - FYI, HBase & HDFS are on guava 12, so it'd be good to go back to that on the lower end.
          Hide
          julianhyde Julian Hyde added a comment -

          Agreed; I've updated the branch to 12.0.1.

          Show
          julianhyde Julian Hyde added a comment - Agreed; I've updated the branch to 12.0.1.
          Hide
          julianhyde Julian Hyde added a comment -

          Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/5897dcd9. List of supported versions will appear in each release's release notes: see 'compatibility' under http://calcite.apache.org/docs/history.html.

          Show
          julianhyde Julian Hyde added a comment - Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/5897dcd9 . List of supported versions will appear in each release's release notes: see 'compatibility' under http://calcite.apache.org/docs/history.html .
          Hide
          julianhyde Julian Hyde added a comment -

          Resolved in release 1.7.0 (2016-03-22).

          Show
          julianhyde Julian Hyde added a comment - Resolved in release 1.7.0 (2016-03-22).

            People

            • Assignee:
              julianhyde Julian Hyde
              Reporter:
              julianhyde Julian Hyde
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development