rust-lang / rust-lang/rust-analyzer

Remove NixOS Support from Rust-Analyzer

Open
#17,700 5 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-vscode C-feature
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.