info: latest update on 2019-01-03, rust version 1.33.0-nightly (ec194646f 2019-01-02)
error: component 'rls' for target 'x86_64-unknown-linux-gnu' is unavailable for download
Already reported in https://github.com/rust-lang/rls/issues/1219, this will be fixed when a bug is fixed in the Rust repo (https://github.com/rust-lang/rust/pull/57304).
How does one get the latest nightly that has all necessary components?
@NickeZ there is no direct command to do it AFAIK but you can force a specific nightly if you know of one that works.
The most recent nightly that works for me is 2019-01-01
rustup toolchain add nightly-2019-01-01
rustup component add rls-preview rust-analysis rust-src --toolchain=nightly-2019-01-01
rustup default nightly-2019-01-01
Okey, then I'll wait, i don't want to do some ad-hoc changes
Rls is available on today's nightly release.
For those that don't know; we do expect RLS to be sometimes unavailable on the nightly channel, see:
we do expect RLS to be sometimes unavailable on the nightly channel
This user experience is not good. IMHO it would be better if either rustup only downloaded nightlies with all components I have installed or if rustup told me I'm "up-to-date". But failing is really quite bad.
This user experience is not good. IMHO it would be better if either rustup only downloaded nightlies with all components I have installed or if rustup told me I'm "up-to-date". But failing is really quite bad.
When the latest nightly is missing components you have installed, rustup will fail the update and tell you this, is that what you're talking about? This protects rustup users from RLS, etc disappearing and it's quite useful.
If that's working for you, do you just disagree with the message and exit code? If you have bugs/ideas for rustup I'd suggest raising an issue or looking over the discussion in rust-lang/rustup.rs.
@NickeZ @alexheretic
rustup only downloaded nightlies with all components I have installed or if rustup told me I'm "up-to-date"
rustup does the former and if it were to do the second it would be lying (it would be telling you you're up to date when you aren't).
In my workflow (but YMMV) having to revert/stick to a particular known-to-work version of nightly is not a big deal, but usability may be improved by some form of "update to the latest nightly that matches X criteria", for instance *latest nightly which has all your components".
This could be a separate command or flag from the default rustup (which at the moment IMHO is doing the perfectly correct thing)
rustup update --with-existing-components would have to figure out which components I have installed in nightly, figure out which ones are available in the latest N nightlies, detect, say nightly-2019-01-01 matches the criteria, then "transparently" sync the nightly "head" to that version.
rustup does the former and if it were to do the second it would be lying (it would be telling you you're up to date when you aren't).
Currently rustup does nothing as far as I understood. Does it actually download the latest possible version? In that case I was simply confused by the error message.
rustup update --with-existing-components would have to figure out which components I have installed in nightly, figure out which ones are available in the latest N nightlies, detect, say nightly-2019-01-01 matches the criteria, then "transparently" sync the nightly "head" to that version.
This sounds like the least surprising behavior for rustup update. This is what cargo update would do with my project for example. Find the latest possible working configuration and update to that.
Currently rustup does nothing as far as I understood. Does it actually download the latest possible version? In that case I was simply confused by the error message.
rustup only downloaded nightlies with all components
To clarify, currently rustup only downloads nightlies with all components IF it has all components for LATEST nightly otherwise it refuses to do anything and errors.
As you said, I'd be personally happier if it could figure out a previous (not latest) nightly to download which satisfies alll dependencies and then install it with all components, but it would be semantically different from the current rustup update behaviour (get me latest or get me nothing).
Currently rustup does nothing as far as I understood. Does it actually download the latest possible version? In that case I was simply confused by the error message.
rustup only downloaded nightlies with all components
To clarify, currently rustup only downloads nightlies with all components IF it has all components for LATEST nightly otherwise it refuses to do anything and errors.
As you said, I'd be personally happier if it could figure out a previous (not latest) nightly to download which satisfies alll dependencies and then install it with all components, but it would be semantically different from the current
rustup updatebehaviour (get me latest or get me nothing).
Too much fancy talk for nothing.
When i am updating rust, i don't want to get errors.
I am not doing anything custom.
When i install Rust from the examples, i don't want to get component errors.
Too much fancy talk for nothing.
No offense, but I feel this is to be a bit harsh. It's a discussion, everybody's contribution is valuable.
When i am updating rust, i don't want to get errors.
I am not doing anything custom.
When i install Rust from the examples, i don't want to get component errors.
This is all understandable. Why not reporting this as a bug to the rustup team?
https://github.com/rust-lang/rustup.rs/issues
There is a recent post on the topic here. I'll chime in.
Most helpful comment
This user experience is not good. IMHO it would be better if either rustup only downloaded nightlies with all components I have installed or if rustup told me I'm "up-to-date". But failing is really quite bad.