From 6869268558584b8722b6ebc1e0a66e7f8abc32e3 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Wed, 6 May 2026 15:51:21 +1000 Subject: [PATCH 1/8] Replicate simplecov from contrib --- .github/actions/test_gem/action.yml | 25 ++++++++++++++++++++--- .simplecov | 16 +++++++++++++++ api/test/test_helper.rb | 7 +------ common/test/test_helper.rb | 6 +----- exporter/jaeger/test/test_helper.rb | 6 +----- exporter/otlp-common/test/test_helper.rb | 6 +----- exporter/otlp-grpc/test/test_helper.rb | 6 +----- exporter/otlp-http/test/test_helper.rb | 6 +----- exporter/otlp-logs/test/test_helper.rb | 11 +--------- exporter/otlp-metrics/test/test_helper.rb | 6 +----- exporter/otlp/test/test_helper.rb | 6 +----- exporter/zipkin/test/test_helper.rb | 6 +----- logs_api/test/test_helper.rb | 8 -------- logs_sdk/test/test_helper.rb | 8 -------- metrics_api/test/test_helper.rb | 5 +---- metrics_sdk/test/test_helper.rb | 5 +---- sdk/test/test_helper.rb | 7 +------ sdk_experimental/test/test_helper.rb | 5 +---- semantic_conventions/test/test_helper.rb | 7 +------ test_helpers/test/test_helper.rb | 7 +------ 20 files changed, 54 insertions(+), 105 deletions(-) create mode 100644 .simplecov diff --git a/.github/actions/test_gem/action.yml b/.github/actions/test_gem/action.yml index b3091a1dd2..6ab6538d36 100644 --- a/.github/actions/test_gem/action.yml +++ b/.github/actions/test_gem/action.yml @@ -14,6 +14,11 @@ inputs: required: false type: boolean default: false + minimum_coverage: + description: Minimum test coverage + required: false + type: string + default: 85 rubocop: description: Run Rubocop required: false @@ -93,9 +98,9 @@ runs: if [[ -f "Appraisals" ]]; then for i in `bundle exec appraisal list | sed 's/-/_/g' `; do echo "::group::🔎 Appraising ${i}" - BUNDLE_GEMFILE=gemfiles/${i}.gemfile bundle install --quiet --jobs=3 --retry=4 && \ - BUNDLE_GEMFILE=gemfiles/${i}.gemfile bundle show && \ - BUNDLE_GEMFILE=gemfiles/${i}.gemfile bundle exec rake test + SIMPLECOV_COMMAND_NAME="appraisal_${i}" BUNDLE_GEMFILE=gemfiles/${i}.gemfile bundle install --quiet --jobs=3 --retry=4 && \ + SIMPLECOV_COMMAND_NAME="appraisal_${i}" BUNDLE_GEMFILE=gemfiles/${i}.gemfile bundle show && \ + SIMPLECOV_COMMAND_NAME="appraisal_${i}" BUNDLE_GEMFILE=gemfiles/${i}.gemfile bundle exec rake test echo "::endgroup::" done else @@ -111,6 +116,20 @@ runs: bundle exec rake yard working-directory: "${{ steps.setup.outputs.gem_dir }}" + - name: Coverage + shell: bash + # This starts a new simplecov run which tracks nothing of its own, + # but merges with the existing coverage reports generated during testing. + env: + MINIMUM_COVERAGE: ${{ inputs.minimum_coverage || 85 }} + run: 'bundle exec ruby -e ''require "simplecov"; SimpleCov.minimum_coverage(ENV["MINIMUM_COVERAGE"].to_i); SimpleCov.collate Dir["coverage/**/.resultset.json"];''' + working-directory: "${{ steps.setup.outputs.gem_dir }}" + + - name: Cleanup coverage artifacts + shell: bash + run: rm -rf coverage + working-directory: "${{ steps.setup.outputs.gem_dir }}" + - name: Rubocop shell: bash if: "${{ inputs.rubocop == 'true' }}" diff --git a/.simplecov b/.simplecov new file mode 100644 index 0000000000..f6cd629430 --- /dev/null +++ b/.simplecov @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +require 'digest' + +digest = Digest::MD5.new +digest.update('test') +digest.update(ENV.fetch('BUNDLE_GEMFILE', 'gemfile')) if ENV['APPRAISAL_INITIALIZED'] + +ENV['ENABLE_COVERAGE'] ||= '1' + +if ENV['ENABLE_COVERAGE'].to_i.positive? + SimpleCov.command_name(ENV['SIMPLECOV_COMMAND_NAME'] || digest.hexdigest) + SimpleCov.start do + add_filter %r{^/test/} + end +end diff --git a/api/test/test_helper.rb b/api/test/test_helper.rb index afc676d044..03d84857fc 100644 --- a/api/test/test_helper.rb +++ b/api/test/test_helper.rb @@ -4,12 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start - SimpleCov.minimum_coverage 85 -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry' require 'minitest/autorun' diff --git a/common/test/test_helper.rb b/common/test/test_helper.rb index 49c16b3605..4fcf9fa611 100644 --- a/common/test/test_helper.rb +++ b/common/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry/common' require 'minitest/autorun' diff --git a/exporter/jaeger/test/test_helper.rb b/exporter/jaeger/test/test_helper.rb index 4f32309b8f..5038695fce 100644 --- a/exporter/jaeger/test/test_helper.rb +++ b/exporter/jaeger/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry/exporter/jaeger' require 'minitest/autorun' diff --git a/exporter/otlp-common/test/test_helper.rb b/exporter/otlp-common/test/test_helper.rb index 475eaad2ec..fa8879069a 100644 --- a/exporter/otlp-common/test/test_helper.rb +++ b/exporter/otlp-common/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry/sdk' require 'opentelemetry-test-helpers' require 'opentelemetry-exporter-otlp-common' diff --git a/exporter/otlp-grpc/test/test_helper.rb b/exporter/otlp-grpc/test/test_helper.rb index e95ba99409..eae11465ff 100644 --- a/exporter/otlp-grpc/test/test_helper.rb +++ b/exporter/otlp-grpc/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'pry' require 'opentelemetry-test-helpers' diff --git a/exporter/otlp-http/test/test_helper.rb b/exporter/otlp-http/test/test_helper.rb index e5272ac507..e156d3cb30 100644 --- a/exporter/otlp-http/test/test_helper.rb +++ b/exporter/otlp-http/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry-exporter-otlp-http' require 'minitest/autorun' diff --git a/exporter/otlp-logs/test/test_helper.rb b/exporter/otlp-logs/test/test_helper.rb index 2ab9f61361..c44a0b6185 100644 --- a/exporter/otlp-logs/test/test_helper.rb +++ b/exporter/otlp-logs/test/test_helper.rb @@ -4,16 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start do - enable_coverage :branch - add_filter '/test/' - end - - SimpleCov.minimum_coverage 85 -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry/exporter/otlp_logs' require 'minitest/autorun' diff --git a/exporter/otlp-metrics/test/test_helper.rb b/exporter/otlp-metrics/test/test_helper.rb index 9db443b396..820a87734f 100644 --- a/exporter/otlp-metrics/test/test_helper.rb +++ b/exporter/otlp-metrics/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry/exporter/otlp_metrics' require 'minitest/autorun' diff --git a/exporter/otlp/test/test_helper.rb b/exporter/otlp/test/test_helper.rb index 13f3a55dc7..434eb1e8cf 100644 --- a/exporter/otlp/test/test_helper.rb +++ b/exporter/otlp/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry/exporter/otlp' require 'minitest/autorun' diff --git a/exporter/zipkin/test/test_helper.rb b/exporter/zipkin/test/test_helper.rb index 1e5a4a5152..225543974f 100644 --- a/exporter/zipkin/test/test_helper.rb +++ b/exporter/zipkin/test/test_helper.rb @@ -4,11 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry/exporter/zipkin' require 'minitest/autorun' diff --git a/logs_api/test/test_helper.rb b/logs_api/test/test_helper.rb index a141bff9aa..ca81c230b8 100644 --- a/logs_api/test/test_helper.rb +++ b/logs_api/test/test_helper.rb @@ -5,13 +5,5 @@ # SPDX-License-Identifier: Apache-2.0 require 'simplecov' - -SimpleCov.start do - enable_coverage :branch - add_filter '/test/' -end - -SimpleCov.minimum_coverage 85 - require 'opentelemetry-logs-api' require 'minitest/autorun' diff --git a/logs_sdk/test/test_helper.rb b/logs_sdk/test/test_helper.rb index 7f11ee9508..9b9c32d9a9 100644 --- a/logs_sdk/test/test_helper.rb +++ b/logs_sdk/test/test_helper.rb @@ -5,14 +5,6 @@ # SPDX-License-Identifier: Apache-2.0 require 'simplecov' - -SimpleCov.start do - enable_coverage :branch - add_filter '/test/' -end - -SimpleCov.minimum_coverage 85 - require 'opentelemetry-logs-api' require 'opentelemetry-logs-sdk' require 'opentelemetry-test-helpers' diff --git a/metrics_api/test/test_helper.rb b/metrics_api/test/test_helper.rb index 9e96986662..6a570a3a59 100644 --- a/metrics_api/test/test_helper.rb +++ b/metrics_api/test/test_helper.rb @@ -4,10 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -# require 'simplecov' -# # SimpleCov.start -# # SimpleCov.minimum_coverage 85 - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry-metrics-api' require 'minitest/autorun' diff --git a/metrics_sdk/test/test_helper.rb b/metrics_sdk/test/test_helper.rb index 679c30cee0..33e9870e49 100644 --- a/metrics_sdk/test/test_helper.rb +++ b/metrics_sdk/test/test_helper.rb @@ -4,10 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -# require 'simplecov' -# # SimpleCov.start -# # SimpleCov.minimum_coverage 85 - +require 'simplecov' require 'opentelemetry-metrics-sdk' require 'opentelemetry-test-helpers' require 'minitest/autorun' diff --git a/sdk/test/test_helper.rb b/sdk/test/test_helper.rb index ff7bcbd6f2..49f9dd342f 100644 --- a/sdk/test/test_helper.rb +++ b/sdk/test/test_helper.rb @@ -4,12 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start - SimpleCov.minimum_coverage 85 -end - +require 'simplecov' require 'opentelemetry-test-helpers' require 'opentelemetry-sdk' require 'opentelemetry-instrumentation-base' diff --git a/sdk_experimental/test/test_helper.rb b/sdk_experimental/test/test_helper.rb index f9f59d9ff6..04f898673e 100644 --- a/sdk_experimental/test/test_helper.rb +++ b/sdk_experimental/test/test_helper.rb @@ -4,10 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -# require 'simplecov' -# # SimpleCov.start -# # SimpleCov.minimum_coverage 85 - +require 'simplecov' require 'opentelemetry-sdk-experimental' require 'opentelemetry-test-helpers' require 'minitest/autorun' diff --git a/semantic_conventions/test/test_helper.rb b/semantic_conventions/test/test_helper.rb index 43bd7417f3..04f57cc44b 100644 --- a/semantic_conventions/test/test_helper.rb +++ b/semantic_conventions/test/test_helper.rb @@ -4,12 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start - SimpleCov.minimum_coverage 85 -end - +require 'simplecov' require 'minitest/autorun' require 'pry' diff --git a/test_helpers/test/test_helper.rb b/test_helpers/test/test_helper.rb index d10d8641ca..37a4c332f0 100644 --- a/test_helpers/test/test_helper.rb +++ b/test_helpers/test/test_helper.rb @@ -8,9 +8,4 @@ require 'opentelemetry-test-helpers' require 'minitest/autorun' require 'pry' - -if RUBY_ENGINE == 'ruby' - require 'simplecov' - SimpleCov.start - SimpleCov.minimum_coverage 85 -end +require 'simplecov' From 475d01591713f5f0b61d2a67c3b883093ee90c6f Mon Sep 17 00:00:00 2001 From: James Thompson Date: Wed, 6 May 2026 16:15:40 +1000 Subject: [PATCH 2/8] CI adjustments --- .github/workflows/ci.yml | 4 ++++ propagator/b3/test/test_helper.rb | 1 + propagator/jaeger/test/test_helper.rb | 1 + 3 files changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9876724f82..f55237f86a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -98,6 +98,7 @@ jobs: with: gem: "${{ matrix.gem }}" ruby: "3.4" + minimum_coverage: 58 - name: "Test Ruby 3.3" uses: ./.github/actions/test_gem with: @@ -106,12 +107,14 @@ jobs: yard: true rubocop: true build: true + minimum_coverage: 58 - name: "Test Zipkin with JRuby" if: "${{ matrix.os == 'ubuntu-latest' && matrix.gem == 'opentelemetry-exporter-zipkin' }}" uses: ./.github/actions/test_gem with: gem: "${{ matrix.gem }}" ruby: "jruby" + minimum_coverage: 58 - name: "Truffleruby Filter" id: truffleruby_skip shell: bash @@ -126,6 +129,7 @@ jobs: with: gem: "${{ matrix.gem }}" ruby: "truffleruby" + minimum_coverage: 58 propagators: if: ${{ github.repository == 'open-telemetry/opentelemetry-ruby' }} diff --git a/propagator/b3/test/test_helper.rb b/propagator/b3/test/test_helper.rb index 331f49d207..5ef5f794c3 100644 --- a/propagator/b3/test/test_helper.rb +++ b/propagator/b3/test/test_helper.rb @@ -4,5 +4,6 @@ # # SPDX-License-Identifier: Apache-2.0 +require 'simplecov' require 'minitest/autorun' require 'opentelemetry-propagator-b3' diff --git a/propagator/jaeger/test/test_helper.rb b/propagator/jaeger/test/test_helper.rb index 9f33f3711c..d90efd3c7e 100644 --- a/propagator/jaeger/test/test_helper.rb +++ b/propagator/jaeger/test/test_helper.rb @@ -4,5 +4,6 @@ # # SPDX-License-Identifier: Apache-2.0 +require 'simplecov' require 'minitest/autorun' require 'opentelemetry-propagator-jaeger' From 6c9b34ffca64062a30842678b893d23d63c1492f Mon Sep 17 00:00:00 2001 From: James Thompson Date: Wed, 6 May 2026 16:51:22 +1000 Subject: [PATCH 3/8] further ci fixes --- .github/actions/test_gem/action.yml | 3 +++ .github/workflows/ci.yml | 4 ++++ registry/test/test_helper.rb | 1 + 3 files changed, 8 insertions(+) diff --git a/.github/actions/test_gem/action.yml b/.github/actions/test_gem/action.yml index 6ab6538d36..257e31f1cd 100644 --- a/.github/actions/test_gem/action.yml +++ b/.github/actions/test_gem/action.yml @@ -93,6 +93,8 @@ runs: - name: Test Gem shell: bash + env: + ENABLE_COVERAGE: 1 run: | # 🍿 Test Gem 🍿 if [[ -f "Appraisals" ]]; then @@ -121,6 +123,7 @@ runs: # This starts a new simplecov run which tracks nothing of its own, # but merges with the existing coverage reports generated during testing. env: + ENABLE_COVERAGE: 0 MINIMUM_COVERAGE: ${{ inputs.minimum_coverage || 85 }} run: 'bundle exec ruby -e ''require "simplecov"; SimpleCov.minimum_coverage(ENV["MINIMUM_COVERAGE"].to_i); SimpleCov.collate Dir["coverage/**/.resultset.json"];''' working-directory: "${{ steps.setup.outputs.gem_dir }}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f55237f86a..8f4cb95cce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,7 @@ jobs: with: gem: "${{ matrix.gem }}" ruby: "3.4" + minimum_coverage: 78 - name: "Test Ruby 3.3" uses: ./.github/actions/test_gem with: @@ -55,18 +56,21 @@ jobs: yard: true rubocop: true build: true + minimum_coverage: 78 - name: "Test JRuby" if: "${{ matrix.os == 'ubuntu-latest' }}" uses: ./.github/actions/test_gem with: gem: "${{ matrix.gem }}" ruby: "jruby" + minimum_coverage: 78 - name: "Test truffleruby" if: "${{ matrix.os == 'ubuntu-latest' }}" uses: ./.github/actions/test_gem with: gem: "${{ matrix.gem }}" ruby: "truffleruby" + minimum_coverage: 78 exporters: if: ${{ github.repository == 'open-telemetry/opentelemetry-ruby' }} diff --git a/registry/test/test_helper.rb b/registry/test/test_helper.rb index 3ade6eb5a9..b99725133a 100644 --- a/registry/test/test_helper.rb +++ b/registry/test/test_helper.rb @@ -4,6 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 +require 'simplecov' require 'opentelemetry-registry' require 'minitest/autorun' require 'rspec/mocks/minitest_integration' From bf0a45a15400be64e18d4245f960fad8d2be3789 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Wed, 6 May 2026 17:11:58 +1000 Subject: [PATCH 4/8] disable collation on truffleruby --- .github/actions/test_gem/action.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/actions/test_gem/action.yml b/.github/actions/test_gem/action.yml index 257e31f1cd..a5322f5dbb 100644 --- a/.github/actions/test_gem/action.yml +++ b/.github/actions/test_gem/action.yml @@ -93,8 +93,6 @@ runs: - name: Test Gem shell: bash - env: - ENABLE_COVERAGE: 1 run: | # 🍿 Test Gem 🍿 if [[ -f "Appraisals" ]]; then @@ -120,10 +118,10 @@ runs: - name: Coverage shell: bash + if: "${{!startsWith(inputs.ruby, 'truffleruby')}}" # This starts a new simplecov run which tracks nothing of its own, # but merges with the existing coverage reports generated during testing. env: - ENABLE_COVERAGE: 0 MINIMUM_COVERAGE: ${{ inputs.minimum_coverage || 85 }} run: 'bundle exec ruby -e ''require "simplecov"; SimpleCov.minimum_coverage(ENV["MINIMUM_COVERAGE"].to_i); SimpleCov.collate Dir["coverage/**/.resultset.json"];''' working-directory: "${{ steps.setup.outputs.gem_dir }}" From 2775878e9c5842bd18892929dd48f7c858026dd2 Mon Sep 17 00:00:00 2001 From: James Thompson Date: Fri, 5 Jun 2026 00:43:00 +1000 Subject: [PATCH 5/8] Update test_helper.rb --- test_helpers/test/test_helper.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test_helpers/test/test_helper.rb b/test_helpers/test/test_helper.rb index 37a4c332f0..42097a1dbb 100644 --- a/test_helpers/test/test_helper.rb +++ b/test_helpers/test/test_helper.rb @@ -4,8 +4,7 @@ # # SPDX-License-Identifier: Apache-2.0 +require 'simplecov' require 'opentelemetry-sdk' require 'opentelemetry-test-helpers' require 'minitest/autorun' -require 'pry' -require 'simplecov' From db046f35e47dfce1cab9a793512326c871be3bdb Mon Sep 17 00:00:00 2001 From: James Thompson Date: Fri, 5 Jun 2026 23:28:09 +1000 Subject: [PATCH 6/8] bump simplecov --- api/Gemfile | 2 +- common/Gemfile | 2 +- exporter/jaeger/Gemfile | 2 +- exporter/otlp-common/Gemfile | 2 +- exporter/otlp-grpc/Gemfile | 2 +- exporter/otlp-http/Gemfile | 2 +- exporter/otlp-metrics/Gemfile | 2 +- exporter/otlp/Gemfile | 2 +- exporter/zipkin/Gemfile | 2 +- metrics_api/Gemfile | 2 +- metrics_sdk/Gemfile | 2 +- sdk/Gemfile | 2 +- sdk_experimental/Gemfile | 2 +- semantic_conventions/Gemfile | 2 +- test_helpers/Gemfile | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/api/Gemfile b/api/Gemfile index 8b184019d8..eb9cf9b721 100644 --- a/api/Gemfile +++ b/api/Gemfile @@ -17,7 +17,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-sdk', path: '../sdk', require: false diff --git a/common/Gemfile b/common/Gemfile index 19d051cee3..36df6dcb2e 100644 --- a/common/Gemfile +++ b/common/Gemfile @@ -16,7 +16,7 @@ group :development, :test do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' # Use the opentelemetry-api gem from source diff --git a/exporter/jaeger/Gemfile b/exporter/jaeger/Gemfile index 067932ec16..bfd6756333 100644 --- a/exporter/jaeger/Gemfile +++ b/exporter/jaeger/Gemfile @@ -17,7 +17,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/exporter/otlp-common/Gemfile b/exporter/otlp-common/Gemfile index e0f7534073..96c71fb558 100644 --- a/exporter/otlp-common/Gemfile +++ b/exporter/otlp-common/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/exporter/otlp-grpc/Gemfile b/exporter/otlp-grpc/Gemfile index 68d3c1d3a2..fb49f4a6e6 100644 --- a/exporter/otlp-grpc/Gemfile +++ b/exporter/otlp-grpc/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/exporter/otlp-http/Gemfile b/exporter/otlp-http/Gemfile index 68d3c1d3a2..fb49f4a6e6 100644 --- a/exporter/otlp-http/Gemfile +++ b/exporter/otlp-http/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/exporter/otlp-metrics/Gemfile b/exporter/otlp-metrics/Gemfile index f98e900c4d..59aac001ec 100644 --- a/exporter/otlp-metrics/Gemfile +++ b/exporter/otlp-metrics/Gemfile @@ -17,7 +17,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/exporter/otlp/Gemfile b/exporter/otlp/Gemfile index 12d709d051..601ba75bc9 100644 --- a/exporter/otlp/Gemfile +++ b/exporter/otlp/Gemfile @@ -17,7 +17,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/exporter/zipkin/Gemfile b/exporter/zipkin/Gemfile index 9e4f6d2b7b..85c17b762a 100644 --- a/exporter/zipkin/Gemfile +++ b/exporter/zipkin/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'webmock', '~> 3.24' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' diff --git a/metrics_api/Gemfile b/metrics_api/Gemfile index 65555d4ed9..b0ac11b3a6 100644 --- a/metrics_api/Gemfile +++ b/metrics_api/Gemfile @@ -17,7 +17,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-api', path: '../api', require: false diff --git a/metrics_sdk/Gemfile b/metrics_sdk/Gemfile index 98a49f3a12..910a450649 100644 --- a/metrics_sdk/Gemfile +++ b/metrics_sdk/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-api', path: '../api', require: false diff --git a/sdk/Gemfile b/sdk/Gemfile index 50e7b44bb8..cd034b2d79 100644 --- a/sdk/Gemfile +++ b/sdk/Gemfile @@ -17,7 +17,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-api', path: '../api', require: false diff --git a/sdk_experimental/Gemfile b/sdk_experimental/Gemfile index a5f2ea811e..55a117ed06 100644 --- a/sdk_experimental/Gemfile +++ b/sdk_experimental/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-api', path: '../api', require: false diff --git a/semantic_conventions/Gemfile b/semantic_conventions/Gemfile index 99e86fecd6..97854fee8f 100644 --- a/semantic_conventions/Gemfile +++ b/semantic_conventions/Gemfile @@ -17,7 +17,7 @@ group :development, :test do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-api', path: '../api', require: false diff --git a/test_helpers/Gemfile b/test_helpers/Gemfile index ae2b124238..bdc1473637 100644 --- a/test_helpers/Gemfile +++ b/test_helpers/Gemfile @@ -16,7 +16,7 @@ group :test, :development do gem 'rubocop-performance', '~> 1.26.0' gem 'rubocop-rake', '~> 0.7.1' gem 'rubocop-rspec', '~> 3.5.0' - gem 'simplecov', '~> 0.17.0' + gem 'simplecov', '~> 0.22.0' gem 'yard', '~> 0.9.0' gem 'yard-doctest', '~> 0.1.6' gem 'opentelemetry-api', path: '../api', require: false From 52334cb599ea75831de2790f9a3550147d59a28b Mon Sep 17 00:00:00 2001 From: James Thompson Date: Fri, 5 Jun 2026 23:35:04 +1000 Subject: [PATCH 7/8] lower threshold --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4ae90740a9..74f91f392d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,7 +47,7 @@ jobs: with: gem: "${{ matrix.gem }}" ruby: "3.4" - minimum_coverage: 78 + minimum_coverage: 62 - name: "Test Ruby 3.3" uses: ./.github/actions/test_gem with: From d217bfea38004d7b27fac0527dbe024e9eec3cac Mon Sep 17 00:00:00 2001 From: James Thompson Date: Fri, 5 Jun 2026 23:38:29 +1000 Subject: [PATCH 8/8] fix --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74f91f392d..af013ccb2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,21 +56,21 @@ jobs: yard: true rubocop: true build: true - minimum_coverage: 78 + minimum_coverage: 62 - name: "Test JRuby" if: startsWith(matrix.os, 'ubuntu') uses: ./.github/actions/test_gem with: gem: "${{ matrix.gem }}" ruby: "jruby" - minimum_coverage: 78 + minimum_coverage: 62 - name: "Test truffleruby" if: startsWith(matrix.os, 'ubuntu') uses: ./.github/actions/test_gem with: gem: "${{ matrix.gem }}" ruby: "truffleruby" - minimum_coverage: 78 + minimum_coverage: 62 exporters: if: ${{ github.repository == 'open-telemetry/opentelemetry-ruby' }}