Skip to content
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

Support for ruby 3.2. Drop older ruby versions and que #33

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
17 changes: 7 additions & 10 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,19 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
ruby: ['2.5.1', '2.7.2', '2.6.5']
ruby: ['3.2.2']

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why 3.2? At least ruby 3.0.x is still in security maintenance phase https://www.ruby-lang.org/en/downloads/ so id say its better to have the active ruby versions supported!?

gemfile:
- gemfiles/ruby_kafka.gemfile
- gemfiles/que_0.12.2.gemfile
- gemfiles/que_0.12.3.gemfile
- gemfiles/rails_5.2.gemfile
- gemfiles/shoryuken_4.0.gemfile
- gemfiles/sidekiq_4.2.gemfile
- gemfiles/sinatra_1.4.gemfile
- gemfiles/sinatra_2.0.gemfile
Comment on lines -25 to -31

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did all of those fail? If not, id say we leave the most reasonable ones still active!? That way we can ensure that some older versions are still running without major issues.

- gemfiles/rails_7.0.gemfile
- gemfiles/shoryuken_6.0.gemfile
- gemfiles/sidekiq_5.0.gemfile
- gemfiles/sinatra_2.2.gemfile
allow_failures:
- false
include:
- os: ubuntu
ruby-version: ruby-head
gemfile: gemfiles/rails_5.2.gemfile
gemfile: gemfiles/rails_7.0.gemfile
allow_failures: true
env:
BUNDLE_GEMFILE: "${{ matrix.gemfile }}"
Expand Down Expand Up @@ -71,7 +68,7 @@ jobs:
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
# change this to (see https://github.com/ruby/setup-ruby#versioning):
# uses: ruby/setup-ruby@v1
uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
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:
- https://raw.githubusercontent.com/blacklane/rubocop/master/rubocop.yml

AllCops:
TargetRubyVersion: 2.5
TargetRubyVersion: 3.2
Exclude:
- test/rails_app/**/*.rb # auto-generated
- spec/**/*.rb
Expand Down
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.5.1
3.2.2
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

eval_gemfile(File.join(File.dirname(__FILE__), "gemfiles/rails_5.2.gemfile"))
eval_gemfile(File.join(File.dirname(__FILE__), "gemfiles/rails_7.1.gemfile"))

gem "wwtd"
16 changes: 0 additions & 16 deletions gemfiles/que_0.12.2.gemfile

This file was deleted.

17 changes: 0 additions & 17 deletions gemfiles/que_0.12.3.gemfile

This file was deleted.

15 changes: 0 additions & 15 deletions gemfiles/rails_4.1.gemfile

This file was deleted.

15 changes: 0 additions & 15 deletions gemfiles/rails_5.2.gemfile

This file was deleted.

4 changes: 2 additions & 2 deletions gemfiles/rails_4.2.gemfile → gemfiles/rails_7.1.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ source "https://rubygems.org"

gem "oj"

gem "rails", "4.2.7"
gem "sqlite3", "1.3.13"
gem "rails", "~> 7.1"
gem "sqlite3", "1.6"

gem "combustion"
gem "rspec", require: false
Expand Down
2 changes: 1 addition & 1 deletion gemfiles/ruby_kafka.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

source "https://rubygems.org"

gem "ruby-kafka", "~> 0.7.10"
gem "ruby-kafka", "~> 1.5"

gem "rack-test", require: false
gem "rspec", require: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
source "https://rubygems.org"

gem "aws-sdk", "~> 2.0"
gem "shoryuken", "~> 4.0"
gem "shoryuken", "~> 6.0"

gem "webrick"

gem "rack-test", require: false
gem "minitest-reporters", require: false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ source "https://rubygems.org"

gem "oj", "~> 2"

gem "sidekiq", "~> 4.2.0"
gem "sidekiq", "~> 5.0"

gem "rack-test", require: false
gem "rspec", require: false
Expand Down
17 changes: 0 additions & 17 deletions gemfiles/sinatra_2.0.gemfile

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ gem "oj"

gem "xml-simple"

gem "sinatra", "1.4.7"
gem "sinatra", "2.2"
gem "sinatra-contrib"
gem "rack-parser", require: "rack/parser"

Expand Down
15 changes: 7 additions & 8 deletions kiev.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,11 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]

spec.required_ruby_version = ">= 2.5"
spec.add_dependency "oga", "~> 2.2"
spec.add_dependency "rack", ">= 1", "< 3"
spec.add_dependency "request_store", ">= 1.0", "< 1.4"
spec.add_dependency "ruby_dig", "~> 0.0.2" # to support ruby 2.2
spec.add_development_dependency "rake", "~> 0"
spec.add_development_dependency "rspec", "~> 3.10"
spec.add_development_dependency "rubocop", "~> 0.54"
spec.required_ruby_version = ">= 3.2"
spec.add_dependency "oga", "~> 3.4"
spec.add_dependency "rack", ">= 2.2", "< 3"
spec.add_dependency "request_store", ">= 1.4", "< 1.5"
spec.add_development_dependency "rake", "~> 12.2"
spec.add_development_dependency "rspec", "~> 3.12"
spec.add_development_dependency "rubocop", "~> 1.56"
end
1 change: 0 additions & 1 deletion lib/kiev/base.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# frozen_string_literal: true

require "request_store"
require "ruby_dig"
require_relative "request_store"
require_relative "request_logger"
require_relative "logger"
Expand Down
4 changes: 2 additions & 2 deletions lib/kiev/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ def initialize
@disable_default_logger = true
@development_mode = false
@ignored_rack_exceptions = DEFAULT_IGNORED_RACK_EXCEPTIONS.dup
@logger = Kiev::Logger.new(STDOUT)
@logger = Kiev::Logger.new($stdout)
@log_level = default_log_level
@persistent_log_fields = []
@pre_rack_hook = DEFAULT_PRE_RACK_HOOK
Expand All @@ -128,7 +128,7 @@ def initialize
def http_propagated_fields=(value)
@all_http_propagated_fields = DEFAULT_HTTP_PROPAGATED_FIELDS.merge(value)
@http_propagated_fields = @all_http_propagated_fields.dup
DEFAULT_HTTP_PROPAGATED_FIELDS.keys.each do |key|
DEFAULT_HTTP_PROPAGATED_FIELDS.each_key do |key|
@http_propagated_fields.delete(key)
end
@http_propagated_fields.freeze
Expand Down
2 changes: 1 addition & 1 deletion lib/kiev/context_reader.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ def tree_path
attr_reader :subject

def presence(value)
return value if value && !value.empty?
value if value && !value.empty?
end
end
end
7 changes: 4 additions & 3 deletions lib/kiev/json.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,12 @@ class JSON

class << self
def generate(obj)
if engine == :oj
case engine
when :oj
oj_generate(obj)
elsif engine == :activesupport
when :activesupport
activesupport_generate(obj)
elsif engine == :json
when :json
json_generate(obj)
else
NO_JSON.dup
Expand Down
5 changes: 5 additions & 0 deletions lib/kiev/logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -124,5 +124,10 @@ def path=(log_path)
@logger.formatter = previous_logger.formatter
end
end

def broadcast_to(_)
# Not Supported
# https://github.com/rails/rails/releases/tag/v7.1.0
end
end
end
16 changes: 8 additions & 8 deletions lib/kiev/rack/request_logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -44,13 +44,13 @@ def call(env)
Kiev.event(
:request_finished,
form_data(
began_at: began_at,
env: env,
request: request,
response: response,
status: status,
body: body,
exception: exception
began_at:,
env:,
request:,
response:,
status:,
body:,
exception:
)
)
end
Expand Down Expand Up @@ -90,7 +90,7 @@ def form_data(request:, began_at:, status:, env:, body:, response:, exception:)
params: params.empty? ? nil : params, # env[Rack::QUERY_STRING],
ip: request.ip, # split_http_x_forwarded_headers(env) || env["REMOTE_ADDR"]
user_agent: env[HTTP_USER_AGENT],
status: status,
status:,
request_duration: ((Time.now.to_f - began_at) * 1000).round(3),
route: extract_route(env)
}
Expand Down
2 changes: 1 addition & 1 deletion lib/kiev/shoryuken/middleware/request_logger.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ class RequestLogger
include Kiev::RequestLogger::Mixin

def call(_worker, _queue, _message, body, &block)
wrap_request_logger(:job_finished, body: body, &block)
wrap_request_logger(:job_finished, body:, &block)
end
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/kiev/subrequest_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@ def subrequest_path(synchronous:)

def field_value(key, synchronous)
if key == :tree_path
subrequest_path(synchronous: synchronous)
subrequest_path(synchronous:)
else
request_store = Kiev::RequestStore.store
request_store.dig(key) || request_store.dig(:payload, key)
request_store[key] || request_store.dig(:payload, key)
end
end

Expand Down
2 changes: 1 addition & 1 deletion lib/kiev/util.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ module Util
def self.sanitize(value)
return unless value

value.gsub(/[^\w\-]/, "")[0...255]
value.gsub(/[^\w-]/, "")[0...255]
end

def self.to_http(value)
Expand Down
2 changes: 1 addition & 1 deletion lib/kiev/version.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# frozen_string_literal: true

module Kiev
VERSION = "4.9.0"
VERSION = "5.0.0"
end
Loading
Loading