-
Notifications
You must be signed in to change notification settings - Fork 251
Provide --update-server command from executable #3124
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requesthelp-wantedExtra attention is neededExtra attention is neededpinnedThis issue or pull request is pinned and won't be marked as staleThis issue or pull request is pinned and won't be marked as staleserverThis pull request should be included in the server gem's release notesThis pull request should be included in the server gem's release notes
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requesthelp-wantedExtra attention is neededExtra attention is neededpinnedThis issue or pull request is pinned and won't be marked as staleThis issue or pull request is pinned and won't be marked as staleserverThis pull request should be included in the server gem's release notesThis pull request should be included in the server gem's release notes
Type
Fields
Give feedbackNo fields configured for issues without a type.
The relationship between the global
ruby-lspexecutable version vs the server version that actually gets run is often a source of confusion to users. Additionally, if some other gem is constraining our upgrades, users sometimes have trouble identifying which gem is holding back the upgrade.On top of those, users with relative paths in their Bundler settings don't have a very easy way to upgrade because Bundler considers the Gemfile path to be the root of everything. If you have
BUNDLE_PATH=vendor/bundle, then running thisWill install gems in
.ruby-lsp/vendor/bundlebecause the path becomes relative to the Gemfile. All of this is not great and we can provide better tools for upgrades and diagnosing issues.Let's add a
ruby-lsp --update-servercommand that will simply runbundle updateusing our composed environment, with all Bundler settings turned into absolute paths (which is what we do while regular composition). Furthermore, if a gem is preventing the upgrade, it would be awesome if we could inform the user about which one it is.