-
Couldn't load subscription status.
- Fork 984
Description
Part of #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. #3478, #3668, 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_CURLis set, we use the curl backend, which defaults to openssl- If
RUSTUP_USE_RUSTLSis set, we use reqwest with rustls
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.
Tasks
- chore(deps): unpin
opensslversion #3793 - refactor(test): execute all
#[rustup_macros::unit_test]s within atokiocontext #3868 - chore(dist/features): ship
tracingand friends by default #3803 - docs(dev-guide/tracing): mention
RUSTUP_LOGand console-based tracing #3879 - feat(log): unhide
tracing::instrumentfrom behindfeature = "otel"#3873 - Pass Process around explicitly #3871
- Process cleanup #3877
- test(clitools): revive
run_inprocess()#3891 - feat(download-backend)!: make
reqwest/rustlsthe new default #3798 - feat(download/rustls): use
rustls-platform-verifier#3903 - feat(download): reflect the download/TLS backends in the user agent #3815
- refactor(download): remove curl backend #3788
- Simplify download abstractions and start warning about curl usage #4277