-
Notifications
You must be signed in to change notification settings - Fork 38
Add support for Rails 8.1 #91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,6 +1,10 @@ | ||||||
| name: Main | ||||||
|
|
||||||
| on: [push,pull_request,workflow_dispatch] | ||||||
| on: | ||||||
| push: | ||||||
| branches: [main] | ||||||
| pull_request: | ||||||
| workflow_dispatch: | ||||||
|
|
||||||
| jobs: | ||||||
| build: | ||||||
|
|
@@ -20,12 +24,12 @@ jobs: | |||||
| strategy: | ||||||
| matrix: | ||||||
| ruby: | ||||||
| - 2.5.9 | ||||||
| - 2.6.10 | ||||||
| - 2.7.7 | ||||||
| - 3.0.5 | ||||||
| - 3.1.3 | ||||||
| - 3.2.0 | ||||||
| - 2.7.8 | ||||||
| - 3.0.7 | ||||||
| - 3.1.7 | ||||||
| - 3.2.9 | ||||||
| - 3.3.9 | ||||||
| - 3.4.7 | ||||||
| gemfile: | ||||||
| - gemfiles/activejob_4.2.x.gemfile | ||||||
| - gemfiles/activejob_5.2.x.gemfile | ||||||
|
|
@@ -35,78 +39,91 @@ jobs: | |||||
| - gemfiles/activejob_7.1.x.gemfile | ||||||
| - gemfiles/activejob_7.2.x.gemfile | ||||||
| - gemfiles/activejob_8.0.x.gemfile | ||||||
| - gemfiles/activejob_8.1.x.gemfile | ||||||
| - gemfiles/sidekiq_4.x.gemfile | ||||||
| - gemfiles/sidekiq_5.x.gemfile | ||||||
| - gemfiles/sidekiq_6.x.gemfile | ||||||
| - gemfiles/sidekiq_7.x.gemfile | ||||||
| exclude: | ||||||
| - ruby: 2.5.9 | ||||||
| gemfile: gemfiles/activejob_7.0.x.gemfile | ||||||
| - ruby: 2.5.9 | ||||||
| gemfile: gemfiles/activejob_7.1.x.gemfile | ||||||
| - ruby: 2.5.9 | ||||||
| gemfile: gemfiles/activejob_7.2.x.gemfile | ||||||
| - ruby: 2.5.9 | ||||||
| gemfile: gemfiles/activejob_8.0.x.gemfile | ||||||
| - ruby: 2.5.9 | ||||||
| gemfile: gemfiles/sidekiq_6.x.gemfile | ||||||
| - ruby: 2.5.9 | ||||||
| gemfile: gemfiles/sidekiq_7.x.gemfile | ||||||
| - ruby: 2.6.10 | ||||||
| gemfile: gemfiles/activejob_7.0.x.gemfile | ||||||
| - ruby: 2.6.10 | ||||||
| gemfile: gemfiles/activejob_7.1.x.gemfile | ||||||
| - ruby: 2.6.10 | ||||||
| gemfile: gemfiles/activejob_7.2.x.gemfile | ||||||
| - ruby: 2.6.10 | ||||||
| gemfile: gemfiles/activejob_8.0.x.gemfile | ||||||
| - ruby: 2.6.10 | ||||||
| gemfile: gemfiles/sidekiq_6.x.gemfile | ||||||
| - ruby: 2.6.10 | ||||||
| gemfile: gemfiles/sidekiq_7.x.gemfile | ||||||
| - ruby: 2.7.7 | ||||||
| - ruby: 2.7.8 | ||||||
| gemfile: gemfiles/activejob_4.2.x.gemfile | ||||||
| - ruby: 2.7.7 | ||||||
| - ruby: 2.7.8 | ||||||
| gemfile: gemfiles/activejob_7.2.x.gemfile | ||||||
| - ruby: 2.7.7 | ||||||
| - ruby: 2.7.8 | ||||||
| gemfile: gemfiles/activejob_8.0.x.gemfile | ||||||
| - ruby: 2.7.7 | ||||||
| - ruby: 2.7.8 | ||||||
| gemfile: gemfiles/activejob_8.1.x.gemfile | ||||||
| - ruby: 2.7.8 | ||||||
| gemfile: gemfiles/sidekiq_4.x.gemfile | ||||||
| - ruby: 3.0.5 | ||||||
| - ruby: 2.7.8 | ||||||
| gemfile: gemfiles/sidekiq_8.x.gemfile | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/activejob_4.2.x.gemfile | ||||||
| - ruby: 3.0.5 | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/activejob_5.2.x.gemfile | ||||||
| - ruby: 3.0.5 | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/activejob_7.2.x.gemfile | ||||||
| - ruby: 3.0.5 | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/activejob_8.0.x.gemfile | ||||||
| - ruby: 3.0.5 | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/activejob_8.1.x.gemfile | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/sidekiq_4.x.gemfile | ||||||
| - ruby: 3.0.5 | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/sidekiq_5.x.gemfile | ||||||
| - ruby: 3.1.3 | ||||||
| - ruby: 3.0.7 | ||||||
| gemfile: gemfiles/sidekiq_8.x.gemfile | ||||||
|
||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/activejob_4.2.x.gemfile | ||||||
| - ruby: 3.1.3 | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/activejob_5.2.x.gemfile | ||||||
| - ruby: 3.1.3 | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/activejob_6.0.x.gemfile | ||||||
| - ruby: 3.1.3 | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/activejob_8.0.x.gemfile | ||||||
| - ruby: 3.1.3 | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/activejob_8.1.x.gemfile | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/sidekiq_4.x.gemfile | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/sidekiq_5.x.gemfile | ||||||
| - ruby: 3.1.7 | ||||||
| gemfile: gemfiles/sidekiq_8.x.gemfile | ||||||
|
||||||
| - ruby: 3.2.9 | ||||||
| gemfile: gemfiles/activejob_4.2.x.gemfile | ||||||
| - ruby: 3.2.9 | ||||||
| gemfile: gemfiles/activejob_5.2.x.gemfile | ||||||
| - ruby: 3.2.9 | ||||||
| gemfile: gemfiles/activejob_6.0.x.gemfile | ||||||
| - ruby: 3.2.9 | ||||||
| gemfile: gemfiles/activejob_7.1.x.gemfile | ||||||
| - ruby: 3.2.9 | ||||||
| gemfile: gemfiles/sidekiq_4.x.gemfile | ||||||
| - ruby: 3.2.9 | ||||||
| gemfile: gemfiles/sidekiq_5.x.gemfile | ||||||
| - ruby: 3.3.9 | ||||||
| gemfile: gemfiles/activejob_4.2.x.gemfile | ||||||
| - ruby: 3.3.9 | ||||||
| gemfile: gemfiles/activejob_5.2.x.gemfile | ||||||
| - ruby: 3.3.9 | ||||||
| gemfile: gemfiles/activejob_6.0.x.gemfile | ||||||
| - ruby: 3.3.9 | ||||||
| gemfile: gemfiles/activejob_7.1.x.gemfile | ||||||
| - ruby: 3.3.9 | ||||||
| gemfile: gemfiles/sidekiq_4.x.gemfile | ||||||
| - ruby: 3.1.3 | ||||||
| - ruby: 3.3.9 | ||||||
| gemfile: gemfiles/sidekiq_5.x.gemfile | ||||||
| - ruby: 3.2.0 | ||||||
| - ruby: 3.4.7 | ||||||
| gemfile: gemfiles/activejob_4.2.x.gemfile | ||||||
| - ruby: 3.2.0 | ||||||
| - ruby: 3.4.7 | ||||||
| gemfile: gemfiles/activejob_5.2.x.gemfile | ||||||
| - ruby: 3.2.0 | ||||||
| - ruby: 3.4.7 | ||||||
| gemfile: gemfiles/activejob_6.0.x.gemfile | ||||||
| - ruby: 3.2.0 | ||||||
| - ruby: 3.4.7 | ||||||
| gemfile: gemfiles/activejob_7.1.x.gemfile | ||||||
| - ruby: 3.2.0 | ||||||
| - ruby: 3.4.7 | ||||||
| gemfile: gemfiles/sidekiq_4.x.gemfile | ||||||
| - ruby: 3.2.0 | ||||||
| - ruby: 3.3.9 | ||||||
|
||||||
| - ruby: 3.3.9 | |
| - ruby: 3.4.7 |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -9,15 +9,15 @@ appraise 'activejob-5.2.x' do | |||||
| end | ||||||
|
|
||||||
| appraise 'activejob-6.0.x' do | ||||||
| gem 'activejob', '~> 6.0.5' | ||||||
| gem 'activejob', '~> 6.0.6' | ||||||
| end | ||||||
|
|
||||||
| appraise 'activejob-6.1.x' do | ||||||
| gem 'activejob', '~> 6.1.6' | ||||||
| gem 'activejob', '~> 6.1.7' | ||||||
| end | ||||||
|
|
||||||
| appraise 'activejob-7.0.x' do | ||||||
| gem 'activejob', '~> 7.0.3' | ||||||
| gem 'activejob', '~> 7.0.8' | ||||||
| end | ||||||
|
|
||||||
| appraise 'activejob-7.1.x' do | ||||||
|
|
@@ -32,6 +32,10 @@ appraise 'activejob-8.0.x' do | |||||
| gem 'activejob', '>= 8.0.0.rc1', '< 8.1' | ||||||
| end | ||||||
|
|
||||||
| appraise 'activejob-8.1.x' do | ||||||
| gem 'activejob', '>= 8.1.0.rc1', '< 8.2' | ||||||
| end | ||||||
|
|
||||||
| appraise 'sidekiq-4.x' do | ||||||
| gem 'sidekiq', '~> 4.2' | ||||||
| gem 'activejob', '~> 5.2' | ||||||
|
|
@@ -47,5 +51,5 @@ appraise 'sidekiq-6.x' do | |||||
| end | ||||||
|
|
||||||
| appraise 'sidekiq-7.x' do | ||||||
| gem 'sidekiq', '~> 7.0' | ||||||
| gem 'sidekiq', '~> 7.3' | ||||||
|
||||||
| gem 'sidekiq', '~> 7.3' | |
| gem 'sidekiq', '~> 7.3', '!= 7.3.9' |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,6 @@ | |
|
|
||
| source "https://rubygems.org" | ||
|
|
||
| gem "activejob", "~> 6.0.5" | ||
| gem "activejob", "~> 6.0.6" | ||
|
|
||
| gemspec path: "../" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,6 @@ | |
|
|
||
| source "https://rubygems.org" | ||
|
|
||
| gem "activejob", "~> 6.1.6" | ||
| gem "activejob", "~> 6.1.7" | ||
|
|
||
| gemspec path: "../" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,6 @@ | |
|
|
||
| source "https://rubygems.org" | ||
|
|
||
| gem "activejob", "~> 7.0.3" | ||
| gem "activejob", "~> 7.0.8" | ||
|
|
||
| gemspec path: "../" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # This file was generated by Appraisal | ||
|
|
||
| source "https://rubygems.org" | ||
|
|
||
| gem "activejob", ">= 8.1.0.rc1", "< 8.2" | ||
|
|
||
| gemspec path: "../" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,6 +2,6 @@ | |
|
|
||
| source "https://rubygems.org" | ||
|
|
||
| gem "sidekiq", "~> 7.0" | ||
| gem "sidekiq", "~> 7.0", "!= 7.3.9" | ||
|
|
||
| gemspec path: "../" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,7 @@ | ||
| # frozen_string_literal: true | ||
|
|
||
| require 'logger' | ||
|
|
||
| require 'active_job' | ||
| require 'redlock' | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,52 +1,54 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # frozen_string_literal: true | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| require 'openssl' | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module ActiveJob | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| module Uniqueness | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Use /config/initializer/activejob_uniqueness.rb to configure ActiveJob::Uniqueness | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Use config/initializer/activejob_uniqueness.rb to configure ActiveJob::Uniqueness | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| # Use config/initializer/activejob_uniqueness.rb to configure ActiveJob::Uniqueness | |
| # Use config/initializers/activejob_uniqueness.rb to configure ActiveJob::Uniqueness |
Copilot
AI
Jan 8, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using class_attribute with instance creation of Configuration may not work as expected. The class_attribute macro is designed for class-level attributes, but here Configuration instances are being created with Configuration.new. The old ActiveSupport::Configurable provided instance-level configuration through config_accessor, which creates instance methods. With class_attribute, all instances will share the same class-level values, which means changes to one Configuration instance will affect all instances. This is likely a breaking change that could cause unexpected behavior in applications that create multiple configuration instances.
| # Instance-level accessors defaulting to class-level configuration. | |
| # | |
| # This allows multiple Configuration instances to have independent values | |
| # while preserving the existing class-level API. | |
| def lock_ttl | |
| defined?(@lock_ttl) && !@lock_ttl.nil? ? @lock_ttl : self.class.lock_ttl | |
| end | |
| def lock_ttl=(value) | |
| @lock_ttl = value | |
| end | |
| def lock_prefix | |
| defined?(@lock_prefix) && !@lock_prefix.nil? ? @lock_prefix : self.class.lock_prefix | |
| end | |
| def lock_prefix=(value) | |
| @lock_prefix = value | |
| end | |
| def on_conflict | |
| defined?(@on_conflict) && !@on_conflict.nil? ? @on_conflict : self.class.on_conflict | |
| end | |
| def on_conflict=(value) | |
| @on_conflict = value | |
| end | |
| def on_redis_connection_error | |
| defined?(@on_redis_connection_error) && !@on_redis_connection_error.nil? ? | |
| @on_redis_connection_error : self.class.on_redis_connection_error | |
| end | |
| def on_redis_connection_error=(value) | |
| @on_redis_connection_error = value | |
| end | |
| def redlock_servers | |
| defined?(@redlock_servers) && !@redlock_servers.nil? ? @redlock_servers : self.class.redlock_servers | |
| end | |
| def redlock_servers=(value) | |
| @redlock_servers = value | |
| end | |
| def redlock_options | |
| defined?(@redlock_options) && !@redlock_options.nil? ? @redlock_options : self.class.redlock_options | |
| end | |
| def redlock_options=(value) | |
| @redlock_options = value | |
| end | |
| def lock_strategies | |
| defined?(@lock_strategies) && !@lock_strategies.nil? ? @lock_strategies : self.class.lock_strategies | |
| end | |
| def lock_strategies=(value) | |
| @lock_strategies = value | |
| end | |
| def digest_method | |
| defined?(@digest_method) && !@digest_method.nil? ? @digest_method : self.class.digest_method | |
| end | |
| def digest_method=(value) | |
| @digest_method = value | |
| end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The CI configuration references 'gemfiles/sidekiq_8.x.gemfile' in the exclusion matrix, but this gemfile doesn't exist in the repository. This will cause CI failures when the workflow tries to resolve these exclusions.