Versioned dependencies when building (golang api 0.1.0?)

When building rclone, should we understand the versioned dependencies in go.mod as required versions, or as minimum versions?

For instance with rclone 1.47, we have
google.golang.org/api v0.1.0

But the latest version of golang api module is 0.5.0 at https://github.com/googleapis/google-api-go-client
Some deprecated components of the api have been getting dropped from version to version.

Does the rclone dependency mean that rclone is not compatible with google golang org / api v0.5.0 ?

They are minimum versions. rclone should be compatible with any version with the same major release, though that does depend on the upstream not breaking backwards compatibility.

Talking google.golang.org/api specifically if you look at the beta you'll see the requirement is now v0.3.2. Not sure where you got googleapis/google-api-go-client as rclone doesn't depend on that (it may have done in the past)

I update the dependencies early in the release cycle.

Note that all the dependencies are vendored so you have exactly the right version in the vendor directory which will automatically be used when compiling without go modules.

Thanks Nick, sounds like it will be safe to upgrade golang api to 0.5.0 then.

As for googleapis/google-api-go-client, as far as I'm aware it's the source repo. There's also https://code.googlesource.com/google-api-go-client but it doesn't provide source tarballs (I build with Debian, which traditionally builds from tarballs).

http://google.golang.org/api points at the docs (redirects to https://godoc.org/google.golang.org/api) The api link at the top of that page links to https://github.com/google/google-api-go-client, but when you click on it, it ends up at https://github.com/googleapis/google-api-go-client. Google appears to have set up too many redirects or alternative repos.

The local Debian installation places it all in /usr/share/gocode/src/google.golang.org/api/

It should work :crossed_fingers: