From 78c1f6e22c70a21570eb626516aba1e3bbd58533 Mon Sep 17 00:00:00 2001
From: Marcos Tapajos <tapajos@gmail.com>
Date: Fri, 5 Aug 2022 12:34:46 -0300
Subject: [PATCH 1/8] Remove depredated faraday_middleware

---
 json_api_client.gemspec           | 2 +-
 lib/json_api_client.rb            | 2 +-
 lib/json_api_client/connection.rb | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/json_api_client.gemspec b/json_api_client.gemspec
index 658f92f3..0bf66064 100644
--- a/json_api_client.gemspec
+++ b/json_api_client.gemspec
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
 
   s.add_dependency "activesupport", '>= 3.2.0'
   s.add_dependency "faraday", '>= 0.15.2', '< 2.0'
-  s.add_dependency "faraday_middleware", '>= 0.9.0', '< 2.0'
+  s.add_dependency "faraday-gzip", '>= 0.1.0', '< 2.0'
   s.add_dependency "addressable", '~> 2.2'
   s.add_dependency "activemodel", '>= 3.2.0'
   s.add_dependency "rack", '>= 0.2'
diff --git a/lib/json_api_client.rb b/lib/json_api_client.rb
index b4082727..f261a019 100644
--- a/lib/json_api_client.rb
+++ b/lib/json_api_client.rb
@@ -1,5 +1,5 @@
 require 'faraday'
-require 'faraday_middleware'
+require 'faraday/gzip'
 require 'json'
 require 'addressable/uri'
 require 'json_api_client/formatter'
diff --git a/lib/json_api_client/connection.rb b/lib/json_api_client/connection.rb
index d7e9ab33..50026abb 100644
--- a/lib/json_api_client/connection.rb
+++ b/lib/json_api_client/connection.rb
@@ -14,7 +14,7 @@ def initialize(options = {})
         builder.use Middleware::JsonRequest
         builder.use Middleware::Status, status_middleware_options
         builder.use Middleware::ParseJson
-        builder.use ::FaradayMiddleware::Gzip
+        builder.use ::Faraday::Gzip::Middleware
         builder.adapter(*adapter_options)
       end
       yield(self) if block_given?

From d68c85c1a2bfdf52dc2ac95f9fd1f8ef9596262d Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Sat, 25 Nov 2023 12:11:19 -0500
Subject: [PATCH 2/8] Move appraisal to a development dependency

---
 Gemfile                 | 1 -
 json_api_client.gemspec | 1 +
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/Gemfile b/Gemfile
index 0b5a6e5c..6c419569 100644
--- a/Gemfile
+++ b/Gemfile
@@ -3,7 +3,6 @@ source "https://rubygems.org"
 gemspec
 
 gem 'rake'
-gem 'appraisal'
 
 gem "activesupport"
 gem 'addressable', '~> 2.2'
diff --git a/json_api_client.gemspec b/json_api_client.gemspec
index 0bf66064..eaec2182 100644
--- a/json_api_client.gemspec
+++ b/json_api_client.gemspec
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
 
   s.add_development_dependency "webmock", '~> 3.5.1'
   s.add_development_dependency "mocha"
+  s.add_development_dependency "appraisal"
 
   s.license = "MIT"
 

From 4ba3cd178b57415a9d9066822e81eecf79d75555 Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Sat, 25 Nov 2023 12:13:33 -0500
Subject: [PATCH 3/8] Prefix activesupport appraisals

---
 Appraisals                                        | 10 +++++-----
 gemfiles/5.2.3.gemfile                            | 15 ---------------
 gemfiles/6.0.gemfile                              | 15 ---------------
 .../{3.2.gemfile => activesupport_3.2.gemfile}    |  7 +++----
 .../{4.0.gemfile => activesupport_4.0.gemfile}    |  7 +++----
 .../{4.1.gemfile => activesupport_4.1.gemfile}    |  7 +++----
 .../{4.2.gemfile => activesupport_4.2.gemfile}    |  7 +++----
 .../{5.0.gemfile => activesupport_5.0.gemfile}    |  7 +++----
 8 files changed, 20 insertions(+), 55 deletions(-)
 delete mode 100644 gemfiles/5.2.3.gemfile
 delete mode 100644 gemfiles/6.0.gemfile
 rename gemfiles/{3.2.gemfile => activesupport_3.2.gemfile} (55%)
 rename gemfiles/{4.0.gemfile => activesupport_4.0.gemfile} (52%)
 rename gemfiles/{4.1.gemfile => activesupport_4.1.gemfile} (52%)
 rename gemfiles/{4.2.gemfile => activesupport_4.2.gemfile} (52%)
 rename gemfiles/{5.0.gemfile => activesupport_5.0.gemfile} (52%)

diff --git a/Appraisals b/Appraisals
index 6a74ec34..794674ae 100644
--- a/Appraisals
+++ b/Appraisals
@@ -1,20 +1,20 @@
-appraise '3.2' do
+appraise 'activesupport-3.2' do
   gem 'activesupport', '~> 3.2.22'
   gem 'minitest', '~> 5'
 end
 
-appraise '4.0' do
+appraise 'activesupport-4.0' do
   gem 'activesupport', '~> 4.0.13'
 end
 
-appraise '4.1' do
+appraise 'activesupport-4.1' do
   gem 'activesupport', '~> 4.1.14'
 end
 
-appraise '4.2' do
+appraise 'activesupport-4.2' do
   gem 'activesupport', '~> 4.2.5.1'
 end
 
-appraise '5.0' do
+appraise 'activesupport-5.0' do
   gem 'activesupport', '~> 5.0.0'
 end
diff --git a/gemfiles/5.2.3.gemfile b/gemfiles/5.2.3.gemfile
deleted file mode 100644
index 9a9fda0a..00000000
--- a/gemfiles/5.2.3.gemfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file was generated by Appraisal
-
-source "https://rubygems.org"
-
-gem "rake"
-gem "appraisal"
-gem "activesupport", "~> 5.2.3"
-gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
-
-group :development, :test do
-  gem "byebug", :platforms => [:mri_20, :mri_21, :mri_22]
-end
-
-gemspec :path => "../"
diff --git a/gemfiles/6.0.gemfile b/gemfiles/6.0.gemfile
deleted file mode 100644
index e046e114..00000000
--- a/gemfiles/6.0.gemfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file was generated by Appraisal
-
-source "https://rubygems.org"
-
-gem "rake"
-gem "appraisal"
-gem "activesupport", "~> 6.0.0"
-gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
-
-group :development, :test do
-  gem "byebug", :platforms => [:mri_25]
-end
-
-gemspec :path => "../"
diff --git a/gemfiles/3.2.gemfile b/gemfiles/activesupport_3.2.gemfile
similarity index 55%
rename from gemfiles/3.2.gemfile
rename to gemfiles/activesupport_3.2.gemfile
index 822daa14..a6c41edc 100644
--- a/gemfiles/3.2.gemfile
+++ b/gemfiles/activesupport_3.2.gemfile
@@ -3,14 +3,13 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "appraisal"
 gem "activesupport", "~> 3.2.22"
 gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
+gem "codeclimate-test-reporter", group: :test, require: nil
 gem "minitest", "~> 5"
 
 group :development, :test do
-  gem "byebug", :platforms => [:mri_20, :mri_21, :mri_22]
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
 end
 
-gemspec :path => "../"
+gemspec path: "../"
diff --git a/gemfiles/4.0.gemfile b/gemfiles/activesupport_4.0.gemfile
similarity index 52%
rename from gemfiles/4.0.gemfile
rename to gemfiles/activesupport_4.0.gemfile
index 1f6e12a8..4eca9f9d 100644
--- a/gemfiles/4.0.gemfile
+++ b/gemfiles/activesupport_4.0.gemfile
@@ -3,13 +3,12 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "appraisal"
 gem "activesupport", "~> 4.0.13"
 gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
+gem "codeclimate-test-reporter", group: :test, require: nil
 
 group :development, :test do
-  gem "byebug", :platforms => [:mri_20, :mri_21, :mri_22]
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
 end
 
-gemspec :path => "../"
+gemspec path: "../"
diff --git a/gemfiles/4.1.gemfile b/gemfiles/activesupport_4.1.gemfile
similarity index 52%
rename from gemfiles/4.1.gemfile
rename to gemfiles/activesupport_4.1.gemfile
index cf256c7f..4e01cd09 100644
--- a/gemfiles/4.1.gemfile
+++ b/gemfiles/activesupport_4.1.gemfile
@@ -3,13 +3,12 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "appraisal"
 gem "activesupport", "~> 4.1.14"
 gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
+gem "codeclimate-test-reporter", group: :test, require: nil
 
 group :development, :test do
-  gem "byebug", :platforms => [:mri_20, :mri_21, :mri_22]
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
 end
 
-gemspec :path => "../"
+gemspec path: "../"
diff --git a/gemfiles/4.2.gemfile b/gemfiles/activesupport_4.2.gemfile
similarity index 52%
rename from gemfiles/4.2.gemfile
rename to gemfiles/activesupport_4.2.gemfile
index ec3599cd..a6e9b276 100644
--- a/gemfiles/4.2.gemfile
+++ b/gemfiles/activesupport_4.2.gemfile
@@ -3,13 +3,12 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "appraisal"
 gem "activesupport", "~> 4.2.5.1"
 gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
+gem "codeclimate-test-reporter", group: :test, require: nil
 
 group :development, :test do
-  gem "byebug", :platforms => [:mri_20, :mri_21, :mri_22]
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
 end
 
-gemspec :path => "../"
+gemspec path: "../"
diff --git a/gemfiles/5.0.gemfile b/gemfiles/activesupport_5.0.gemfile
similarity index 52%
rename from gemfiles/5.0.gemfile
rename to gemfiles/activesupport_5.0.gemfile
index be66dee2..503441ab 100644
--- a/gemfiles/5.0.gemfile
+++ b/gemfiles/activesupport_5.0.gemfile
@@ -3,13 +3,12 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "appraisal"
 gem "activesupport", "~> 5.0.0"
 gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", :group => :test, :require => nil
+gem "codeclimate-test-reporter", group: :test, require: nil
 
 group :development, :test do
-  gem "byebug", :platforms => [:mri_20, :mri_21, :mri_22]
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
 end
 
-gemspec :path => "../"
+gemspec path: "../"

From 5a3194111145bbea80f7268f321f16aadec15ad9 Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Thu, 2 May 2024 15:54:27 -0400
Subject: [PATCH 4/8] Change activesupport appraisals to >= 6.0

---
 Appraisals                                    | 21 +++++++------------
 Gemfile                                       |  2 +-
 gemfiles/activesupport_3.2.gemfile            | 15 -------------
 ..._5.0.gemfile => activesupport_6.0.gemfile} |  2 +-
 ..._4.0.gemfile => activesupport_6.1.gemfile} |  2 +-
 ..._4.1.gemfile => activesupport_7.0.gemfile} |  2 +-
 ..._4.2.gemfile => activesupport_7.1.gemfile} |  2 +-
 json_api_client.gemspec                       |  4 ++--
 8 files changed, 15 insertions(+), 35 deletions(-)
 delete mode 100644 gemfiles/activesupport_3.2.gemfile
 rename gemfiles/{activesupport_5.0.gemfile => activesupport_6.0.gemfile} (90%)
 rename gemfiles/{activesupport_4.0.gemfile => activesupport_6.1.gemfile} (89%)
 rename gemfiles/{activesupport_4.1.gemfile => activesupport_7.0.gemfile} (89%)
 rename gemfiles/{activesupport_4.2.gemfile => activesupport_7.1.gemfile} (89%)

diff --git a/Appraisals b/Appraisals
index 794674ae..01e8e8a0 100644
--- a/Appraisals
+++ b/Appraisals
@@ -1,20 +1,15 @@
-appraise 'activesupport-3.2' do
-  gem 'activesupport', '~> 3.2.22'
-  gem 'minitest', '~> 5'
+appraise 'activesupport-6.0' do
+  gem 'activesupport', '~> 6.0.0'
 end
 
-appraise 'activesupport-4.0' do
-  gem 'activesupport', '~> 4.0.13'
+appraise 'activesupport-6.1' do
+  gem 'activesupport', '~> 6.1.0'
 end
 
-appraise 'activesupport-4.1' do
-  gem 'activesupport', '~> 4.1.14'
+appraise 'activesupport-7.0' do
+  gem 'activesupport', '~> 7.0.0'
 end
 
-appraise 'activesupport-4.2' do
-  gem 'activesupport', '~> 4.2.5.1'
-end
-
-appraise 'activesupport-5.0' do
-  gem 'activesupport', '~> 5.0.0'
+appraise 'activesupport-7.1' do
+  gem 'activesupport', '~> 7.1.0'
 end
diff --git a/Gemfile b/Gemfile
index 6c419569..c4323770 100644
--- a/Gemfile
+++ b/Gemfile
@@ -4,7 +4,7 @@ gemspec
 
 gem 'rake'
 
-gem "activesupport"
+gem "activesupport", ">= 4.0.13"
 gem 'addressable', '~> 2.2'
 
 gem "codeclimate-test-reporter", group: :test, require: nil
diff --git a/gemfiles/activesupport_3.2.gemfile b/gemfiles/activesupport_3.2.gemfile
deleted file mode 100644
index a6c41edc..00000000
--- a/gemfiles/activesupport_3.2.gemfile
+++ /dev/null
@@ -1,15 +0,0 @@
-# This file was generated by Appraisal
-
-source "https://rubygems.org"
-
-gem "rake"
-gem "activesupport", "~> 3.2.22"
-gem "addressable", "~> 2.2"
-gem "codeclimate-test-reporter", group: :test, require: nil
-gem "minitest", "~> 5"
-
-group :development, :test do
-  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
-end
-
-gemspec path: "../"
diff --git a/gemfiles/activesupport_5.0.gemfile b/gemfiles/activesupport_6.0.gemfile
similarity index 90%
rename from gemfiles/activesupport_5.0.gemfile
rename to gemfiles/activesupport_6.0.gemfile
index 503441ab..57a778e1 100644
--- a/gemfiles/activesupport_5.0.gemfile
+++ b/gemfiles/activesupport_6.0.gemfile
@@ -3,7 +3,7 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "activesupport", "~> 5.0.0"
+gem "activesupport", "~> 6.0.0"
 gem "addressable", "~> 2.2"
 gem "codeclimate-test-reporter", group: :test, require: nil
 
diff --git a/gemfiles/activesupport_4.0.gemfile b/gemfiles/activesupport_6.1.gemfile
similarity index 89%
rename from gemfiles/activesupport_4.0.gemfile
rename to gemfiles/activesupport_6.1.gemfile
index 4eca9f9d..460b7529 100644
--- a/gemfiles/activesupport_4.0.gemfile
+++ b/gemfiles/activesupport_6.1.gemfile
@@ -3,7 +3,7 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "activesupport", "~> 4.0.13"
+gem "activesupport", "~> 6.1.0"
 gem "addressable", "~> 2.2"
 gem "codeclimate-test-reporter", group: :test, require: nil
 
diff --git a/gemfiles/activesupport_4.1.gemfile b/gemfiles/activesupport_7.0.gemfile
similarity index 89%
rename from gemfiles/activesupport_4.1.gemfile
rename to gemfiles/activesupport_7.0.gemfile
index 4e01cd09..5d577ad6 100644
--- a/gemfiles/activesupport_4.1.gemfile
+++ b/gemfiles/activesupport_7.0.gemfile
@@ -3,7 +3,7 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "activesupport", "~> 4.1.14"
+gem "activesupport", "~> 7.0.0"
 gem "addressable", "~> 2.2"
 gem "codeclimate-test-reporter", group: :test, require: nil
 
diff --git a/gemfiles/activesupport_4.2.gemfile b/gemfiles/activesupport_7.1.gemfile
similarity index 89%
rename from gemfiles/activesupport_4.2.gemfile
rename to gemfiles/activesupport_7.1.gemfile
index a6e9b276..5347aea7 100644
--- a/gemfiles/activesupport_4.2.gemfile
+++ b/gemfiles/activesupport_7.1.gemfile
@@ -3,7 +3,7 @@
 source "https://rubygems.org"
 
 gem "rake"
-gem "activesupport", "~> 4.2.5.1"
+gem "activesupport", "~> 7.1.0"
 gem "addressable", "~> 2.2"
 gem "codeclimate-test-reporter", group: :test, require: nil
 
diff --git a/json_api_client.gemspec b/json_api_client.gemspec
index eaec2182..979bba43 100644
--- a/json_api_client.gemspec
+++ b/json_api_client.gemspec
@@ -11,11 +11,11 @@ Gem::Specification.new do |s|
   s.description = 'Build client libraries compliant with specification defined by jsonapi.org'
   s.summary = 'Build client libraries compliant with specification defined by jsonapi.org'
 
-  s.add_dependency "activesupport", '>= 3.2.0'
+  s.add_dependency "activesupport", '>= 6.0.0'
   s.add_dependency "faraday", '>= 0.15.2', '< 2.0'
   s.add_dependency "faraday-gzip", '>= 0.1.0', '< 2.0'
   s.add_dependency "addressable", '~> 2.2'
-  s.add_dependency "activemodel", '>= 3.2.0'
+  s.add_dependency "activemodel", '>= 6.0.0'
   s.add_dependency "rack", '>= 0.2'
 
   s.add_development_dependency "webmock", '~> 3.5.1'

From 977015f6146038ebfd400b8e9cc27d845e7ef194 Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Sat, 25 Nov 2023 12:15:23 -0500
Subject: [PATCH 5/8] Allow Faraday 2.x

---
 Appraisals                   | 10 ++++++++++
 gemfiles/faraday_1.x.gemfile | 16 ++++++++++++++++
 gemfiles/faraday_2.x.gemfile | 16 ++++++++++++++++
 json_api_client.gemspec      |  4 ++--
 4 files changed, 44 insertions(+), 2 deletions(-)
 create mode 100644 gemfiles/faraday_1.x.gemfile
 create mode 100644 gemfiles/faraday_2.x.gemfile

diff --git a/Appraisals b/Appraisals
index 01e8e8a0..d945edc6 100644
--- a/Appraisals
+++ b/Appraisals
@@ -13,3 +13,13 @@ end
 appraise 'activesupport-7.1' do
   gem 'activesupport', '~> 7.1.0'
 end
+
+appraise 'faraday-1.x' do
+  gem 'faraday', '~> 1.10'
+  gem 'faraday-gzip', '~> 1.0'
+end
+
+appraise 'faraday-2.x' do
+  gem 'faraday', '~> 2.0'
+  gem 'faraday-gzip', '~> 2.0'
+end
diff --git a/gemfiles/faraday_1.x.gemfile b/gemfiles/faraday_1.x.gemfile
new file mode 100644
index 00000000..f6c65ac0
--- /dev/null
+++ b/gemfiles/faraday_1.x.gemfile
@@ -0,0 +1,16 @@
+# This file was generated by Appraisal
+
+source "https://rubygems.org"
+
+gem "rake"
+gem "activesupport", ">= 4.0.13"
+gem "addressable", "~> 2.2"
+gem "codeclimate-test-reporter", group: :test, require: nil
+gem "faraday", "~> 1.10"
+gem "faraday-gzip", "~> 1.0"
+
+group :development, :test do
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
+end
+
+gemspec path: "../"
diff --git a/gemfiles/faraday_2.x.gemfile b/gemfiles/faraday_2.x.gemfile
new file mode 100644
index 00000000..d857de41
--- /dev/null
+++ b/gemfiles/faraday_2.x.gemfile
@@ -0,0 +1,16 @@
+# This file was generated by Appraisal
+
+source "https://rubygems.org"
+
+gem "rake"
+gem "activesupport", ">= 4.0.13"
+gem "addressable", "~> 2.2"
+gem "codeclimate-test-reporter", group: :test, require: nil
+gem "faraday", "~> 2.0"
+gem "faraday-gzip", "~> 2.0"
+
+group :development, :test do
+  gem "byebug", "~> 10.0", platforms: [:mri_20, :mri_21, :mri_22]
+end
+
+gemspec path: "../"
diff --git a/json_api_client.gemspec b/json_api_client.gemspec
index 979bba43..3c048320 100644
--- a/json_api_client.gemspec
+++ b/json_api_client.gemspec
@@ -12,8 +12,8 @@ Gem::Specification.new do |s|
   s.summary = 'Build client libraries compliant with specification defined by jsonapi.org'
 
   s.add_dependency "activesupport", '>= 6.0.0'
-  s.add_dependency "faraday", '>= 0.15.2', '< 2.0'
-  s.add_dependency "faraday-gzip", '>= 0.1.0', '< 2.0'
+  s.add_dependency "faraday", '>= 1.10', '< 3.0'
+  s.add_dependency "faraday-gzip", '>= 1.0', '< 3.0'
   s.add_dependency "addressable", '~> 2.2'
   s.add_dependency "activemodel", '>= 6.0.0'
   s.add_dependency "rack", '>= 0.2'

From b4c08b1ad1160fa6b203ed60eeb1a0742fc4fd8d Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Sat, 25 Nov 2023 11:48:15 -0500
Subject: [PATCH 6/8] Add support for Faraday 2.x

---
 lib/json_api_client/connection.rb            |  4 +--
 lib/json_api_client/middleware.rb            |  3 +-
 lib/json_api_client/middleware/parse_json.rb | 31 --------------------
 3 files changed, 3 insertions(+), 35 deletions(-)
 delete mode 100644 lib/json_api_client/middleware/parse_json.rb

diff --git a/lib/json_api_client/connection.rb b/lib/json_api_client/connection.rb
index 50026abb..c7bfa8eb 100644
--- a/lib/json_api_client/connection.rb
+++ b/lib/json_api_client/connection.rb
@@ -13,7 +13,7 @@ def initialize(options = {})
         builder.request :json
         builder.use Middleware::JsonRequest
         builder.use Middleware::Status, status_middleware_options
-        builder.use Middleware::ParseJson
+        builder.response :json
         builder.use ::Faraday::Gzip::Middleware
         builder.adapter(*adapter_options)
       end
@@ -24,7 +24,7 @@ def initialize(options = {})
     #   inserted middleware will run after json parsed
     def use(middleware, *args, &block)
       return if faraday.builder.locked?
-      faraday.builder.insert_before(Middleware::ParseJson, middleware, *args, &block)
+      faraday.builder.insert_before(::Faraday::Response::Json, middleware, *args, &block)
     end
 
     def delete(middleware)
diff --git a/lib/json_api_client/middleware.rb b/lib/json_api_client/middleware.rb
index ed44a367..88627215 100644
--- a/lib/json_api_client/middleware.rb
+++ b/lib/json_api_client/middleware.rb
@@ -1,7 +1,6 @@
 module JsonApiClient
   module Middleware
     autoload :JsonRequest, 'json_api_client/middleware/json_request'
-    autoload :ParseJson, 'json_api_client/middleware/parse_json'
     autoload :Status, 'json_api_client/middleware/status'
   end
-end
\ No newline at end of file
+end
diff --git a/lib/json_api_client/middleware/parse_json.rb b/lib/json_api_client/middleware/parse_json.rb
deleted file mode 100644
index 02141a64..00000000
--- a/lib/json_api_client/middleware/parse_json.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-module JsonApiClient
-  module Middleware
-    class ParseJson < Faraday::Middleware
-
-      def call(environment)
-        @app.call(environment).on_complete do |env|
-          if process_response_type?(response_type(env))
-            env[:raw_body] = env[:body]
-            env[:body] = parse(env[:body])
-          end
-        end
-      end
-
-      private
-
-      def parse(body)
-        ::JSON.parse(body) unless body.strip.empty?
-      end
-
-      def response_type(env)
-        type = env[:response_headers]['Content-Type'].to_s
-        type = type.split(';', 2).first if type.index(';')
-        type
-      end
-
-      def process_response_type?(type)
-        !!type.match(/\bjson$/)
-      end
-    end
-  end
-end
\ No newline at end of file

From 6e0917816a1900c02f7960a7e5d5be654fe62b91 Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Thu, 2 May 2024 16:01:49 -0400
Subject: [PATCH 7/8] Drop unsupported Ruby versions

---
 .github/workflows/ruby.yml | 30 ++++++++----------------------
 1 file changed, 8 insertions(+), 22 deletions(-)

diff --git a/.github/workflows/ruby.yml b/.github/workflows/ruby.yml
index 2012e7f8..2a581710 100644
--- a/.github/workflows/ruby.yml
+++ b/.github/workflows/ruby.yml
@@ -22,27 +22,11 @@ jobs:
     strategy:
       fail-fast: false
       matrix:
-        ruby: [2.3, 2.4, 2.5, 2.6, 2.7]
-        rails: ["4.1", "4.2", "5.0", "5.2.3", "6.0"]
-        exclude:
-          - ruby: "2.4"
-            rails: "4.1"
-          - ruby: "2.4"
-            rails: "4.2"
-          - ruby: "2.4"
-            rails: "6.0"
-          - ruby: "2.5"
-            rails: "4.1"
-          - ruby: "2.5"
-            rails: "4.2"
-          - ruby: "2.6"
-            rails: "4.1"
-          - ruby: "2.6"
-            rails: "4.2"
-          - ruby: "2.7"
-            rails: "4.1"
-          - ruby: "2.7"
-            rails: "4.2"
+        ruby:
+          - "3.0"
+          - "3.1"
+          - "3.2"
+          - "3.3"
     steps:
     - uses: actions/checkout@v4
     - name: Set up Ruby
@@ -51,4 +35,6 @@ jobs:
         ruby-version: ${{ matrix.ruby }}
         bundler-cache: true # runs 'bundle install' and caches installed gems automatically
     - name: Run tests
-      run: bundle exec rake
+      run: |
+        bundle exec appraisal install
+        bundle exec appraisal rake test

From 1db00ea99d8d47f75ee9a265318f417c729cd86c Mon Sep 17 00:00:00 2001
From: Sebastien Lavoie <sebastien.lavoie@shopify.com>
Date: Thu, 2 May 2024 16:08:01 -0400
Subject: [PATCH 8/8] Update the changelog

---
 CHANGELOG.md | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 800e455e..f11740e2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,11 @@
 
 ## Unreleased
 
-
+- [#412](https://github.com/JsonApiClient/json_api_client/pull/412)
+  - Add support for faraday 2.x
+  - Drop support for Ruby < 3.0 (EOL)
+  - Drop support for activesupport < 6.0 (EOL)
+  - Remove deprecated faraday_middleware and add faraday-gzip (from [#402](https://github.com/JsonApiClient/json_api_client/pull/402))
 - [#400](https://github.com/JsonApiClient/json_api_client/pull/400) - Fix for multi-word custom endpoint and route format
 
 ## 1.22.0