Tracking: Deduplicate toolchains, components and/or artifacts
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 30/100
Direzione di ricerca
Inizia esaminando i casi segnalati (#555, #1974, #1366 e #2617), il comportamento di rustup toolchain install e le proposte correlate #3937, #731 e #4636. La issue è esplorativa: per poterla considerare completata sarebbe necessario concordare un design per deduplicare artefatti, componenti o toolchain prima di poter definire l'ambito dell'implementazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem you are trying to solve
It happens from time to time that the user gets confused about why rustup toolchain install stable, rustup toolchain install 1.92 and rustup toolchain install 1.92.0 require separate and duplicate/redundant downloads when they are essentially the same thing (given that the current stable is 1.92.0).
Such reports include:
- #555
- https://github.com/rust-lang/rustup/issues/1974
- https://github.com/rust-lang/rustup/issues/1366
- https://github.com/rust-lang/rustup/issues/2617
The status quo is very well explained in the quote below:
Firstly, 1.70 and 1.70.0 are not the same toolchain. They might be on a given date, but once 1.70.1 releases, they are not.
Secondly, the installed components are currently defined as separate for each toolchain; adding a component that isn't expected might be strange and conceivable a bug for some developers - and turning minor versions into symlinks to concrete versions will have that effect, as you would no longer have separate component lists.
https://github.com/rust-lang/rustup/issues/1366#issuecomment-1633065070
In short, 1.92.0 is a "fixed target" that will always be pointing to that very version of the toolchain, but the other two are "moving target"s: 1.92 will be upgradable to any later 1.92.*, and stable to any later stable. These toolchains are logically separated and I have no intentions to change that, but physically this separation is not an absolute must.
Solution you'd like
A potential solution is to borrow from PNPM and use hard links or junctions that reference a user-global artifact pool. This might have some interesting interactions with multiple proposals, e.g.
- #3937
- #731
- #4636
Another choice could be providing a user-global component (or even toolchain) pool instead of an artifact pool, depending on the flexibility we'd like to achieve.
I personally think choosing the toolchain pool is a bad idea since it turns out sometimes multiple toolchains share the same component esp. when they are not updated.
Notes
No response
- Lingua principale
- Rust
- Stelle
- 7.1k
- Fork
- 1.1k
- Merge medio
- 1g 13h
- PR unite (30g)
- 45
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rust-lang/rustup
-
enhancement O-shell
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
rust-analyzer fallback recurses through Homebrew’s wrapperForse già presa @rami3l l’ha presa 5 giorni fa. Apertaenhancement O-macos
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
rust-lang/rustup#5133 · 5 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Verbose output for removing components on toolchain updateForse già presa @rami3l l’ha presa 12 giorni fa. Apertaenhancement
rust-lang/rustup#5122 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Continuous performance tracking to avoid major regressionsForse già presa @rami3l l’ha presa 20 giorni fa. Apertameta
rust-lang/rustup#5103 · 3 commenti · 5 reazioni · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Suggest another toolchain when removing a component unavailable to the current toolchainForse già presa @14elias l’ha presa 4 giorni fa. Apertaenhancement help wanted
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
rust-lang/rustup#5098 · 6 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rust-lang/rustup
Issue simili
-
RUSTSEC-2026-0348: Brotli certificate decompression can allocate up to 1 GiB before authenticationAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 62/100
-
core: Amount::from_str panics on values above 21M BTC instead of returning an errorForse già presa @bhuvan-somisetty l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
crate: spate-s3
Difficoltà 2/5 Mezza giornata Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
write_iceberg ignores the table's write.parquet.compression-codec propertyForse già presa @YuangGao l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Eventual-Inc/Daft#7606 ·
I maintainer di solito rispondono entro 1 giorno