Ensure update server gem command updates the locked server #2145
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
Our current implementation of the update language server gem command only runs
gem update ruby-lsp
. But that's actually not relevant for the version of the server that actually gets booted since that's controlled by the version locked in.ruby-lsp/Gemfile.lock
.This PR ensures that both the global installation and the locked versions are updated.
Implementation
We use the method to install or update the server gem in two different places, so I introduced a parameter to indicate when the user manually requested an update.
In those cases, we now also delete the entire
.ruby-lsp
directory, so that the locked server of the gem is updated.I also started re-booting the server after the update since it doesn't make sense to request an update, but then continue running the old version.