diff --git a/faraday-pr1523-testsuite-undefined-method-change.patch b/faraday-pr1523-testsuite-undefined-method-change.patch new file mode 100644 index 0000000..72efa8e --- /dev/null +++ b/faraday-pr1523-testsuite-undefined-method-change.patch @@ -0,0 +1,80 @@ +From 05f2d9486bd88dc0030e002e65cb7d91a67b3f5d Mon Sep 17 00:00:00 2001 +From: Koichi ITO +Date: Tue, 15 Aug 2023 13:18:31 +0900 +Subject: [PATCH] Fix a test failure using Ruby 3.3.0dev + +This PR fixes the following test failure using Ruby 3.3.0dev: + +```console +$ ruby -v +ruby 3.3.0dev (2023-08-14T15:48:39Z master 52837fcec2) [x86_64-darwin22] +$ bundle exec rspec spec/faraday_spec.rb + +Randomized with seed 57031 + +Faraday + has a version number + proxies to default_connection + uses method_missing on Faraday if there is no proxyable method (FAILED - 1) + proxies methods that exist on the default_connection + proxied methods can be accessed + +Failures: + + 1) Faraday proxies to default_connection uses method_missing on Faraday if there is no proxyable method + Failure/Error: + expect { Faraday.this_method_does_not_exist }.to raise_error( + NoMethodError, expected_message + ) + + expected NoMethodError with "undefined method `this_method_does_not_exist' for Faraday:Module", + got # with backtrace: + # ./lib/faraday.rb:147:in `method_missing' + # ./spec/faraday_spec.rb:27:in `block (4 levels) in ' + # ./spec/faraday_spec.rb:27:in `block (3 levels) in ' + # ./spec/faraday_spec.rb:27:in `block (3 levels) in ' +``` + +That error message has been changed by https://github.com/ruby/ruby/commit/e7b8d32e in Ruby 3.3.0dev. + +cf. https://bugs.ruby-lang.org/issues/18285 + +So the test error message is changed: + +Ruby 3.2 or lower: + +``` +undefined method `this_method_does_not_exist' for Faraday:Module +``` + +Ruby 3.3.0dev: + +``` +NoMethodError: undefined method `this_method_does_not_exist' for module Faraday +``` +--- + spec/faraday_spec.rb | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/spec/faraday_spec.rb b/spec/faraday_spec.rb +index 8b603ebbd..25d9d4fa9 100644 +--- a/spec/faraday_spec.rb ++++ b/spec/faraday_spec.rb +@@ -18,10 +18,13 @@ + end + + it 'uses method_missing on Faraday if there is no proxyable method' do +- expect { Faraday.this_method_does_not_exist }.to raise_error( +- NoMethodError, +- "undefined method `this_method_does_not_exist' for Faraday:Module" +- ) ++ expected_message = if RUBY_VERSION >= '3.3' ++ "undefined method `this_method_does_not_exist' for module Faraday" ++ else ++ "undefined method `this_method_does_not_exist' for Faraday:Module" ++ end ++ ++ expect { Faraday.this_method_does_not_exist }.to raise_error(NoMethodError, expected_message) + end + + it 'proxied methods can be accessed' do diff --git a/faraday-pr1549-unespace-rack-utils-query-result.patch b/faraday-pr1549-unespace-rack-utils-query-result.patch new file mode 100644 index 0000000..e727376 --- /dev/null +++ b/faraday-pr1549-unespace-rack-utils-query-result.patch @@ -0,0 +1,23 @@ +From 66551ecc79f5d3d5bca1a2523bd8736db8c2220c Mon Sep 17 00:00:00 2001 +From: Mattia Giuffrida +Date: Sat, 20 Jan 2024 16:48:26 +0000 +Subject: [PATCH] Unescape the result of `Rack::Utils.build_nested_query` + +--- + spec/faraday/params_encoders/nested_spec.rb | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/spec/faraday/params_encoders/nested_spec.rb b/spec/faraday/params_encoders/nested_spec.rb +index 46312047f..83da22dc4 100644 +--- a/spec/faraday/params_encoders/nested_spec.rb ++++ b/spec/faraday/params_encoders/nested_spec.rb +@@ -62,7 +62,8 @@ + it 'encodes rack compat' do + params = { a: [{ one: '1', two: '2' }, '3', ''] } + result = Faraday::Utils.unescape(Faraday::NestedParamsEncoder.encode(params)).split('&') +- expected = Rack::Utils.build_nested_query(params).split('&') ++ escaped = Rack::Utils.build_nested_query(params) ++ expected = Rack::Utils.unescape(escaped).split('&') + expect(result).to match_array(expected) + end + diff --git a/faraday-pr1560-ruby34-backtrace-change.patch b/faraday-pr1560-ruby34-backtrace-change.patch new file mode 100644 index 0000000..076c534 --- /dev/null +++ b/faraday-pr1560-ruby34-backtrace-change.patch @@ -0,0 +1,24 @@ +From 8cdc483218d4612d53239f48785567b6b6d056cd Mon Sep 17 00:00:00 2001 +From: m-nakamura145 +Date: Fri, 24 May 2024 23:23:24 +0900 +Subject: [PATCH] Fix compatibility with Ruby 3.4.0-preview1 + +--- + spec/faraday_spec.rb | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/spec/faraday_spec.rb b/spec/faraday_spec.rb +index 30be29cf8..c3583f184 100644 +--- a/spec/faraday_spec.rb ++++ b/spec/faraday_spec.rb +@@ -18,7 +18,9 @@ + end + + it 'uses method_missing on Faraday if there is no proxyable method' do +- expected_message = if RUBY_VERSION >= '3.3' ++ expected_message = if RUBY_VERSION >= '3.4' ++ "undefined method 'this_method_does_not_exist' for module Faraday" ++ elsif RUBY_VERSION >= '3.3' + "undefined method `this_method_does_not_exist' for module Faraday" + else + "undefined method `this_method_does_not_exist' for Faraday:Module" diff --git a/faraday-pr1604-ruby34-hash-inspect-formatting-change.patch b/faraday-pr1604-ruby34-hash-inspect-formatting-change.patch new file mode 100644 index 0000000..b972f1b --- /dev/null +++ b/faraday-pr1604-ruby34-hash-inspect-formatting-change.patch @@ -0,0 +1,30 @@ +From 74962b2d77af4a1ca6bc557031e6c24759dbafa7 Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA +Date: Tue, 3 Dec 2024 15:48:12 +0900 +Subject: [PATCH] [TEST] fix compatibility with ruby 3.4.0dev + +ruby 3.4 changes Hash#inspect formatting as: +https://bugs.ruby-lang.org/issues/20433 + +Closes #1602 +--- + spec/faraday/error_spec.rb | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/spec/faraday/error_spec.rb b/spec/faraday/error_spec.rb +index fd30e2d34..170f32672 100644 +--- a/spec/faraday/error_spec.rb ++++ b/spec/faraday/error_spec.rb +@@ -21,7 +21,11 @@ + it { expect(subject.wrapped_exception).to be_nil } + it { expect(subject.response).to eq(exception) } + it { expect(subject.message).to eq('the server responded with status 400') } +- it { expect(subject.inspect).to eq('#400}>') } ++ if RUBY_VERSION >= '3.4' ++ it { expect(subject.inspect).to eq('#') } ++ else ++ it { expect(subject.inspect).to eq('#400}>') } ++ end + end + + context 'with string' do diff --git a/faraday-rack-pr13-rack31-rack_input.patch b/faraday-rack-pr13-rack31-rack_input.patch new file mode 100644 index 0000000..f08c969 --- /dev/null +++ b/faraday-rack-pr13-rack31-rack_input.patch @@ -0,0 +1,30 @@ +From a590bc34e40b62484440dcd4ab5147c0c02bb425 Mon Sep 17 00:00:00 2001 +From: Andreas Schleifer +Date: Wed, 9 Apr 2025 09:21:05 +0200 +Subject: [PATCH] Fix tests for rack 3.1: env['rack.input'] is optional (#13) + +* fix(spec): fix tests for rack 3.1 + +* feat(ci): add ruby 3.4 to CI test matrix + +--------- + +Co-authored-by: Olle Jonsson +--- + .github/workflows/ci.yml | 1 + + spec/support/webmock_rack_app.rb | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/spec/support/webmock_rack_app.rb b/spec/support/webmock_rack_app.rb +index a3212c7..894c411 100644 +--- a/spec/support/webmock_rack_app.rb ++++ b/spec/support/webmock_rack_app.rb +@@ -49,7 +49,7 @@ def req_headers(env) + end + + def req_body(env) +- env['rack.input'].read ++ env['rack.input']&.read + end + + def process_response(req_signature) diff --git a/rubygem-faraday.spec b/rubygem-faraday.spec index 22df891..6d9542c 100644 --- a/rubygem-faraday.spec +++ b/rubygem-faraday.spec @@ -3,7 +3,7 @@ Name: rubygem-%{gem_name} Version: 1.0.1 -Release: 4%{?dist} +Release: 18%{?dist} Summary: HTTP/REST API client library License: MIT URL: https://lostisland.github.io/faraday @@ -20,6 +20,24 @@ Patch0: rubygem-faraday-1.0.1-Properly-fix-test-failure-with-Rack-2.1.patch # Extracted from: # https://github.com/lostisland/faraday/commit/687108bb4ddc2511aeaae7449dd401fe62dd5ceb Patch1: faraday-1.0.1-net-http-persistent-3-error-kind.patch +# "undefined method" error message changed with ruby 3.3 +# https://github.com/lostisland/faraday/pull/1523 +# https://github.com/ruby/ruby/pull/6950 +Patch2: faraday-pr1523-testsuite-undefined-method-change.patch +# ruby3.4 backtrace quoting change +# https://github.com/lostisland/faraday/pull/1560 +Patch3: faraday-pr1560-ruby34-backtrace-change.patch +# ruby3.4 Hash#inspect formatting change +# https://github.com/lostisland/faraday/pull/1604 +Patch4: faraday-pr1604-ruby34-hash-inspect-formatting-change.patch +# https://github.com/lostisland/faraday-rack/pull/13 +# https://github.com/lostisland/faraday-rack/commit/a590bc34e40b62484440dcd4ab5147c0c02bb425 +# Patch for rack 3.1 wrt env['rack.input'] is optional +Patch5: faraday-rack-pr13-rack31-rack_input.patch +# https://github.com/lostisland/faraday/pull/1549 +# https://github.com/lostisland/faraday/commit/66551ecc79f5d3d5bca1a2523bd8736db8c2220c.patch +# Unescape the result of Rack::Utils.build_nested_query for rack 3.1 +Patch6: faraday-pr1549-unespace-rack-utils-query-result.patch BuildRequires: ruby(release) BuildRequires: rubygems-devel BuildRequires: ruby >= 2.3 @@ -106,6 +124,49 @@ popd %{gem_instdir}/spec %changelog +* Mon Dec 01 2025 Mamoru TASAKA - 1.0.1-18 +- Backport upstream patch for rack3.1 change + +* Fri Jul 25 2025 Fedora Release Engineering - 1.0.1-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Jan 18 2025 Fedora Release Engineering - 1.0.1-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Dec 04 2024 Mamoru TASAKA - 1.0.1-15 +- Use upstreamed patch for ruby34 formatting change + +* Sun Dec 01 2024 Mamoru TASAKA - 1.0.1-14 +- Support ruby3.4 backtrace / Hash inspect formatting change + +* Fri Jul 19 2024 Fedora Release Engineering - 1.0.1-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jan 26 2024 Fedora Release Engineering - 1.0.1-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 1.0.1-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Sep 22 2023 Mamoru TASAKA - 1.0.1-10 +- Backport upstream patch for testsuite with ruby3.3 undefined method + message change + +* Fri Jul 21 2023 Fedora Release Engineering - 1.0.1-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Fri Jan 20 2023 Fedora Release Engineering - 1.0.1-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 1.0.1-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Fri Jan 21 2022 Fedora Release Engineering - 1.0.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 1.0.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Sat Feb 20 2021 Mamoru TASAKA - 1.0.1-4 - Use upstream patch for net-http-persistent 4.0