Skip to content

Commit

Permalink
Drop support for Ruby 2.3 and 2.4 (#117)
Browse files Browse the repository at this point in the history
  • Loading branch information
jterapin authored Apr 2, 2024
1 parent ac74f03 commit e8f1d6e
Show file tree
Hide file tree
Showing 7 changed files with 44 additions and 77 deletions.
34 changes: 3 additions & 31 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
strategy:
fail-fast: false
matrix:
ruby: [2.3, 2.4, 2.5, 2.6, 2.7, '3.0', 3.1, 3.2, 3.3, jruby-9.1, jruby-9.2, jruby-9.3, jruby-9.4]
ruby: [2.5, 2.6, 2.7, '3.0', 3.1, 3.2, 3.3, jruby-9.2, jruby-9.3, jruby-9.4]
gemfile: [rails-5.2.gemfile, rails-6.0.gemfile, rails-6.1.gemfile, rails-7.0.gemfile, rails-main.gemfile]

exclude:
Expand All @@ -31,34 +31,6 @@ jobs:
- gemfile: rails-5.2.gemfile
ruby: jruby-9.4

# Rails 6 requires Ruby >= 2.5
- gemfile: rails-6.0.gemfile
ruby: 2.3
- gemfile: rails-6.1.gemfile
ruby: 2.3
- gemfile: rails-7.0.gemfile
ruby: 2.3
- gemfile: rails-main.gemfile
ruby: 2.3

- gemfile: rails-6.0.gemfile
ruby: 2.4
- gemfile: rails-6.1.gemfile
ruby: 2.4
- gemfile: rails-7.0.gemfile
ruby: 2.4
- gemfile: rails-main.gemfile
ruby: 2.4

- gemfile: rails-6.0.gemfile
ruby: jruby-9.1
- gemfile: rails-6.1.gemfile
ruby: jruby-9.1
- gemfile: rails-7.0.gemfile
ruby: jruby-9.1
- gemfile: rails-main.gemfile
ruby: jruby-9.1

# Rails 7 requires Ruby >= 2.7
- gemfile: rails-7.0.gemfile
ruby: 2.5
Expand Down Expand Up @@ -104,10 +76,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- name: Set up Ruby 3.2
- name: Set up Ruby 3.3
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.2
ruby-version: 3.3

- uses: actions/checkout@v2

Expand Down
2 changes: 1 addition & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ inherit_from: .rubocop_todo.yml

AllCops:
NewCops: enable
TargetRubyVersion: 2.3
TargetRubyVersion: 2.5
Exclude:
- 'tasks/release/**/*'
- 'sample_app/**/*'
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
Unreleased Changes
------------------
* Feature - Drop support for Ruby 2.3 and Ruby 2.4 (#117).
* Issue - Fix `EbsSqsActiveJobMiddleware` to detect Docker container with cgroup2. (#116).

3.11.0 (2024-03-01)
Expand Down
2 changes: 1 addition & 1 deletion aws-sdk-rails.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ Gem::Specification.new do |spec|
spec.add_dependency('railties', '>= 5.2.0') # encrypted credentials
spec.add_development_dependency('rails')

spec.required_ruby_version = '>= 2.3'
spec.required_ruby_version = '>= 2.5'
end
36 changes: 17 additions & 19 deletions lib/aws/rails/sqs_active_job/executor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,26 +24,24 @@ def initialize(options = {})

def execute(message)
@executor.post(message) do |message|
begin
job = JobRunner.new(message)
@logger.info("Running job: #{job.id}[#{job.class_name}]")
job.run
message.delete
rescue Aws::Json::ParseError => e
@logger.error "Unable to parse message body: #{message.data.body}. Error: #{e}."
rescue StandardError => e
job_msg = job ? "#{job.id}[#{job.class_name}]" : 'unknown job'
@logger.info "Error processing job #{job_msg}: #{e}"
@logger.debug e.backtrace.join("\n")
job = JobRunner.new(message)
@logger.info("Running job: #{job.id}[#{job.class_name}]")
job.run
message.delete
rescue Aws::Json::ParseError => e
@logger.error "Unable to parse message body: #{message.data.body}. Error: #{e}."
rescue StandardError => e
job_msg = job ? "#{job.id}[#{job.class_name}]" : 'unknown job'
@logger.info "Error processing job #{job_msg}: #{e}"
@logger.debug e.backtrace.join("\n")

if @retry_standard_errors && !job.exception_executions?
@logger.info(
'retry_standard_errors is enabled and job has not ' \
"been retried by Rails. Leaving #{job_msg} in the queue."
)
else
message.delete
end
if @retry_standard_errors && !job.exception_executions?
@logger.info(
'retry_standard_errors is enabled and job has not ' \
"been retried by Rails. Leaving #{job_msg} in the queue."
)
else
message.delete
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/aws/rails/sqs_active_job/lambda_handler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ def self.to_sqs_msg(record)
end

def self.to_message_attributes(record)
record['messageAttributes'].each_with_object({}) do |(key, value), acc|
acc[key] = {
record['messageAttributes'].transform_values do |value|
{
string_value: value['stringValue'],
binary_value: value['binaryValue'],
string_list_values: ['stringListValues'],
Expand Down
42 changes: 19 additions & 23 deletions lib/generators/aws_record/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,10 @@ def initialize(args, *options)

def parse_attributes!
self.attributes = (attributes || []).map do |attr|
begin
GeneratedAttribute.parse(attr)
rescue ArgumentError => e
@parse_errors << e
next
end
GeneratedAttribute.parse(attr)
rescue ArgumentError => e
@parse_errors << e
next
end
self.attributes = attributes.compact

Expand Down Expand Up @@ -167,28 +165,26 @@ def parse_rw_units(name)

def parse_gsis!
@gsis = (options['gsi'] || []).map do |raw_idx|
begin
idx = SecondaryIndex.parse(raw_idx)
idx = SecondaryIndex.parse(raw_idx)

attributes = self.attributes.select { |attr| attr.name == idx.hash_key }
if attributes.empty?
@parse_errors << ArgumentError.new("Could not find attribute #{idx.hash_key} for gsi #{idx.name} hkey")
next
end

attributes = self.attributes.select { |attr| attr.name == idx.hash_key }
if idx.range_key
attributes = self.attributes.select { |attr| attr.name == idx.range_key }
if attributes.empty?
@parse_errors << ArgumentError.new("Could not find attribute #{idx.hash_key} for gsi #{idx.name} hkey")
@parse_errors << ArgumentError.new("Could not find attribute #{idx.range_key} for gsi #{idx.name} rkey")
next
end

if idx.range_key
attributes = self.attributes.select { |attr| attr.name == idx.range_key }
if attributes.empty?
@parse_errors << ArgumentError.new("Could not find attribute #{idx.range_key} for gsi #{idx.name} rkey")
next
end
end

idx
rescue ArgumentError => e
@parse_errors << e
next
end

idx
rescue ArgumentError => e
@parse_errors << e
next
end

@gsis = @gsis.compact
Expand Down

0 comments on commit e8f1d6e

Please sign in to comment.