databricks / databricks-sql-go

Golang database/sql driver for Databricks SQL.
Apache License 2.0
37 stars 41 forks source link

License of dependency `go-retryablehttp` #177

Open 7phs opened 11 months ago

7phs commented 11 months ago

Hello,

Databricks SQL driver licensed under Apache-2.0 license.

A dependency - github.com/hashicorp/go-retryablehttp licensed under Mozilla Public License - 2.0.

MPL-2 license has a difference with Apache-2.0 license in requirement of mentioning source code of library.

MPL-2 of github.com/hashicorp/go-retryablehttp is a blocker to use Databricks SQL driver in a commercial project that I'm working on related to compliance.

Could you tell me what is a good way/workaround to use other returnable client with Databricks SQL driver?

Best regards, Aleksei

rcypher-databricks commented 11 months ago

There's https://github.com/ybbus/httpretry Here's a page listing other similar packages: https://go.libhunt.com/httpretry-alternatives

You could try running without retry and just use the pooled http client, though that's going to really cut down on the robustness of the driver.

7phs commented 10 months ago

Thanks for looking into it!

We are not going to use databricks-sql-go without retry-able http-client.

I'd like to draw your attention on an issue that we have - the license of databricks-sql-go is not completely compatible with a package of returnable http client github.com/hashicorp/go-retryablehttp.

There are several possible solutions:

  1. databricks-sql-go replaces a current retry-able http client with a package has completely compatible license with databricks-sql-go license.
  2. Making selecting/using retry-able http client optional in the code of databricks-sql-go to make easy changing a package.
  3. Using replace instruction of go.mod on our end.

Could you tell me what is a good option from your point of view?