Jesus / dropbox_api

Ruby client library for Dropbox API v2
MIT License
171 stars 113 forks source link

support faraday 2.0? #94

Closed jrochkind closed 2 years ago

jrochkind commented 2 years ago

dropbox_api gemspec has a dependency on 'faraday', '~> 1.0'.

Faraday 2.0.0 was released on Jan 4 2021.

An app using dropbox_api (or anything that depends on it) can't upgrade to faraday 2.0 unless/until dropbox_api's specification is relaxed.

Could dropbox_api be verified and released for faraday 2.0?

https://github.com/lostisland/faraday/blob/main/UPGRADING.md

berkes commented 2 years ago

I'd like to add an alternative: not depend on any HTTP client, but leave that to the implementor.

For me, gems that depend on specific (versions of) HTTP clients, is very unfortunate:

My use-case is not the most common but not that unusual either:

We have a storage layer that offer people to store files on their preferred platform: S3, GoogleDrive, Dropbox, FTP etc. We integrate many cloud APIs.

Many of the gems for these platforms come with their own (version of) HTTP clients. For example, I now have to maintain a dependency tree with net/http, faraday, excon, typhous, and httparty. We had to forego a (rather crappy) GoogleDrive/GC, gem because it required a faraday version incompatible with this gem here.

Alternatives, I would love to see considered are:

Sorry for the long winded post. Hopefully this is something worth considering. If so, I can probably find some time to code this, though not on short notice.

And, in case I come over as critical: not at all: I love this great Gem!

jrochkind commented 2 years ago

@berkes Faraday already is a generic layer over other HTTP clients. Certainly switching to a different one is one option.

Either way, I'll need some solution, or will perhaps fork the gem.

Jesus commented 2 years ago

Definitely this would be great. My plan is to eventually drop the dependency on Faraday and use net/http instead, but I won't have bandwidth to do that in the mid-term.

jrochkind commented 2 years ago

Thanks for comment @Jesus ! If someone can find time to make a PR expanding Faraday support to allow 1.0-2.0, would you be able to find time to review/merge/release?

jrochkind commented 2 years ago

Wait a second, I see it's already been done!

https://github.com/Jesus/dropbox_api/blob/11bd1cf5f9a3683f1956857f9187b68134a7eddd/dropbox_api.gemspec#L23

https://github.com/Jesus/dropbox_api/commit/eaa9e363df3fca2176b8f60ba37c30908dfdb522

And 0.1.21 released allowing Faraday 2.x.

Thanks @Jesus!

I am closing this issue, it is resolved!