-
Notifications
You must be signed in to change notification settings - Fork 892
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
Add --profile empty
support
#2974
Conversation
In order to support the possibility that you need a specific tool from a specific `nightly`, we permit the installation of an empty profile. To do this, we have to pass permission for the core manifest installer to perform a "no-op" which we only ever pass in if you are installing a toolchain and you specify that you want `--profile empty`. Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Signed-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>
Hi @kinnison. Can i try to continue to do this work? But i think your implemention is already OK. What can I do to make it more perfecter. Maybe some |
Functionally I think the change is complete. You are quite right that some documentation updates would be a good idea, along with augmenting the tests to verify install with empty profile and a component. I would like @rbtcollins to at least indicate he wouldn't veto this idea entirely though before we merge. If you want to have a go at the docs and additional test, then if you push a branch to your own fork of this branch, and then let me know, I'll pull them into mine so the PR updates. |
I have three concerns: are we solving a problem that no one has? How much or how often will people get confused by the result of using this interesting option? How usable is it for example a profile with just rustfmt... what does it actually do? |
To answer the first - currently noone has the problem, but this was discussed as an approach to provide To the second - my hope is "very little" but we could put effort into hiding it a little more if you want. If we did that I'd like to hide To the third, I cannot say for certain that all components would work without I'm happy to backburner this, it's not urgent in any sense. |
So for all our other channels we have strict bindings. Cargo X belongs with rust Y. And rustup is very data driven: there is nothing preventing issueing a new channel update with the new version of R-A but everything else unchanged. I don't understand why starting to model a whole new way of thinking about packages is needed. Perhaps it has to do with the fact that rust-analyzer isn't like the other rust ecosystem components - and for that I would ask why we're installing it at all. Like, from a software layer perspective, makes a whole lot more sense to me than Because the later will never work without RA overriding RUSTUP_TOOLCHAIN variables, which will cause trouble as it supercedes toolchain files... |
Ok, I've had time to really think about this now. I think ultimately this depends on whether the rust-analyzer folk want to:
For the former, we don't need this change. My personal view is that just offering downloads, like rustup does, for rust-analyzer, and doing platform detection inside IDE plugins (e.g. the vscode plugin) then downloading the ra binary from there will be the most effective approach. However, if the ra team decide they prefer dealing with RUST_TOOLCHAIN directly and and so on, we can reopen this and implement it then. Work on hiding |
This is not necessarily the best way to do this, but I wanted an example up in case someone else wanted to take this further and complete it.
If @rbtcollins is OK with the idea of
--profile empty
and with this dodgy implementation then we can merge it, otherwise I'd rather this just be used to spark discussion.If merged, this closes #2970