From f44c02429954a00bafed4f0836f3953d6a9de9a8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 8 Jan 2026 01:58:36 +0000 Subject: [PATCH 1/6] Initial plan From 1bf7fdd782ca9c66bb0a65c309fa9ec1aa062e46 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 8 Jan 2026 02:07:58 +0000 Subject: [PATCH 2/6] Update to Ruby 4.0: Update Dockerfile and gemspec for Ruby 4.0 compatibility Co-authored-by: kwerle <23320+kwerle@users.noreply.github.com> --- Dockerfile | 4 ++-- ruby_language_server.gemspec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a7f1949..a334ae3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,10 +2,10 @@ # # For development: # docker run -it -v $PWD:/project -v $PWD:/tmp/src -w /tmp/src ruby_language_server sh -c 'bundle && guard' -FROM ruby:3.3-alpine +FROM ruby:4.0-alpine LABEL maintainer="kurt@CircleW.org" -RUN gem update bundler +# RUN gem update bundler - Skipping as Ruby 4.0 comes with compatible bundler # Needed for byebug and some other gems RUN apk update diff --git a/ruby_language_server.gemspec b/ruby_language_server.gemspec index 677c420..7f18410 100644 --- a/ruby_language_server.gemspec +++ b/ruby_language_server.gemspec @@ -14,7 +14,7 @@ Gem::Specification.new do |spec| spec.description = 'Provide a language server implementation for ruby in ruby. See https://microsoft.github.io/language-server-protocol/ "A Language Server is meant to provide the language-specific smarts and communicate with development tools over a protocol that enables inter-process communication."' spec.homepage = 'https://github.com/kwerle/ruby_language_server' spec.license = 'MIT' - spec.required_ruby_version = '>=3.3.0' + spec.required_ruby_version = '>=4.0.0' # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host' # to allow pushing to a single host or delete this section to allow pushing to any host. From b123bc92393129d14c4459d61ccf48d23dcbfb7b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 8 Jan 2026 02:14:25 +0000 Subject: [PATCH 3/6] Update CHANGELOG for Ruby 4.0 migration Co-authored-by: kwerle <23320+kwerle@users.noreply.github.com> --- CHANGELOG.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index ebb7ddc..c067cd2 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,5 +1,9 @@ # Changelog +#### Unreleased + +* Update to Ruby 4.0 - resolves gem build issues mentioned in 0.9.0 + #### 0.9.1 Tue Jan 6 19:32:44 PST 2026 * Method parameters From d3a7f778b070acf397ca5a02e79f17fefabee49e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 8 Jan 2026 07:15:25 +0000 Subject: [PATCH 4/6] Update RuboCop TargetRubyVersion to 4.0 Co-authored-by: kwerle <23320+kwerle@users.noreply.github.com> --- .rubocop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.rubocop.yml b/.rubocop.yml index 847f297..acdcaa7 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -14,7 +14,7 @@ plugins: - rubocop-rake AllCops: - TargetRubyVersion: 3.3 # 4.0 not yet afailable Tue Dec 30 15:07:23 PST 2025 + TargetRubyVersion: 4.0 NewCops: enable Exclude: - 'spec/fixture_files/**/*' From 0402b2b1c189d67674046ba2536961e0b4bbe535 Mon Sep 17 00:00:00 2001 From: Kurt Werle Date: Mon, 12 Jan 2026 19:27:48 -0800 Subject: [PATCH 5/6] Build tweaks --- Dockerfile | 4 ++-- Gemfile.lock | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index a334ae3..cd8ccb9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN curl -O -L https://github.com/mateusza/SQLite-Levenshtein/archive/master.zip RUN unzip master.zip WORKDIR /usr/local/src/SQLite-Levenshtein-master RUN ./configure -RUN make -j 8 install +RUN make install WORKDIR /app RUN rm -rf /usr/local/src @@ -31,7 +31,7 @@ ENV RUBY_LANGUAGE_SERVER_PROJECT_ROOT=/project/ COPY Gemfile* ruby_language_server.gemspec ./ COPY lib/ruby_language_server/version.rb lib/ruby_language_server/version.rb -RUN bundle install -j 8 +RUN bundle install COPY . ./ diff --git a/Gemfile.lock b/Gemfile.lock index 67ded1d..26fff2d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -210,6 +210,7 @@ DEPENDENCIES rubocop-rspec ruby_language_server! simplecov + simplecov_json_formatter CHECKSUMS activemodel (8.1.1) sha256=8b7e2496b9e333ced06248c16a43217b950192c98e0fe3aa117eee21501c6fbd From f4c606e39ed9ca77dcd82751be66cfe3c86208e1 Mon Sep 17 00:00:00 2001 From: Kurt Werle Date: Mon, 12 Jan 2026 19:30:28 -0800 Subject: [PATCH 6/6] Cops --- spec/lib/ruby_language_server/completion_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/lib/ruby_language_server/completion_spec.rb b/spec/lib/ruby_language_server/completion_spec.rb index 43e3b0b..8b01541 100644 --- a/spec/lib/ruby_language_server/completion_spec.rb +++ b/spec/lib/ruby_language_server/completion_spec.rb @@ -42,12 +42,12 @@ def baz; end let(:all_scopes) { @scope_parser.root_scope.self_and_descendants } let(:nar_naz_scope) { all_scopes.find_by_path('Foo::Nar#naz') } - def scope_completions(*args) - RubyLanguageServer::Completion.send(:scope_completions, *args) + def scope_completions(*) + RubyLanguageServer::Completion.send(:scope_completions, *) end - def scope_completions_in_target_context(*args) - RubyLanguageServer::Completion.send(:scope_completions_in_target_context, *args) + def scope_completions_in_target_context(*) + RubyLanguageServer::Completion.send(:scope_completions_in_target_context, *) end describe '.completion' do