Skip to content

Ruby LSP tries to upgrade itself when it shouldn't #3687

@olivier-thatch

Description

@olivier-thatch

Description

Ruby LSP Information

VS Code Version

1.99.3

Ruby LSP Extension Version

0.9.31

Ruby LSP Server Version

0.26.0

Ruby LSP Add-ons

  • Tapioca (0.1.3)
  • Ruby LSP Rails (0.4.8)
  • RuboCop (unknown)

Ruby Version

3.4.4

Ruby Version Manager

rbenv

Installed Extensions

Click to expand
  • EditorConfig (0.17.4)
  • docker (0.11.0)
  • even-better-toml (0.21.2)
  • explorer (1.26.3)
  • gitlens (17.3.2)
  • gti-vscode (0.6.2)
  • prettier-vscode (11.0.0)
  • ruby-extensions-pack (0.1.13)
  • ruby-lsp (0.9.31)
  • sorbet-vscode-extension (0.3.44)
  • terraform (2.34.5)
  • typos-vscode (0.1.40)
  • vscode-containers (2.1.0)
  • vscode-coverage-gutters (2.13.0)
  • vscode-docker (2.0.0)
  • vscode-edge-devtools (2.1.9)
  • vscode-erb-beautify (0.5.0)
  • vscode-eslint (3.0.10)
  • vscode-github-actions (0.27.2)
  • vscode-icons (12.13.0)
  • vscode-open-in-github (1.18.0)
  • vscode-pull-request-github (0.108.0)
  • vscode-rdbg (0.2.2)
  • vscode-yaml (1.18.0)

Ruby LSP Settings

Click to expand
Workspace
{
  "rubyVersionManager": {
    "identifier": "rbenv"
  },
  "featureFlags": {
    "tapiocaAddon": false
  }
}
User
{
  "enabledFeatures": {
    "codeActions": true,
    "diagnostics": true,
    "documentHighlights": true,
    "documentLink": true,
    "documentSymbols": true,
    "foldingRanges": true,
    "formatting": true,
    "hover": true,
    "inlayHint": true,
    "onTypeFormatting": true,
    "selectionRanges": true,
    "semanticHighlighting": true,
    "completion": true,
    "codeLens": true,
    "definition": true,
    "workspaceSymbol": true,
    "signatureHelp": true,
    "typeHierarchy": true
  },
  "featuresConfiguration": {},
  "addonSettings": {},
  "rubyVersionManager": {
    "identifier": "rbenv"
  },
  "customRubyCommand": "",
  "formatter": "auto",
  "linters": null,
  "bundleGemfile": "",
  "testTimeout": 30,
  "branch": "",
  "pullDiagnosticsOn": "both",
  "useBundlerCompose": false,
  "bypassTypechecker": false,
  "rubyExecutablePath": "",
  "indexing": {},
  "erbSupport": true,
  "featureFlags": {
    "tapiocaAddon": false
  },
  "sigOpacityLevel": "1"
}

Reproduction steps

For the last couple of weeks, our team has noticed that ruby-lsp will sometimes tries to upgrade itself. Our Gemfile.lock file is version controlled, so this behavior is quite annoying.

I took a brief look at the code and it seems like this explicitly shouldn't happen:

# If `ruby-lsp`, `ruby-lsp-rails` and `debug` are in the Gemfile, then we shouldn't try to upgrade them or else it
# will produce version control changes

Based on timing, I think this started happening when we upgraded from 0.24.1 to 0.26.0. Maybe #3555 is the culprit?

In case it's helpful, here are the contents of the .ruby-lsp/Gemfile file on my laptop:

# This custom gemfile is automatically generated by the Ruby LSP.
# It should be automatically git ignored, but in any case: do not commit it to your repository.

eval_gemfile(File.expand_path("../Gemfile", __dir__))
gem "ruby-lsp", require: false, group: :development

Happy to provide additional details if needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions