rails-sqlserver / tiny_tds

TinyTDS - Simple and fast FreeTDS bindings for Ruby using DB-Library.
Other
607 stars 189 forks source link

Use official HTTP mirrors instead of FTP for 1-stable #431

Open januszm opened 5 years ago

januszm commented 5 years ago

Related PR: https://github.com/rails-sqlserver/tiny_tds/pull/384

Change FreeTDS source server from FTP to HTTP

januszm commented 5 years ago

It'd be great if one of the maintainers could have a look at failing specs. Looks like the test MSSQL server is not available?

wpolicarpo commented 5 years ago

@metaskills can you have a look here? I'm not sure if you want maintain 1.3.x given you decided to remove freetds installation from the gem itself (which I agree).

aharpervc commented 5 years ago

The http archive goes down all the time as well, unfortunately (doesn't mean we shouldn't merge this, just fyi)

januszm commented 5 years ago

Can't we upload source files to a more reliable cloud storage or CDN? (e.g. Amazon S3, CloudFront) ?

wpolicarpo commented 5 years ago

We can, but there are many problems with this approach:

  1. Security: How to guarantee the integrity of downloaded file if we host it somewhere?
  2. Cost: After all, someone would need to pay for it.
  3. Maintainers would have to monitor/maintain another source of artifacts

I personally don't see any issues in merging this, but I don't think it will solve the main issue, which is managing external dependencies and probably that's why they changed it in 2.x.

In my opinion, installing freetds should be a step of your deploy. It's more secure and reliable if we do that by ourselves than delegating this to a gem installation.

januszm commented 5 years ago

@wpolicarpo

In my opinion, installing freetds should be a step of your deploy. It's more secure and reliable if we do that by ourselves than delegating this to a gem installation.

I can not agree more, but it's not always easily available on certain Linux distributions, and this mechanism of downloading and installing freetds is just a nice "emergency" mechanism.

This still does not seem like a fully reliable solution, but, you know what they say: "something is better than nothing".