From 3e87e1d930532f80752bda46517b15381085d2cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Wed, 19 Feb 2025 19:51:55 -0300 Subject: [PATCH 1/4] Drop support for older rails versions --- .github/workflows/ci.yml | 44 ++++++++++++++++------------------------ Gemfile | 4 +++- gemfiles/6.0.gemfile | 8 -------- gemfiles/6.1.gemfile | 8 -------- gemfiles/7.0.gemfile | 9 -------- 5 files changed, 20 insertions(+), 53 deletions(-) delete mode 100644 gemfiles/6.0.gemfile delete mode 100644 gemfiles/6.1.gemfile delete mode 100644 gemfiles/7.0.gemfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 094df87f..44ced096 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,43 +6,34 @@ jobs: test: strategy: matrix: - include: - - gemfile: 6.0.gemfile - ruby: 2.5 - - - gemfile: 6.0.gemfile - ruby: 2.6 - - - gemfile: 6.0.gemfile - ruby: 2.7 - - - gemfile: 6.0.gemfile - ruby: '3.0' - - - gemfile: 6.1.gemfile - ruby: '3.0' - - - gemfile: 7.0.gemfile - ruby: '3.0' - - - gemfile: 7.0.gemfile - ruby: '3.1' - - - gemfile: 7.0.gemfile - ruby: '3.2' - + ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7"] + rails: ["8.0", "7.2", "7.1", "6.1"] + exclude: + - rails: "7.2" + ruby: "2.7" + - rails: "7.2" + ruby: "3.0" + + - rails: "8.0" + ruby: "2.7" + - rails: "8.0" + ruby: "3.0" + - rails: "8.0" + ruby: "3.1" runs-on: ubuntu-latest services: redis: image: redis - ports: ['6379:6379'] + ports: ["6379:6379"] options: >- --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 + env: + RAILS_VERSION: ${{ matrix.rails }} steps: - uses: actions/checkout@v4 @@ -52,7 +43,6 @@ jobs: - name: Install dependencies run: | - bundle config set gemfile "${GITHUB_WORKSPACE}/gemfiles/${{ matrix.gemfile }}" bundle install --jobs 4 --retry 3 - name: Display Ruby version diff --git a/Gemfile b/Gemfile index c67483fc..323c44a8 100644 --- a/Gemfile +++ b/Gemfile @@ -6,4 +6,6 @@ gemspec gem "rubocop", require: false gem "codeclimate-test-reporter" -gem "rack", "< 3" +gem "concurrent-ruby", "< 1.3.5" + +gem "rails", "~> #{ENV.fetch('RAILS_VERSION', '8.0')}" diff --git a/gemfiles/6.0.gemfile b/gemfiles/6.0.gemfile deleted file mode 100644 index 4d97f903..00000000 --- a/gemfiles/6.0.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -source "https://rubygems.org" - -gem "rubocop", require: false -gem "codeclimate-test-reporter" -gem "rails", "~> 6.0" -gem "concurrent-ruby", "< 1.3.5" - -gemspec path: "../" diff --git a/gemfiles/6.1.gemfile b/gemfiles/6.1.gemfile deleted file mode 100644 index b95e97e2..00000000 --- a/gemfiles/6.1.gemfile +++ /dev/null @@ -1,8 +0,0 @@ -source "https://rubygems.org" - -gem "rubocop", require: false -gem "codeclimate-test-reporter" -gem "rails", "~> 6.1" -gem "concurrent-ruby", "< 1.3.5" - -gemspec path: "../" diff --git a/gemfiles/7.0.gemfile b/gemfiles/7.0.gemfile deleted file mode 100644 index 1a33a37a..00000000 --- a/gemfiles/7.0.gemfile +++ /dev/null @@ -1,9 +0,0 @@ -source "https://rubygems.org" - -gem "rubocop", require: false -gem "codeclimate-test-reporter" -gem "rails", "~> 7.0" -gem "concurrent-ruby", "< 1.3.5" -gem "rack", "< 3" - -gemspec path: "../" From af2f33f777006514d08917a419d3b6f5dccb3027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Wed, 19 Feb 2025 20:05:30 -0300 Subject: [PATCH 2/4] Fix compatibility with newer rack versions --- lib/split/dashboard.rb | 3 ++- lib/split/persistence/cookie_adapter.rb | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/split/dashboard.rb b/lib/split/dashboard.rb index 2e497cf9..48c3f1e7 100755 --- a/lib/split/dashboard.rb +++ b/lib/split/dashboard.rb @@ -29,7 +29,8 @@ class Dashboard < Sinatra::Base if Object.const_defined?("Rails") && Rails.respond_to?(:env) @current_env = Rails.env.titlecase else - @current_env = "Rack: #{Rack.version}" + rack_version = Rack.respond_to?(:version) ? Rack.version : Rack.release + @current_env = "Rack: #{rack_version}" end erb :index end diff --git a/lib/split/persistence/cookie_adapter.rb b/lib/split/persistence/cookie_adapter.rb index d0f4be15..45c8a121 100644 --- a/lib/split/persistence/cookie_adapter.rb +++ b/lib/split/persistence/cookie_adapter.rb @@ -47,8 +47,9 @@ def default_options end def set_cookie_via_rack(key, value) - delete_cookie_header!(@response.header, key, value) - Rack::Utils.set_cookie_header!(@response.header, key, value) + headers = @response.respond_to?(:header) ? @response.header : @response.headers + delete_cookie_header!(headers, key, value) + Rack::Utils.set_cookie_header!(headers, key, value) end # Use Rack::Utils#make_delete_cookie_header after Rack 2.0.0 From 669ef55a522e1f1e44bb82271fb74a53493b625c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Wed, 19 Feb 2025 20:05:46 -0300 Subject: [PATCH 3/4] Add bigdecimal as a dependency --- split.gemspec | 1 + 1 file changed, 1 insertion(+) diff --git a/split.gemspec b/split.gemspec index fc0e66ba..6e05535f 100644 --- a/split.gemspec +++ b/split.gemspec @@ -35,6 +35,7 @@ Gem::Specification.new do |s| s.add_dependency "sinatra", ">= 1.2.6" s.add_dependency "rubystats", ">= 0.3.0" s.add_dependency "matrix" + s.add_dependency "bigdecimal" s.add_development_dependency "bundler", ">= 1.17" s.add_development_dependency "simplecov", "~> 0.15" From ffd1d96842f506a9e747c7d89e7d5669eb243a60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Luis=20Leal=20Cardoso=20Junior?= Date: Wed, 19 Feb 2025 20:10:23 -0300 Subject: [PATCH 4/4] Do not test ruby 3.4 on Rails 6.1 --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 44ced096..cc08844f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,6 +9,9 @@ jobs: ruby: ["3.4", "3.3", "3.2", "3.1", "3.0", "2.7"] rails: ["8.0", "7.2", "7.1", "6.1"] exclude: + - rails: "6.1" + ruby: "3.4" + - rails: "7.2" ruby: "2.7" - rails: "7.2"