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 1 year ago

7phs commented 1 year 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 1 year 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 1 year 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?