rust-lang / rust-lang/rustup

Tracking: Simplify download and/or TLS backends

Open
#3,790 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement meta
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
22h 40m
Merged PRs (30d)
46

Description

Part of https://github.com/rust-lang/rustup/issues/1611.

Motivation

The direct motivation of this change is to simplify Rustup's building process in order to make Rustup more cross-build friendly and prevent surprise stable-only CI build errors like the ones we've encountered while bumping OpenSSL to v3, i.e. https://github.com/rust-lang/rustup/pull/3478, https://github.com/rust-lang/rustup/pull/3668, https://github.com/rust-lang/rustup/issues/4707, etc.

Status quo

  • The default currently is to use reqwest with native-tls (OpenSSL on Linux, native stacks on macOS and Windows)
  • If RUSTUP_USE_CURL is set, we use the curl backend, which defaults to openssl
  • If RUSTUP_USE_RUSTLS is set, we use reqwest with rustls

https://github.com/rust-lang/rustup/pull/3788#issuecomment-2076819462

Goal

The eventual goal would be removing RUSTUP_USE_CURL and/or RUSTUP_USE_RUSTLS, leaving a single stack "in favor of maximally-Rust solutions", while "making sure we minimize the risk of getting users stuck".

To minimize frictions during this change, some necessary refactoring patches will be developed in the meantime, with a primary focus on improving Rustup's observability by interfacing with the tracing ecosystem.

https://github.com/rust-lang/rustup/pull/3788#issuecomment-2076679922

Tasks

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Review parent issue #1611 and the task pull requests listed here, especially the backend and tracing refactors; this issue names no file or test entry point. Done means the download/TLS backend plan advances toward a single maximally-Rust stack while minimizing the risk of users getting stuck and preserving the cross-build goals.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.