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
?
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
.