javaversioninggoogle-api-java-client

Version compatibility between google-api-client and google-api-services


There is a project which depends on google-api-client and google-api-services-drive.

google-api-client verion looks like this: 1.23.0, and there is a changelog on github for this library.

google-api-services-drive version looks like this: v3-rev105-1.23.0, and there is no clear changelog. There is a number of different rev suffixes for the same version number, like v3-rev116-1.23.0, v3-rev135-1.23.0, etc. It looks like it is built weekly with an increasing revision number.

The question is: How are client and services versions compatible? Is it safe to assume, that any service with version v3-revXXX-1.23.0 is compatible with client 1.23.0 , and any api-service with version v3-revYYYYMMDD-1.32.1 is compatible with api-client 1.32.1 ?


Solution

  • While it may look like common semantic versioning part signals compatibility, that doesn't seem to be the case.

    However, there is a simple way to find out which google-api-client version a particular google-api-service requires. The thing is, google-api-service has a dependency on google-api-client, which you can... right, you can find it in a POM-file!

    Looking at POM-files of different services, there are cases when, for example, a service version is v3-rev20210201-1.31.0 and it depends on a client version 1.31.1, while v3-rev20210612-1.31.0 depends on 1.31.5 Or even worse: a service version v3-rev20220508-1.32.1 depends on a client version 1.34.0.