From 625fbba37c776a03a2f87250827e6762f37d0c49 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Wed, 22 Jan 2025 00:26:17 -0800 Subject: [PATCH 1/3] bump mini ruby version to 3.1 --- .github/workflows/unittest.yml | 4 ++-- .rubocop.yml | 2 +- appium_lib_core.gemspec | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 2b6a4022..495bd13f 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: [3.0, 3.1, 3.2] + ruby: [3.1, 3.2, 3.3] runs-on: ubuntu-latest @@ -38,7 +38,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: [3.0, 3.1, 3.2] + ruby: [3.1, 3.2, 3.3] runs-on: windows-latest diff --git a/.rubocop.yml b/.rubocop.yml index d213ce80..abaf7acd 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,5 @@ AllCops: - TargetRubyVersion: 2.6 + TargetRubyVersion: 3.1 Layout/LineLength: Max: 128 Layout/RescueEnsureAlignment: diff --git a/appium_lib_core.gemspec b/appium_lib_core.gemspec index cbf5cd8b..d435cc41 100644 --- a/appium_lib_core.gemspec +++ b/appium_lib_core.gemspec @@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) require 'appium_lib_core/version' Gem::Specification.new do |spec| - spec.required_ruby_version = Gem::Requirement.new('>= 3.0') + spec.required_ruby_version = Gem::Requirement.new('>= 3.1') spec.name = 'appium_lib_core' spec.version = Appium::Core::VERSION From f4e0985f4fd81d006b2b2f27af07fe7f0bdcd2d8 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Wed, 22 Jan 2025 00:34:47 -0800 Subject: [PATCH 2/3] update more --- .rubocop.yml | 84 ++++++++++++++++++- CHANGELOG.md | 1 + .../common/base/http_default.rb | 2 +- .../support/event_firing_bridge.rb | 2 +- test/test_helper.rb | 2 +- 5 files changed, 85 insertions(+), 6 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index abaf7acd..8ccb53e5 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -75,7 +75,7 @@ Lint/AmbiguousRange: Lint/DeprecatedConstants: Enabled: true Lint/DuplicateBranch: - Enabled: true + Enabled: false Lint/DuplicateRegexpCharacterClassElement: Enabled: true Lint/EmptyBlock: @@ -114,6 +114,7 @@ Security/IoMethods: Enabled: true Style/ArgumentsForwarding: Enabled: true + UseAnonymousForwarding: false Style/CollectionCompact: Enabled: true Style/DocumentDynamicEvalDefinition: @@ -170,12 +171,11 @@ Lint/RequireRangeParentheses: # new in 1.32 Enabled: true Lint/UselessRescue: # new in 1.43 Enabled: true -Lint/DuplicateBranch: - Enabled: false Metrics/CollectionLiteralLength: # new in 1.47 Enabled: true Naming/BlockForwarding: # new in 1.24 Enabled: true + EnforcedStyle: explicit Security/CompoundHash: # new in 1.28 Enabled: true Style/ArrayIntersect: # new in 1.40 @@ -228,3 +228,81 @@ Style/RedundantStringEscape: # new in 1.37 Enabled: true Style/RegexpLiteral: Enabled: false +Gemspec/AddRuntimeDependency: # new in 1.65 + Enabled: true +Lint/ConstantReassignment: # new in 1.70 + Enabled: true +Lint/DuplicateMatchPattern: # new in 1.50 + Enabled: true +Lint/DuplicateSetElement: # new in 1.67 + Enabled: true +Lint/HashNewWithKeywordArgumentsAsDefault: # new in 1.69 + Enabled: true +Lint/ItWithoutArgumentsInBlock: # new in 1.59 + Enabled: true +Lint/LiteralAssignmentInCondition: # new in 1.58 + Enabled: true +Lint/MixedCaseRange: # new in 1.53 + Enabled: true +Lint/NumericOperationWithConstantResult: # new in 1.69 + Enabled: true +Lint/RedundantRegexpQuantifiers: # new in 1.53 + Enabled: true +Lint/SharedMutableDefault: # new in 1.70 + Enabled: true +Lint/UnescapedBracketInRegexp: # new in 1.68 + Enabled: true +Lint/UselessDefined: # new in 1.69 + Enabled: true +Lint/UselessNumericOperation: # new in 1.66 + Enabled: true +Style/AmbiguousEndlessMethodDefinition: # new in 1.68 + Enabled: true +Style/BitwisePredicate: # new in 1.68 + Enabled: true +Style/CombinableDefined: # new in 1.68 + Enabled: true +Style/DataInheritance: # new in 1.49 + Enabled: true +Style/DigChain: # new in 1.69 + Enabled: true +Style/ExactRegexpMatch: # new in 1.51 + Enabled: true +Style/FileNull: # new in 1.69 + Enabled: true +Style/FileTouch: # new in 1.69 + Enabled: true +Style/ItAssignment: # new in 1.70 + Enabled: true +Style/KeywordArgumentsMerging: # new in 1.68 + Enabled: true +Style/MapIntoArray: # new in 1.63 + Enabled: true +Style/RedundantArrayConstructor: # new in 1.52 + Enabled: true +Style/RedundantCurrentDirectoryInPath: # new in 1.53 + Enabled: true +Style/RedundantFilterChain: # new in 1.52 + Enabled: true +Style/RedundantInterpolationUnfreeze: # new in 1.66 + Enabled: true +Style/RedundantLineContinuation: # new in 1.49 + Enabled: true +Style/RedundantRegexpArgument: # new in 1.53 + Enabled: true +Style/RedundantRegexpConstructor: # new in 1.52 + Enabled: true +Style/ReturnNilInPredicateMethodDefinition: # new in 1.53 + Enabled: true +Style/SafeNavigationChainLength: # new in 1.68 + Enabled: true +Style/SendWithLiteralMethodName: # new in 1.64 + Enabled: true +Style/SingleLineDoEndBlock: # new in 1.57 + Enabled: true +Style/SuperArguments: # new in 1.64 + Enabled: true +Style/SuperWithArgsParentheses: # new in 1.58 + Enabled: true +Style/YAMLFileRead: # new in 1.53 + Enabled: true \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 665c013e..eddfd367 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Read `release_notes.md` for commit level details. ### Bug fixes ### Deprecations +- Drop Ruby 3.0 by following selenium binding ## [9.4.0] - 2025-01-08 diff --git a/lib/appium_lib_core/common/base/http_default.rb b/lib/appium_lib_core/common/base/http_default.rb index da61b3c1..40b56852 100644 --- a/lib/appium_lib_core/common/base/http_default.rb +++ b/lib/appium_lib_core/common/base/http_default.rb @@ -31,7 +31,7 @@ module RequestHeaders class Default < ::Selenium::WebDriver::Remote::Http::Default attr_reader :additional_headers - ::Selenium::WebDriver::Remote::Http::Common.user_agent = \ + ::Selenium::WebDriver::Remote::Http::Common.user_agent = "appium/ruby_lib_core/#{VERSION} (#{::Selenium::WebDriver::Remote::Http::Common.user_agent})" # override diff --git a/lib/appium_lib_core/support/event_firing_bridge.rb b/lib/appium_lib_core/support/event_firing_bridge.rb index 107214b1..b9751484 100644 --- a/lib/appium_lib_core/support/event_firing_bridge.rb +++ b/lib/appium_lib_core/support/event_firing_bridge.rb @@ -21,7 +21,7 @@ class EventFiringBridge < ::Selenium::WebDriver::Support::EventFiringBridge def initialize(delegate, listener, **opts) @appium_options = opts - super delegate, listener + super(delegate, listener) end def find_element_by(how, what, parent = nil) diff --git a/test/test_helper.rb b/test/test_helper.rb index c5050233..1449a048 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -30,7 +30,7 @@ # Ignore since Minitest::Reporters::JUnitReporter.new fails in deleting files, sometimes end -ROOT_REPORT_PATH = "#{Dir.pwd}/test/report" +ROOT_REPORT_PATH = "#{Dir.pwd}/test/report".freeze START_AT = Time.now.strftime('%Y-%m-%d-%H%M%S').freeze Dir.mkdir(ROOT_REPORT_PATH) unless Dir.exist? ROOT_REPORT_PATH From ed6d72b32ded00171a2d3452ede115f8fc0d1444 Mon Sep 17 00:00:00 2001 From: Kazuaki Matsuo Date: Wed, 22 Jan 2025 00:37:46 -0800 Subject: [PATCH 3/3] update gemfiles --- Gemfile | 11 +++++++++++ appium_lib_core.gemspec | 14 ++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Gemfile b/Gemfile index ea4c6a1e..80b86488 100644 --- a/Gemfile +++ b/Gemfile @@ -2,3 +2,14 @@ source 'https://rubygems.org' # Specify your gem's dependencies in appium_lib_core.gemspec gemspec + +gem 'appium_thor', '~> 2.0' +gem 'minitest', '~> 5.0' +gem 'minitest-reporters', '~> 1.1' +gem 'parallel_tests' +gem 'rake', '~> 13.0' +gem 'rubocop', '1.70.0' +gem 'simplecov' +gem 'steep', '~> 1.7.0' +gem 'webmock', '~> 3.24.0' +gem 'yard', '~> 0.9.11' diff --git a/appium_lib_core.gemspec b/appium_lib_core.gemspec index d435cc41..b0ab3b6f 100644 --- a/appium_lib_core.gemspec +++ b/appium_lib_core.gemspec @@ -21,18 +21,8 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] - spec.add_runtime_dependency 'faye-websocket', '~> 0.11.0' - spec.add_runtime_dependency 'selenium-webdriver', '~> 4.21' + spec.add_dependency 'faye-websocket', '~> 0.11.0' + spec.add_dependency 'selenium-webdriver', '~> 4.21' - spec.add_development_dependency 'appium_thor', '~> 2.0' - spec.add_development_dependency 'minitest', '~> 5.0' - spec.add_development_dependency 'minitest-reporters', '~> 1.1' - spec.add_development_dependency 'parallel_tests' - spec.add_development_dependency 'rake', '~> 13.0' - spec.add_development_dependency 'rubocop', '1.70.0' - spec.add_development_dependency 'simplecov' - spec.add_development_dependency 'steep', '~> 1.7.0' - spec.add_development_dependency 'webmock', '~> 3.24.0' - spec.add_development_dependency 'yard', '~> 0.9.11' spec.metadata['rubygems_mfa_required'] = 'true' end