rust-lang / rust-lang/rust-analyzer
Remove NixOS Support from Rust-Analyzer
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
Not that I don't appreciate the attempts to support NixOS, but the package manager's packaging scripts are the correct layer of abstraction to support OS/distribution layer concerns. There are numerous edge cases for NixOS that are not correctly handled by the code implementing NixOS checks, specifically bootstrap.ts, which are causing numerous bug reports from users, in a multitude of forums. I am requesting that specific packaging handling for NixOS be removed from the Rust-Analyzer VSCode extension, to allow the package maintainers to consider the edge cases more clearly for their specific use cases.
To further elaborate, NixOS attempts to be immutable and repeatable in all things involving the installation of software. The design feature of bootstrap.ts, which will actually overwrite and mutate state of the language server, is at odds with these goals, making the system less deterministic. Additionally, there are use-cases, such as installing VS Code and Rust-Analyzer in a container, where the assumptions made by the script author do not hold true and are causing runtime failures.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in bootstrap.ts, which the issue identifies as the location of the NixOS checks and state-mutating packaging logic in the Rust-Analyzer VSCode extension. Trace the NixOS-specific handling and determine its removal boundary, then verify that distribution-specific packaging concerns are no longer handled by the extension and remain available to package maintainers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nixos, rust, vscode
- Domain
- devtools, operating-systems
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100