diff --git a/api/.rubocop.yml b/api/.rubocop.yml index 57f00774a0..cf9fa1020c 100644 --- a/api/.rubocop.yml +++ b/api/.rubocop.yml @@ -5,3 +5,21 @@ Naming/FileName: - "lib/opentelemetry-api.rb" Style/ExplicitBlockArgument: Enabled: false +Lint/AmbiguousOperatorPrecedence: + Enabled: false +Minitest/AssertPredicate: + Enabled: false +Minitest/RefutePredicate: + Enabled: false +Performance/MethodObjectAsBlock: + Enabled: false +Style/BitwisePredicate: + Enabled: false +Style/EmptyClassDefinition: + Enabled: false +Style/HashConversion: + Enabled: false +Style/NegatedIfElseCondition: + Enabled: false +Style/OneClassPerFile: + Enabled: false diff --git a/api/Gemfile b/api/Gemfile index 20463b7eb2..c65a396f3f 100644 --- a/api/Gemfile +++ b/api/Gemfile @@ -12,7 +12,7 @@ group :test, :development do gem 'benchmark-ips', '~> 2.14.0' gem 'minitest', '~> 5.27.0' gem 'rake', '~> 13.3.0' - gem 'rubocop', '~> 1.75.0' + gem 'rubocop', '~> 1.86.0' gem 'rubocop-minitest', '~> 0.38.0' gem 'rubocop-performance', '~> 1.25.0' gem 'rubocop-rake', '~> 0.7.1' diff --git a/api/benchmarks/context_bench.rb b/api/benchmarks/context_bench.rb index 73d2e45461..7153c4e075 100644 --- a/api/benchmarks/context_bench.rb +++ b/api/benchmarks/context_bench.rb @@ -94,7 +94,7 @@ def set_value(key, value) FiberLocalVarContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName FiberLocalVarContext.new(@entries.merge(values)) end @@ -188,7 +188,7 @@ def set_value(key, value) FiberAttributeContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName FiberAttributeContext.new(@entries.merge(values)) end @@ -287,7 +287,7 @@ def set_value(key, value) LinkedListContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName LinkedListContext.new(@entries.merge(values)) end @@ -379,7 +379,7 @@ def set_value(key, value) new_entries end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName merge(values) end @@ -472,7 +472,7 @@ def set_value(key, value) ArrayContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName ArrayContext.new(@entries.merge(values)) end @@ -591,7 +591,7 @@ def set_value(key, value) FiberLocalArrayContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName FiberLocalArrayContext.new(@entries.merge(values)) end @@ -684,7 +684,7 @@ def set_value(key, value) ImmutableArrayContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName ImmutableArrayContext.new(@entries.merge(values)) end @@ -777,7 +777,7 @@ def set_value(key, value) FiberLocalImmutableArrayContext.new(new_entries) end - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName FiberLocalImmutableArrayContext.new(@entries.merge(values)) end diff --git a/api/lib/opentelemetry/baggage/propagation/text_map_propagator.rb b/api/lib/opentelemetry/baggage/propagation/text_map_propagator.rb index 0197c2f9c3..fde67fff0f 100644 --- a/api/lib/opentelemetry/baggage/propagation/text_map_propagator.rb +++ b/api/lib/opentelemetry/baggage/propagation/text_map_propagator.rb @@ -99,7 +99,7 @@ def encode(baggage) end def encode_value(key, entry) - result = +"#{URI.encode_uri_component(key.to_s)}=#{URI.encode_uri_component(entry.value.to_s)}" + result = "#{URI.encode_uri_component(key.to_s)}=#{URI.encode_uri_component(entry.value.to_s)}" # We preserve metadata received on extract and assume it's already formatted # for transport. It's sent as-is without further processing. result << ";#{entry.metadata}" if entry.metadata diff --git a/api/lib/opentelemetry/context.rb b/api/lib/opentelemetry/context.rb index de4e2565b8..c118f1cd07 100644 --- a/api/lib/opentelemetry/context.rb +++ b/api/lib/opentelemetry/context.rb @@ -162,7 +162,7 @@ def set_value(key, value) # entries. # @param [Object] value Object to be stored under key # @return [Context] - def set_values(values) # rubocop:disable Naming/AccessorMethodName: + def set_values(values) # rubocop:disable Naming/AccessorMethodName Context.new(@entries.merge(values)) end diff --git a/api/lib/opentelemetry/context/propagation/rack_env_getter.rb b/api/lib/opentelemetry/context/propagation/rack_env_getter.rb index 27e83fd736..8b601dfc39 100644 --- a/api/lib/opentelemetry/context/propagation/rack_env_getter.rb +++ b/api/lib/opentelemetry/context/propagation/rack_env_getter.rb @@ -32,8 +32,7 @@ def keys(carrier) private def to_rack_key(key) - # Use + for mutable string interpolation in pre-Ruby 3.0. - ret = +"HTTP_#{key}" + ret = "HTTP_#{key}" ret.tr!('-', '_') ret.upcase! ret diff --git a/api/lib/opentelemetry/trace/propagation/trace_context.rb b/api/lib/opentelemetry/trace/propagation/trace_context.rb index 1030809896..ffff24ed7b 100644 --- a/api/lib/opentelemetry/trace/propagation/trace_context.rb +++ b/api/lib/opentelemetry/trace/propagation/trace_context.rb @@ -14,6 +14,7 @@ module Propagation # for context propagation in the W3C Trace Context format. module TraceContext extend self + TEXT_MAP_PROPAGATOR = TextMapPropagator.new private_constant :TEXT_MAP_PROPAGATOR diff --git a/api/lib/opentelemetry/trace/tracestate.rb b/api/lib/opentelemetry/trace/tracestate.rb index c4718d4de7..8f206760d5 100644 --- a/api/lib/opentelemetry/trace/tracestate.rb +++ b/api/lib/opentelemetry/trace/tracestate.rb @@ -18,7 +18,7 @@ class << self # @param [String] header Encoding of the tracestate header defined by # the W3C Trace Context specification https://www.w3.org/TR/trace-context/ # @return [Tracestate] A new Tracestate instance or DEFAULT - def from_string(header) # rubocop:disable Metrics/CyclomaticComplexity: + def from_string(header) # rubocop:disable Metrics/CyclomaticComplexity return DEFAULT if header.nil? || header.empty? hash = header.split(',').each_with_object({}) do |member, memo| diff --git a/api/test/opentelemetry/context_test.rb b/api/test/opentelemetry/context_test.rb index db7ae8959e..5fc2fc45fb 100644 --- a/api/test/opentelemetry/context_test.rb +++ b/api/test/opentelemetry/context_test.rb @@ -302,7 +302,7 @@ # Manipulate _this fiber's_ context stack. Context.attach(new_context) ensure - locals.each { |k, _| t2[k] = nil } # rubocop:disable Style/HashEachMethods (locals is not a Hash) + locals.each { |k, _| t2[k] = nil } # rubocop:disable Style/HashEachMethods --(locals is not a Hash) end.resume end _(log_stream.string).must_be_empty @@ -348,7 +348,7 @@ # Manipulate _this thread's_ context stack. Context.attach(new_context) ensure - locals.each { |k, _| t2[k] = nil } # rubocop:disable Style/HashEachMethods (locals is not a Hash) + locals.each { |k, _| t2[k] = nil } # rubocop:disable Style/HashEachMethods --(locals is not a Hash) end.join end _(log_stream.string).must_be_empty diff --git a/api/test/opentelemetry/trace/trace_flags_test.rb b/api/test/opentelemetry/trace/trace_flags_test.rb index d949a51d00..3d454fe248 100644 --- a/api/test/opentelemetry/trace/trace_flags_test.rb +++ b/api/test/opentelemetry/trace/trace_flags_test.rb @@ -5,7 +5,7 @@ describe OpenTelemetry::Trace::TraceFlags do describe '.new' do it 'is private' do - _(-> { OpenTelemetry::Trace::TraceFlags.new(0) })\ + _(-> { OpenTelemetry::Trace::TraceFlags.new(0) }) .must_raise(NoMethodError) end end diff --git a/api/test/opentelemetry/trace/tracestate_test.rb b/api/test/opentelemetry/trace/tracestate_test.rb index 55108dd41a..d93b64f56d 100644 --- a/api/test/opentelemetry/trace/tracestate_test.rb +++ b/api/test/opentelemetry/trace/tracestate_test.rb @@ -5,7 +5,7 @@ describe OpenTelemetry::Trace::Tracestate do describe '.new' do it 'is private' do - _(-> { OpenTelemetry::Trace::Tracestate.new({}) })\ + _(-> { OpenTelemetry::Trace::Tracestate.new({}) }) .must_raise(NoMethodError) end end diff --git a/common/.rubocop.yml b/common/.rubocop.yml index db98871e84..d2808b99b9 100644 --- a/common/.rubocop.yml +++ b/common/.rubocop.yml @@ -16,3 +16,11 @@ Metrics/BlockLength: Naming/FileName: Exclude: - "lib/opentelemetry-common.rb" +Lint/AmbiguousRange: + Enabled: false +Minitest/AssertPredicate: + Enabled: false +Minitest/RefutePredicate: + Enabled: false +Performance/MethodObjectAsBlock: + Enabled: false diff --git a/common/lib/opentelemetry-common.rb b/common/lib/opentelemetry-common.rb index 49ede56132..2cc8c10f8e 100644 --- a/common/lib/opentelemetry-common.rb +++ b/common/lib/opentelemetry-common.rb @@ -4,4 +4,4 @@ # # SPDX-License-Identifier: Apache-2.0 -require_relative './opentelemetry/common' +require_relative 'opentelemetry/common' diff --git a/common/lib/opentelemetry/common/http.rb b/common/lib/opentelemetry/common/http.rb index d68047c00c..ca1c5022c1 100644 --- a/common/lib/opentelemetry/common/http.rb +++ b/common/lib/opentelemetry/common/http.rb @@ -12,4 +12,4 @@ module HTTP end end -require_relative './http/client_context' +require_relative 'http/client_context' diff --git a/common/lib/opentelemetry/common/propagation.rb b/common/lib/opentelemetry/common/propagation.rb index 35d1d11c5d..eb0277b6c7 100644 --- a/common/lib/opentelemetry/common/propagation.rb +++ b/common/lib/opentelemetry/common/propagation.rb @@ -4,8 +4,8 @@ # # SPDX-License-Identifier: Apache-2.0 -require_relative './propagation/rack_env_getter' -require_relative './propagation/symbol_key_getter' +require_relative 'propagation/rack_env_getter' +require_relative 'propagation/symbol_key_getter' module OpenTelemetry module Common diff --git a/common/lib/opentelemetry/common/propagation/rack_env_getter.rb b/common/lib/opentelemetry/common/propagation/rack_env_getter.rb index d51d84c66a..7c97082e80 100644 --- a/common/lib/opentelemetry/common/propagation/rack_env_getter.rb +++ b/common/lib/opentelemetry/common/propagation/rack_env_getter.rb @@ -29,8 +29,7 @@ def keys(carrier) private def to_rack_key(key) - # Use + for mutable string interpolation in pre-Ruby 3.0. - ret = +"HTTP_#{key}" + ret = "HTTP_#{key}" ret.tr!('-', '_') ret.upcase! ret diff --git a/common/lib/opentelemetry/common/utilities.rb b/common/lib/opentelemetry/common/utilities.rb index 6b524656df..af8759a41a 100644 --- a/common/lib/opentelemetry/common/utilities.rb +++ b/common/lib/opentelemetry/common/utilities.rb @@ -164,4 +164,4 @@ def valid_exporter?(exporter) end end -require_relative './http/client_context' +require_relative 'http/client_context' diff --git a/contrib/rubocop.yml b/contrib/rubocop.yml index 15958fe9f4..4f2c884148 100644 --- a/contrib/rubocop.yml +++ b/contrib/rubocop.yml @@ -5,14 +5,16 @@ plugins: - rubocop-performance AllCops: - NewCops: disable - SuggestExtensions: false + NewCops: enable + SuggestExtensions: true TargetRubyVersion: "3.3" Exclude: - "vendor/**/*" Bundler/OrderedGems: Enabled: false +Gemspec/DevelopmentDependencies: + Enabled: false Layout/LineLength: Enabled: false @@ -20,6 +22,9 @@ Layout/LineLength: Lint/ConstantDefinitionInBlock: Exclude: - "test/**/*" +Lint/EmptyBlock: + Exclude: + - "**/*test.rb" Lint/MissingSuper: Enabled: false Lint/UnusedMethodArgument: @@ -36,6 +41,18 @@ Style/ModuleFunction: Enabled: false Style/NumericPredicate: Enabled: false +Style/RedundantConstantBase: + Enabled: false +Style/RedundantRegexpEscape: + Enabled: false Style/StringConcatenation: Exclude: - "test/**/*" + +Gemspec/RequireMFA: + # We probably want to figure out how to set this up for the organization + Enabled: false + +# we need to review the below +Minitest/EmptyLineBeforeAssertionMethods: + Enabled: false diff --git a/exporter/otlp-common/.rubocop.yml b/exporter/otlp-common/.rubocop.yml index e4a5d6fa5f..fbef3cd1fa 100644 --- a/exporter/otlp-common/.rubocop.yml +++ b/exporter/otlp-common/.rubocop.yml @@ -15,3 +15,5 @@ Metrics/PerceivedComplexity: Naming/FileName: Exclude: - "lib/opentelemetry-exporter-otlp-common.rb" +Style/ObjectThen: + Enabled: false diff --git a/exporter/otlp-http/.rubocop.yml b/exporter/otlp-http/.rubocop.yml index 4f07d8989f..5aefaedf29 100644 --- a/exporter/otlp-http/.rubocop.yml +++ b/exporter/otlp-http/.rubocop.yml @@ -12,3 +12,11 @@ Metrics/PerceivedComplexity: Naming/FileName: Exclude: - "lib/opentelemetry-exporter-otlp-http.rb" +Lint/DuplicateBranch: + Enabled: false +Lint/SuppressedExceptionInNumberConversion: + Enabled: false +Performance/MapCompact: + Enabled: false +Performance/MethodObjectAsBlock: + Enabled: false diff --git a/exporter/otlp-logs/.rubocop.yml b/exporter/otlp-logs/.rubocop.yml index 5c3cff545c..a101774638 100644 --- a/exporter/otlp-logs/.rubocop.yml +++ b/exporter/otlp-logs/.rubocop.yml @@ -17,3 +17,11 @@ Style/FrozenStringLiteralComment: - gemfiles/**/* Metrics/BlockLength: Enabled: false +Lint/DuplicateBranch: + Enabled: false +Lint/SuppressedExceptionInNumberConversion: + Enabled: false +Performance/MapCompact: + Enabled: false +Performance/MethodObjectAsBlock: + Enabled: false diff --git a/exporter/otlp-metrics/.rubocop.yml b/exporter/otlp-metrics/.rubocop.yml index 52c76f71be..9af1f3804c 100644 --- a/exporter/otlp-metrics/.rubocop.yml +++ b/exporter/otlp-metrics/.rubocop.yml @@ -29,3 +29,11 @@ Metrics/BlockLength: Naming/FileName: Exclude: - "lib/opentelemetry-exporter-otlp-metrics.rb" +Lint/DuplicateBranch: + Enabled: false +Lint/SuppressedExceptionInNumberConversion: + Enabled: false +Performance/MapCompact: + Enabled: false +Performance/MethodObjectAsBlock: + Enabled: false diff --git a/exporter/otlp-metrics/lib/opentelemetry/exporter/otlp/metrics/metrics_exporter.rb b/exporter/otlp-metrics/lib/opentelemetry/exporter/otlp/metrics/metrics_exporter.rb index 9157e1fdfe..7b488f767d 100644 --- a/exporter/otlp-metrics/lib/opentelemetry/exporter/otlp/metrics/metrics_exporter.rb +++ b/exporter/otlp-metrics/lib/opentelemetry/exporter/otlp/metrics/metrics_exporter.rb @@ -19,7 +19,7 @@ require 'opentelemetry/metrics' require 'opentelemetry/sdk/metrics' -require_relative './util' +require_relative 'util' module OpenTelemetry module Exporter diff --git a/exporter/otlp/.rubocop.yml b/exporter/otlp/.rubocop.yml index 8206eb72b1..2d820d1ec1 100644 --- a/exporter/otlp/.rubocop.yml +++ b/exporter/otlp/.rubocop.yml @@ -21,3 +21,13 @@ Metrics/BlockLength: Naming/FileName: Exclude: - "lib/opentelemetry-exporter-otlp.rb" +Lint/DuplicateBranch: + Enabled: false +Lint/SuppressedExceptionInNumberConversion: + Enabled: false +Performance/MapCompact: + Enabled: false +Performance/MethodObjectAsBlock: + Enabled: false +Style/ObjectThen: + Enabled: false diff --git a/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb b/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb index 9647177f61..30655f901a 100644 --- a/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb +++ b/exporter/otlp/lib/opentelemetry/exporter/otlp/exporter.rb @@ -418,7 +418,7 @@ def as_otlp_any_value(value) end def prepare_endpoint(endpoint) - endpoint ||= ENV['OTEL_EXPORTER_OTLP_TRACES_ENDPOINT'] + endpoint ||= ENV.fetch('OTEL_EXPORTER_OTLP_TRACES_ENDPOINT', nil) if endpoint.nil? endpoint = ENV['OTEL_EXPORTER_OTLP_ENDPOINT'] || 'http://localhost:4318' endpoint += '/' unless endpoint.end_with?('/') diff --git a/exporter/zipkin/.rubocop.yml b/exporter/zipkin/.rubocop.yml index 6cb190171d..391fc7d3c7 100644 --- a/exporter/zipkin/.rubocop.yml +++ b/exporter/zipkin/.rubocop.yml @@ -20,3 +20,9 @@ Naming/FileName: - "lib/opentelemetry-exporter-zipkin.rb" Style/ExplicitBlockArgument: Enabled: false +Lint/AmbiguousOperatorPrecedence: + Enabled: false +Lint/SuppressedExceptionInNumberConversion: + Enabled: false +Minitest/SkipEnsure: + Enabled: false diff --git a/exporter/zipkin/test/test_helper.rb b/exporter/zipkin/test/test_helper.rb index 1e5a4a5152..9d760d051d 100644 --- a/exporter/zipkin/test/test_helper.rb +++ b/exporter/zipkin/test/test_helper.rb @@ -42,6 +42,7 @@ def create_span_data(status: nil, kind: nil, attributes: nil, total_recorded_att # Test helper for Zipkin Exporter class InMemoryMetricsReporter include OpenTelemetry::SDK::Trace::Export::MetricsReporter + attr_reader :counters, :records, :observes def initialize diff --git a/logs_api/.rubocop.yml b/logs_api/.rubocop.yml index 28ba0fcc75..53fdb4b20f 100644 --- a/logs_api/.rubocop.yml +++ b/logs_api/.rubocop.yml @@ -10,3 +10,7 @@ Metrics/CyclomaticComplexity: Naming/FileName: Exclude: - "lib/opentelemetry-logs-api.rb" +Lint/EmptyClass: + Enabled: false +Style/ReduceToHash: + Enabled: false diff --git a/logs_api/Gemfile b/logs_api/Gemfile index 79ff8feb51..d1a0063cbb 100644 --- a/logs_api/Gemfile +++ b/logs_api/Gemfile @@ -13,7 +13,7 @@ group :test, :development do gem 'logger', '~> 1.7.0' # should move to appraisals gem 'minitest', '~> 5.27.0' gem 'rake', '~> 13.3.0' - gem 'rubocop', '~> 1.75.0' + gem 'rubocop', '~> 1.86.0' gem 'rubocop-minitest', '~> 0.38.0' gem 'rubocop-performance', '~> 1.25.0' gem 'rubocop-rake', '~> 0.7.1' diff --git a/metrics_api/.rubocop.yml b/metrics_api/.rubocop.yml index c7539fe342..d8f77bb0b2 100644 --- a/metrics_api/.rubocop.yml +++ b/metrics_api/.rubocop.yml @@ -11,3 +11,7 @@ Metrics/CyclomaticComplexity: Naming/FileName: Exclude: - "lib/opentelemetry-metrics-api.rb" +Minitest/AssertKindOf: + Enabled: false +Style/EmptyClassDefinition: + Enabled: false diff --git a/metrics_api/Gemfile b/metrics_api/Gemfile index 71f599ebd9..9740ff19b8 100644 --- a/metrics_api/Gemfile +++ b/metrics_api/Gemfile @@ -12,7 +12,7 @@ group :test, :development do gem 'benchmark-ips', '~> 2.14.0' gem 'minitest', '~> 5.27.0' gem 'rake', '~> 13.3.0' - gem 'rubocop', '~> 1.75.0' + gem 'rubocop', '~> 1.86.0' gem 'rubocop-minitest', '~> 0.38.0' gem 'rubocop-performance', '~> 1.25.0' gem 'rubocop-rake', '~> 0.7.1' diff --git a/metrics_sdk/.rubocop.yml b/metrics_sdk/.rubocop.yml index 3c6f491adc..b43862aad6 100644 --- a/metrics_sdk/.rubocop.yml +++ b/metrics_sdk/.rubocop.yml @@ -11,3 +11,29 @@ Metrics/CyclomaticComplexity: Naming/FileName: Exclude: - "lib/opentelemetry-metrics-sdk.rb" +Lint/AmbiguousOperatorPrecedence: + Enabled: false +Lint/AmbiguousRange: + Enabled: false +Naming/BlockForwarding: + Enabled: false +Naming/PredicateMethod: + Enabled: false +Performance/CollectionLiteralInLoop: + Enabled: false +Style/ArgumentsForwarding: + Enabled: false +Style/CollectionQuerying: + Enabled: false +Style/EmptyClassDefinition: + Enabled: false +Style/FetchEnvVar: + Enabled: false +Style/MapIntoArray: + Enabled: false +Style/NilLambda: + Enabled: false +Style/SuperArguments: + Enabled: false +Lint/SymbolConversion: + Enabled: false diff --git a/metrics_sdk/Gemfile b/metrics_sdk/Gemfile index d2b9bd2a4c..677c913ef0 100644 --- a/metrics_sdk/Gemfile +++ b/metrics_sdk/Gemfile @@ -11,7 +11,7 @@ gemspec group :test, :development do gem 'minitest', '~> 5.27.0' gem 'rake', '~> 13.3.0' - gem 'rubocop', '~> 1.75.0' + gem 'rubocop', '~> 1.86.0' gem 'rubocop-minitest', '~> 0.38.0' gem 'rubocop-performance', '~> 1.25.0' gem 'rubocop-rake', '~> 0.7.1' diff --git a/propagator/b3/lib/opentelemetry-propagator-b3.rb b/propagator/b3/lib/opentelemetry-propagator-b3.rb index 5180d87832..85997ee49b 100644 --- a/propagator/b3/lib/opentelemetry-propagator-b3.rb +++ b/propagator/b3/lib/opentelemetry-propagator-b3.rb @@ -5,4 +5,4 @@ # SPDX-License-Identifier: Apache-2.0 require 'opentelemetry-api' -require_relative './opentelemetry/propagator/b3' +require_relative 'opentelemetry/propagator/b3' diff --git a/propagator/b3/lib/opentelemetry/propagator/b3.rb b/propagator/b3/lib/opentelemetry/propagator/b3.rb index 1032b14bd2..b3327c3292 100644 --- a/propagator/b3/lib/opentelemetry/propagator/b3.rb +++ b/propagator/b3/lib/opentelemetry/propagator/b3.rb @@ -35,7 +35,7 @@ def debug?(context) end end -require_relative './b3/version' -require_relative './b3/text_map_extractor' -require_relative './b3/multi' -require_relative './b3/single' +require_relative 'b3/version' +require_relative 'b3/text_map_extractor' +require_relative 'b3/multi' +require_relative 'b3/single' diff --git a/propagator/b3/lib/opentelemetry/propagator/b3/multi.rb b/propagator/b3/lib/opentelemetry/propagator/b3/multi.rb index 5d3af9be8c..2bfe4eb13c 100644 --- a/propagator/b3/lib/opentelemetry/propagator/b3/multi.rb +++ b/propagator/b3/lib/opentelemetry/propagator/b3/multi.rb @@ -4,7 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -require_relative './multi/text_map_propagator' +require_relative 'multi/text_map_propagator' # OpenTelemetry is an open source observability framework, providing a # general-purpose API, SDK, and related tools required for the instrumentation diff --git a/propagator/b3/lib/opentelemetry/propagator/b3/single.rb b/propagator/b3/lib/opentelemetry/propagator/b3/single.rb index f53ceb63ba..4ca2eb0b98 100644 --- a/propagator/b3/lib/opentelemetry/propagator/b3/single.rb +++ b/propagator/b3/lib/opentelemetry/propagator/b3/single.rb @@ -4,7 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -require_relative './single/text_map_propagator' +require_relative 'single/text_map_propagator' # OpenTelemetry is an open source observability framework, providing a # general-purpose API, SDK, and related tools required for the instrumentation diff --git a/propagator/jaeger/.rubocop.yml b/propagator/jaeger/.rubocop.yml index 8d589790b2..5081253fe9 100644 --- a/propagator/jaeger/.rubocop.yml +++ b/propagator/jaeger/.rubocop.yml @@ -9,3 +9,13 @@ Metrics/BlockLength: Naming/FileName: Exclude: - 'lib/opentelemetry-propagator-jaeger.rb' + +Performance/RedundantSplitRegexpArgument: + Enabled: false + +Style/BitwisePredicate: + Enabled: false +Style/NegatedIfElseCondition: + Enabled: false +Style/RedundantRegexpArgument: + Enabled: false diff --git a/propagator/jaeger/lib/opentelemetry-propagator-jaeger.rb b/propagator/jaeger/lib/opentelemetry-propagator-jaeger.rb index b7647f672d..bcf95dad80 100644 --- a/propagator/jaeger/lib/opentelemetry-propagator-jaeger.rb +++ b/propagator/jaeger/lib/opentelemetry-propagator-jaeger.rb @@ -5,4 +5,4 @@ # SPDX-License-Identifier: Apache-2.0 require 'opentelemetry-api' -require_relative './opentelemetry/propagator/jaeger' +require_relative 'opentelemetry/propagator/jaeger' diff --git a/propagator/jaeger/lib/opentelemetry/propagator/jaeger.rb b/propagator/jaeger/lib/opentelemetry/propagator/jaeger.rb index c3bd020eb0..8b0583e4aa 100644 --- a/propagator/jaeger/lib/opentelemetry/propagator/jaeger.rb +++ b/propagator/jaeger/lib/opentelemetry/propagator/jaeger.rb @@ -4,7 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -require_relative './jaeger/text_map_propagator' +require_relative 'jaeger/text_map_propagator' # OpenTelemetry is an open source observability framework, providing a # general-purpose API, SDK, and related tools required for the instrumentation diff --git a/propagator/jaeger/test/text_map_propagator_test.rb b/propagator/jaeger/test/text_map_propagator_test.rb index d070f46191..984de6cc68 100644 --- a/propagator/jaeger/test/text_map_propagator_test.rb +++ b/propagator/jaeger/test/text_map_propagator_test.rb @@ -265,8 +265,7 @@ def create_context(trace_id:, it 'injects to rack keys' do rack_env_setter = Object.new def rack_env_setter.set(carrier, key, value) - # Use + for mutable string interpolation in pre-Ruby 3.0. - rack_key = +"HTTP_#{key}" + rack_key = "HTTP_#{key}" rack_key.tr!('-', '_') rack_key.upcase! carrier[rack_key] = value diff --git a/registry/lib/opentelemetry-registry.rb b/registry/lib/opentelemetry-registry.rb index 8efeff3e95..915096c5fc 100644 --- a/registry/lib/opentelemetry-registry.rb +++ b/registry/lib/opentelemetry-registry.rb @@ -5,4 +5,4 @@ # SPDX-License-Identifier: Apache-2.0 require 'opentelemetry' -require_relative './opentelemetry/instrumentation' +require_relative 'opentelemetry/instrumentation' diff --git a/registry/lib/opentelemetry/instrumentation.rb b/registry/lib/opentelemetry/instrumentation.rb index d87aa8426c..1c58129fad 100644 --- a/registry/lib/opentelemetry/instrumentation.rb +++ b/registry/lib/opentelemetry/instrumentation.rb @@ -10,12 +10,13 @@ # # The OpenTelemetry module provides global accessors for telemetry objects. # See the documentation for the `opentelemetry-api` gem for details. -require_relative './instrumentation/registry' +require_relative 'instrumentation/registry' module OpenTelemetry # Instrumentation should be able to handle the case when the library is not installed on a user's system. module Instrumentation extend self + # @return [Registry] registry containing all known # instrumentation def registry diff --git a/registry/lib/opentelemetry/instrumentation/registry.rb b/registry/lib/opentelemetry/instrumentation/registry.rb index 4fa21526bd..3bde5b1ea3 100644 --- a/registry/lib/opentelemetry/instrumentation/registry.rb +++ b/registry/lib/opentelemetry/instrumentation/registry.rb @@ -89,4 +89,4 @@ def install_instrumentation(instrumentation, config) end end -require_relative './registry/version' +require_relative 'registry/version' diff --git a/sdk/.rubocop.yml b/sdk/.rubocop.yml index d37dda60aa..3d887be965 100644 --- a/sdk/.rubocop.yml +++ b/sdk/.rubocop.yml @@ -8,3 +8,23 @@ Naming/FileName: Style/ExplicitBlockArgument: Enabled: false +Lint/AmbiguousOperatorPrecedence: + Enabled: false +Lint/EmptyClass: + Enabled: false +Minitest/UselessAssertion: + Enabled: false +Naming/BlockForwarding: + Enabled: false +Naming/PredicateMethod: + Enabled: false +Style/ArgumentsForwarding: + Enabled: false +Style/EmptyClassDefinition: + Enabled: false +Style/HashConversion: + Enabled: false +Style/NegatedIfElseCondition: + Enabled: false +Style/PredicateWithKind: + Enabled: false diff --git a/sdk/Gemfile b/sdk/Gemfile index 383e2b6c56..8624a951bb 100644 --- a/sdk/Gemfile +++ b/sdk/Gemfile @@ -12,7 +12,7 @@ group :test, :development do gem 'opentelemetry-instrumentation-base', '~> 0.26.0' gem 'minitest', '~> 5.27.0' gem 'rake', '~> 13.3.0' - gem 'rubocop', '~> 1.75.0' + gem 'rubocop', '~> 1.86.0' gem 'rubocop-minitest', '~> 0.38.0' gem 'rubocop-performance', '~> 1.25.0' gem 'rubocop-rake', '~> 0.7.1' diff --git a/sdk/lib/opentelemetry/sdk/resources/resource.rb b/sdk/lib/opentelemetry/sdk/resources/resource.rb index 4a96256944..53e55c5354 100644 --- a/sdk/lib/opentelemetry/sdk/resources/resource.rb +++ b/sdk/lib/opentelemetry/sdk/resources/resource.rb @@ -41,7 +41,7 @@ def telemetry_sdk SemanticConventions::Resource::TELEMETRY_SDK_VERSION => OpenTelemetry::SDK::VERSION } - resource_pairs = ENV['OTEL_RESOURCE_ATTRIBUTES'] + resource_pairs = ENV.fetch('OTEL_RESOURCE_ATTRIBUTES', nil) return create(resource_attributes) unless resource_pairs.is_a?(String) resource_pairs.split(',').each do |pair| @@ -68,7 +68,7 @@ def process private def service_name_from_env - service_name = ENV['OTEL_SERVICE_NAME'] + service_name = ENV.fetch('OTEL_SERVICE_NAME', nil) create(SemanticConventions::Resource::SERVICE_NAME => service_name) unless service_name.nil? end end diff --git a/sdk/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb b/sdk/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb index ce79c832b6..c689ea1bae 100644 --- a/sdk/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb +++ b/sdk/lib/opentelemetry/sdk/trace/export/batch_span_processor.rb @@ -49,7 +49,7 @@ def initialize(exporter, schedule_delay: Float(ENV.fetch('OTEL_BSP_SCHEDULE_DELAY', 5_000)), max_queue_size: Integer(ENV.fetch('OTEL_BSP_MAX_QUEUE_SIZE', 2048)), max_export_batch_size: Integer(ENV.fetch('OTEL_BSP_MAX_EXPORT_BATCH_SIZE', 512)), - start_thread_on_boot: String(ENV['OTEL_RUBY_BSP_START_THREAD_ON_BOOT']) !~ /false/i, + start_thread_on_boot: String(ENV.fetch('OTEL_RUBY_BSP_START_THREAD_ON_BOOT', nil)) !~ /false/i, metrics_reporter: nil) raise ArgumentError if max_export_batch_size > max_queue_size raise ArgumentError, "exporter #{exporter.inspect} does not appear to be a valid exporter" unless Common::Utilities.valid_exporter?(exporter) diff --git a/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb b/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb index 3569451635..d1689a9d45 100644 --- a/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb +++ b/sdk/lib/opentelemetry/sdk/trace/tracer_provider.rb @@ -170,7 +170,7 @@ def internal_start_span(name, kind, attributes, links, start_timestamp, parent_c private def sampler_from_environment(default_sampler) - case ENV['OTEL_TRACES_SAMPLER'] + case ENV.fetch('OTEL_TRACES_SAMPLER', nil) when 'always_on' then Samplers::ALWAYS_ON when 'always_off' then Samplers::ALWAYS_OFF when 'traceidratio' then Samplers.trace_id_ratio_based(Float(ENV.fetch('OTEL_TRACES_SAMPLER_ARG', 1.0))) diff --git a/sdk_experimental/.rubocop.yml b/sdk_experimental/.rubocop.yml index 31998db8e6..f1dbb83455 100644 --- a/sdk_experimental/.rubocop.yml +++ b/sdk_experimental/.rubocop.yml @@ -14,3 +14,11 @@ Naming/FileName: - "lib/opentelemetry-sdk-experimental.rb" Naming/MethodParameterName: Enabled: false +Lint/AmbiguousOperatorPrecedence: + Enabled: false +Lint/DuplicateBranch: + Enabled: false +Naming/PredicateMethod: + Enabled: false +Style/NegatedIfElseCondition: + Enabled: false diff --git a/sdk_experimental/Gemfile b/sdk_experimental/Gemfile index 8cfc44c34a..0e982bf0b8 100644 --- a/sdk_experimental/Gemfile +++ b/sdk_experimental/Gemfile @@ -11,7 +11,7 @@ gemspec group :test, :development do gem 'minitest', '~> 5.27.0' gem 'rake', '~> 13.3.0' - gem 'rubocop', '~> 1.75.0' + gem 'rubocop', '~> 1.86.0' gem 'rubocop-minitest', '~> 0.38.0' gem 'rubocop-performance', '~> 1.25.0' gem 'rubocop-rake', '~> 0.7.1' diff --git a/test_helpers/lib/opentelemetry/test_helpers.rb b/test_helpers/lib/opentelemetry/test_helpers.rb index ab65f3581f..eed2094689 100644 --- a/test_helpers/lib/opentelemetry/test_helpers.rb +++ b/test_helpers/lib/opentelemetry/test_helpers.rb @@ -11,6 +11,7 @@ module OpenTelemetry # OpenTelemetry Ruby gems. module TestHelpers extend self + NULL_LOGGER = Logger.new(File::NULL) # reset_opentelemetry is a test helper used to clear