Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Abandon cURL #1657

Closed
wants to merge 1 commit into from
Closed

Abandon cURL #1657

wants to merge 1 commit into from

Conversation

das-sein
Copy link
Contributor

Part of the simplification project #1611

Abandons the use of cURL entirely in favor of reqwest.

@das-sein
Copy link
Contributor Author

Failure is due to Cargo.lock not being updated. Should I add that to the commit? @nrc @kinnison Wasn't sure if that's an okay thing to do on my side.

@dwijnand
Copy link
Member

I'm not sure why --locked is used, but I think you should update it so CI validation passes, and then we can see if it's right?

@das-sein
Copy link
Contributor Author

@kinnison @dwijnand Added Cargo.lock

@dwijnand
Copy link
Member

dwijnand commented Feb 12, 2019

The patch looks good to me. The question is whether dropping curl in favour of reqwest is the right decision?

@briansmith
Copy link

The patch looks good to me. The question is whether dumping curl in favour of reqwest is the right decision?

(I wish we weren't using words like "abandon" and "dumping" when talking about cURL since that's not very nice.)

I think replacing Curl with a Rust library is the right thing to do for both rhetorical (political) reasons and technical (security) reasons. So, I think the question isn't "whether" we should do something like this but what, if anything, do we need to do to make sure reqwest is a reasonable choice? The good thing about reqwest is that it is based on libraries that are widely used in production.

@das-sein
Copy link
Contributor Author

@briansmith Sorry! I meant it in a totally non-emotional, literal way.

@jnicholls
Copy link

This looks good to me!

use RUSTUP_USE_REQWEST instead",
),
UsingHyperDeprecated => {
f.write_str("RUSTUP_USE_HYPER environment variable is deprecated.")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a strong feeling either way, but: should there be a warning about RUSTUP_USE_REQWEST being deprecated as well, as it is now the only option? If not, should the RUSTUP_USE_HYPER warning be removed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good point, I think you're right that there should be some kind of warning. I'll add that in.

@brson
Copy link
Contributor

brson commented Feb 12, 2019

It looks to me like prior to this patch curl was the default, so pretty much everybody has been using the curl backend. Switching to reqwest while also dropping the curl backend is risky. I recall the reqwest backend not working in some user scenarios (it's possible reqwest was even the default once and had to be switched back but I don't recall).

I'd suggest not doing this now, and instead turning on reqwest by default, releasing a new build, mentioning loudly in the release notes that the backend has changed, please report bugs, here's how to work around any problem (by requesting the curl backend). Wait a reasonable amount of time, then do this patch.

@brson
Copy link
Contributor

brson commented Feb 12, 2019

I'm not sure why --locked is used, but I think you should update it so CI validation passes, and then we can see if it's right?

It's so that Cargo.lock is kept updated, so that the release uses the same versions as the developers. Seems like a best practice to me; I don't see a downside.

@dwijnand
Copy link
Member

Yeah, makes sense to me. Just not used to it - in the cargo repo, even though it's also a binary tool, we're submoduled in, so we have no Cargo.lock.

@briansmith
Copy link

I agree it makes sense to have a way to switch back to using curl, e.g. via an environment variable, for a release.

@das-sein
Copy link
Contributor Author

@brson Excellent points. I'll begin working on a PR that deprecates cURL without entirely removing it, and keep this PR open and up to date until it's safe to proceed.

@das-sein das-sein mentioned this pull request Feb 13, 2019
@bors
Copy link
Contributor

bors commented Feb 26, 2019

☔ The latest upstream changes (presumably #1630) made this pull request unmergeable. Please resolve the merge conflicts.

@nrc
Copy link
Member

nrc commented Feb 26, 2019

Closing in favour of #1660

@nrc nrc closed this Feb 26, 2019
@briansmith
Copy link

@nrc #1660 is just a prerequisite to this, not a replacement for this.

@dwijnand
Copy link
Member

@briansmith That's right. The idea is let's go ahead and land #1660 instead, first, and remove cURL entirely after some time.

@lnicola
Copy link
Member

lnicola commented Oct 1, 2019

Is it time to drop the cURL backend?

@jnicholls
Copy link

jnicholls commented Oct 1, 2019

It's been 7 months. That is probably long enough.

@lnicola
Copy link
Member

lnicola commented Oct 1, 2019

Filed #2034 for this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants