simplecov 0.18.5 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -56,7 +56,7 @@ module SimpleCov
56
56
  # Returns true if this line was skipped, false otherwise. Lines are skipped if they are wrapped with
57
57
  # # :nocov: comment lines.
58
58
  def skipped?
59
- !!skipped
59
+ skipped
60
60
  end
61
61
 
62
62
  # The status of this line - either covered, missed, skipped or never. Useful i.e. for direct use
@@ -18,7 +18,7 @@ module SimpleCov
18
18
 
19
19
  # The path to this source file relative to the projects directory
20
20
  def project_filename
21
- @filename.sub(Regexp.new("^#{Regexp.escape(SimpleCov.root)}"), "")
21
+ @filename.delete_prefix(SimpleCov.root)
22
22
  end
23
23
 
24
24
  # The source code for this file. Aliased as :source
@@ -217,7 +217,13 @@ module SimpleCov
217
217
  # simplecov-html to have encoding shenaningans in one place. See #866
218
218
  # also setting these option on `file.set_encoding` doesn't seem to work
219
219
  # properly so it has to be done here.
220
- file_lines.each { |line| line.encode!("UTF-8", invalid: :replace, undef: :replace) }
220
+ file_lines.each do |line|
221
+ if line.encoding == Encoding::UTF_8
222
+ line
223
+ else
224
+ line.encode!("UTF-8", invalid: :replace, undef: :replace)
225
+ end
226
+ end
221
227
  end
222
228
 
223
229
  def build_lines
@@ -238,7 +244,7 @@ module SimpleCov
238
244
  end
239
245
 
240
246
  def lines_strength
241
- lines.map(&:coverage).compact.reduce(:+)
247
+ lines.sum { |line| line.coverage.to_i }
242
248
  end
243
249
 
244
250
  # Warning to identify condition from Issue #56
@@ -5,12 +5,14 @@ module SimpleCov
5
5
  # Select the files that related to working scope directory of SimpleCov
6
6
  #
7
7
  module UselessResultsRemover
8
- ROOT_REGX = /\A#{Regexp.escape(SimpleCov.root + File::SEPARATOR)}/io.freeze
9
-
10
8
  def self.call(coverage_result)
11
9
  coverage_result.select do |path, _coverage|
12
- path =~ ROOT_REGX
10
+ path =~ root_regx
13
11
  end
14
12
  end
13
+
14
+ def self.root_regx
15
+ @root_regx ||= /\A#{Regexp.escape(SimpleCov.root + File::SEPARATOR)}/i.freeze
16
+ end
15
17
  end
16
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SimpleCov
4
- VERSION = "0.18.5"
4
+ VERSION = "0.22.0"
5
5
  end
data/lib/simplecov.rb CHANGED
@@ -3,19 +3,17 @@
3
3
  require "English"
4
4
 
5
5
  # Coverage may be inaccurate under JRUBY.
6
- if defined?(JRUBY_VERSION) && defined?(JRuby)
6
+ if defined?(JRUBY_VERSION) && defined?(JRuby) && !org.jruby.RubyInstanceConfig.FULL_TRACE_ENABLED
7
7
 
8
8
  # @see https://github.com/jruby/jruby/issues/1196
9
9
  # @see https://github.com/metricfu/metric_fu/pull/226
10
- # @see https://github.com/colszowka/simplecov/issues/420
11
- # @see https://github.com/colszowka/simplecov/issues/86
10
+ # @see https://github.com/simplecov-ruby/simplecov/issues/420
11
+ # @see https://github.com/simplecov-ruby/simplecov/issues/86
12
12
  # @see https://jira.codehaus.org/browse/JRUBY-6106
13
13
 
14
- unless org.jruby.RubyInstanceConfig.FULL_TRACE_ENABLED
15
- warn 'Coverage may be inaccurate; set the "--debug" command line option,' \
16
- ' or do JRUBY_OPTS="--debug"' \
17
- ' or set the "debug.fullTrace=true" option in your .jrubyrc'
18
- end
14
+ warn 'Coverage may be inaccurate; set the "--debug" command line option,' \
15
+ ' or do JRUBY_OPTS="--debug"' \
16
+ ' or set the "debug.fullTrace=true" option in your .jrubyrc'
19
17
  end
20
18
 
21
19
  #
@@ -23,9 +21,7 @@ end
23
21
  #
24
22
  module SimpleCov
25
23
  class << self
26
- attr_accessor :running
27
- attr_accessor :pid
28
- attr_reader :exit_exception
24
+ attr_accessor :running, :pid
29
25
 
30
26
  # Basically, should we take care of at_exit behavior or something else?
31
27
  # Used by the minitest plugin. See lib/minitest/simplecov_plugin.rb
@@ -52,6 +48,11 @@ module SimpleCov
52
48
  def start(profile = nil, &block)
53
49
  require "coverage"
54
50
  initial_setup(profile, &block)
51
+ require_relative "./simplecov/process" if SimpleCov.enabled_for_subprocesses? &&
52
+ ::Process.respond_to?(:fork)
53
+
54
+ make_parallel_tests_available
55
+
55
56
  @result = nil
56
57
  self.pid = Process.pid
57
58
 
@@ -60,6 +61,7 @@ module SimpleCov
60
61
 
61
62
  #
62
63
  # Collate a series of SimpleCov result files into a single SimpleCov output.
64
+ #
63
65
  # You can optionally specify configuration with a block:
64
66
  # SimpleCov.collate Dir["simplecov-resultset-*/.resultset.json"]
65
67
  # OR
@@ -77,20 +79,17 @@ module SimpleCov
77
79
  # available config options, or checkout the README for more in-depth
78
80
  # information about coverage collation
79
81
  #
80
- def collate(result_filenames, profile = nil, &block)
81
- raise "There's no reports to be merged" if result_filenames.empty?
82
+ # By default `collate` ignores the merge_timeout so all results of all files specified will be
83
+ # merged together. If you want to honor the merge_timeout then provide the keyword argument
84
+ # `ignore_timeout: false`.
85
+ #
86
+ def collate(result_filenames, profile = nil, ignore_timeout: true, &block)
87
+ raise "There are no reports to be merged" if result_filenames.empty?
82
88
 
83
89
  initial_setup(profile, &block)
84
90
 
85
- results = result_filenames.flat_map do |filename|
86
- # Re-create each included instance of SimpleCov::Result from the stored run data.
87
- (JSON.parse(File.read(filename)) || {}).map do |command_name, coverage|
88
- SimpleCov::Result.from_hash(command_name => coverage)
89
- end
90
- end
91
-
92
91
  # Use the ResultMerger to produce a single, merged result, ready to use.
93
- @result = SimpleCov::ResultMerger.merge_and_store(*results)
92
+ @result = ResultMerger.merge_and_store(*result_filenames, ignore_timeout: ignore_timeout)
94
93
 
95
94
  run_exit_tasks!
96
95
  end
@@ -103,7 +102,6 @@ module SimpleCov
103
102
  return @result if result?
104
103
 
105
104
  # Collect our coverage result
106
-
107
105
  process_coverage_result if running
108
106
 
109
107
  # If we're using merging of results, store the current result
@@ -173,54 +171,71 @@ module SimpleCov
173
171
  @result = nil
174
172
  end
175
173
 
174
+ def at_exit_behavior
175
+ # If we are in a different process than called start, don't interfere.
176
+ return if SimpleCov.pid != Process.pid
177
+
178
+ # If SimpleCov is no longer running then don't run exit tasks
179
+ SimpleCov.run_exit_tasks! if SimpleCov.running
180
+ end
181
+
182
+ # @api private
176
183
  #
177
- # Capture the current exception if it exists
178
- # This will get called inside the at_exit block
184
+ # Called from at_exit block
179
185
  #
180
- def set_exit_exception
181
- @exit_exception = $ERROR_INFO
186
+ def run_exit_tasks!
187
+ error_exit_status = exit_status_from_exception
188
+
189
+ at_exit.call
190
+
191
+ exit_and_report_previous_error(error_exit_status) if previous_error?(error_exit_status)
192
+ process_results_and_report_error if ready_to_process_results?
182
193
  end
183
194
 
195
+ #
196
+ # @api private
184
197
  #
185
198
  # Returns the exit status from the exit exception
186
199
  #
187
200
  def exit_status_from_exception
188
- return SimpleCov::ExitCodes::SUCCESS unless exit_exception
201
+ # Capture the current exception if it exists
202
+ @exit_exception = $ERROR_INFO
203
+ return nil unless @exit_exception
189
204
 
190
- if exit_exception.is_a?(SystemExit)
191
- exit_exception.status
205
+ if @exit_exception.is_a?(SystemExit)
206
+ @exit_exception.status
192
207
  else
193
208
  SimpleCov::ExitCodes::EXCEPTION
194
209
  end
195
210
  end
196
211
 
197
- def at_exit_behavior
198
- # If we are in a different process than called start, don't interfere.
199
- return if SimpleCov.pid != Process.pid
200
-
201
- # If SimpleCov is no longer running then don't run exit tasks
202
- SimpleCov.run_exit_tasks! if SimpleCov.running
212
+ # @api private
213
+ def previous_error?(error_exit_status)
214
+ # Normally it'd be enough to check for previous error but when running test_unit
215
+ # status is 0
216
+ error_exit_status && error_exit_status != SimpleCov::ExitCodes::SUCCESS
203
217
  end
204
218
 
205
- # @api private
206
219
  #
207
- # Called from at_exit block
220
+ # @api private
208
221
  #
209
- def run_exit_tasks!
210
- set_exit_exception
211
-
212
- exit_status = SimpleCov.exit_status_from_exception
222
+ # Thinking: Move this behavior earlier so if there was an error we do nothing?
223
+ def exit_and_report_previous_error(exit_status)
224
+ warn("Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected") if print_error_status
225
+ Kernel.exit(exit_status)
226
+ end
213
227
 
214
- SimpleCov.at_exit.call
228
+ # @api private
229
+ def ready_to_process_results?
230
+ final_result_process? && result?
231
+ end
215
232
 
216
- # Don't modify the exit status unless the result has already been
217
- # computed
218
- exit_status = SimpleCov.process_result(SimpleCov.result, exit_status) if SimpleCov.result?
233
+ def process_results_and_report_error
234
+ exit_status = process_result(result)
219
235
 
220
236
  # Force exit with stored status (see github issue #5)
221
- # unless it's nil or 0 (see github issue #281)
222
- if exit_status&.positive?
223
- $stderr.printf("SimpleCov failed with exit %<exit_status>d\n", exit_status: exit_status) if print_error_status
237
+ if exit_status.positive?
238
+ warn("SimpleCov failed with exit #{exit_status} due to a coverage related error") if print_error_status
224
239
  Kernel.exit exit_status
225
240
  end
226
241
  end
@@ -230,55 +245,29 @@ module SimpleCov
230
245
  # Usage:
231
246
  # exit_status = SimpleCov.process_result(SimpleCov.result, exit_status)
232
247
  #
233
- def process_result(result, exit_status)
234
- return exit_status if exit_status != SimpleCov::ExitCodes::SUCCESS # Existing errors
235
-
236
- covered_percent = result.covered_percent.floor(2)
237
- result_exit_status = result_exit_status(result, covered_percent)
238
- write_last_run(covered_percent) if result_exit_status == SimpleCov::ExitCodes::SUCCESS # No result errors
239
- final_result_process? ? result_exit_status : SimpleCov::ExitCodes::SUCCESS
248
+ def process_result(result)
249
+ result_exit_status = result_exit_status(result)
250
+ write_last_run(result) if result_exit_status == SimpleCov::ExitCodes::SUCCESS
251
+ result_exit_status
240
252
  end
241
253
 
242
254
  # @api private
243
- #
244
- # rubocop:disable Metrics/MethodLength
245
- def result_exit_status(result, covered_percent)
246
- covered_percentages = result.covered_percentages.map { |percentage| percentage.floor(2) }
247
- if (minimum_violations = minimum_coverage_violated(result)).any?
248
- report_minimum_violated(minimum_violations)
249
- SimpleCov::ExitCodes::MINIMUM_COVERAGE
250
- elsif covered_percentages.any? { |p| p < SimpleCov.minimum_coverage_by_file }
251
- $stderr.printf(
252
- "File (%<file>s) is only (%<least_covered_percentage>.2f%%) covered. This is below the expected minimum coverage per file of (%<min_coverage>.2f%%).\n",
253
- file: result.least_covered_file,
254
- least_covered_percentage: covered_percentages.min,
255
- min_coverage: SimpleCov.minimum_coverage_by_file
256
- )
257
- SimpleCov::ExitCodes::MINIMUM_COVERAGE
258
- elsif (last_run = SimpleCov::LastRun.read)
259
- coverage_diff = last_run[:result][:covered_percent] - covered_percent
260
- if coverage_diff > SimpleCov.maximum_coverage_drop
261
- $stderr.printf(
262
- "Coverage has dropped by %<drop_percent>.2f%% since the last time (maximum allowed: %<max_drop>.2f%%).\n",
263
- drop_percent: coverage_diff,
264
- max_drop: SimpleCov.maximum_coverage_drop
265
- )
266
- SimpleCov::ExitCodes::MAXIMUM_COVERAGE_DROP
267
- else
268
- SimpleCov::ExitCodes::SUCCESS
269
- end
270
- else
271
- SimpleCov::ExitCodes::SUCCESS
272
- end
255
+ CoverageLimits = Struct.new(:minimum_coverage, :minimum_coverage_by_file, :maximum_coverage_drop, keyword_init: true)
256
+ def result_exit_status(result)
257
+ coverage_limits = CoverageLimits.new(
258
+ minimum_coverage: minimum_coverage, minimum_coverage_by_file: minimum_coverage_by_file,
259
+ maximum_coverage_drop: maximum_coverage_drop
260
+ )
261
+
262
+ ExitCodes::ExitCodeHandling.call(result, coverage_limits: coverage_limits)
273
263
  end
274
- # rubocop:enable Metrics/MethodLength
275
264
 
276
265
  #
277
266
  # @api private
278
267
  #
279
268
  def final_result_process?
280
- # checking for ENV["TEST_ENV_NUMBER"] to determine if the tess are being run in parallel
281
- !defined?(ParallelTests) || !ENV["TEST_ENV_NUMBER"] || ParallelTests.number_of_running_processes <= 1
269
+ # checking for ENV["TEST_ENV_NUMBER"] to determine if the tests are being run in parallel
270
+ !defined?(ParallelTests) || !ENV["TEST_ENV_NUMBER"] || ParallelTests.last_process?
282
271
  end
283
272
 
284
273
  #
@@ -293,8 +282,19 @@ module SimpleCov
293
282
  #
294
283
  # @api private
295
284
  #
296
- def write_last_run(covered_percent)
297
- SimpleCov::LastRun.write(result: {covered_percent: covered_percent})
285
+ def write_last_run(result)
286
+ SimpleCov::LastRun.write(result:
287
+ result.coverage_statistics.transform_values do |stats|
288
+ round_coverage(stats.percent)
289
+ end)
290
+ end
291
+
292
+ #
293
+ # @api private
294
+ #
295
+ # Rounding down to be extra strict, see #679
296
+ def round_coverage(coverage)
297
+ coverage.floor(2)
298
298
  end
299
299
 
300
300
  private
@@ -315,7 +315,7 @@ module SimpleCov
315
315
  # This blog post gives a good run down of the coverage criterias introduced
316
316
  # in Ruby 2.5: https://blog.bigbinary.com/2018/04/11/ruby-2-5-supports-measuring-branch-and-method-coverages.html
317
317
  # There is also a nice writeup of the different coverage criteria made in this
318
- # comment https://github.com/colszowka/simplecov/pull/692#discussion_r281836176 :
318
+ # comment https://github.com/simplecov-ruby/simplecov/pull/692#discussion_r281836176 :
319
319
  # Ruby < 2.5:
320
320
  # https://github.com/ruby/ruby/blob/v1_9_3_374/ext/coverage/coverage.c
321
321
  # traditional mode (Array)
@@ -342,7 +342,7 @@ module SimpleCov
342
342
  if coverage_start_arguments_supported?
343
343
  start_coverage_with_criteria
344
344
  else
345
- Coverage.start
345
+ Coverage.start unless Coverage.running?
346
346
  end
347
347
  end
348
348
 
@@ -351,7 +351,9 @@ module SimpleCov
351
351
  [lookup_corresponding_ruby_coverage_name(criterion), true]
352
352
  end.to_h
353
353
 
354
- Coverage.start(start_arguments)
354
+ start_arguments[:eval] = true if coverage_for_eval_enabled?
355
+
356
+ Coverage.start(start_arguments) unless Coverage.running?
355
357
  end
356
358
 
357
359
  CRITERION_TO_RUBY_COVERAGE = {
@@ -419,61 +421,50 @@ module SimpleCov
419
421
  @result = SimpleCov::Result.new(add_not_loaded_files(@result))
420
422
  end
421
423
 
422
- def minimum_coverage_violated(result)
423
- coverage_achieved = minimum_coverage.map do |criterion, percent|
424
- {
425
- criterion: criterion,
426
- minimum_expected: percent,
427
- actual: result.coverage_statistics[criterion].percent
428
- }
429
- end
424
+ # parallel_tests isn't always available, see: https://github.com/grosser/parallel_tests/issues/772
425
+ def make_parallel_tests_available
426
+ return if defined?(ParallelTests)
427
+ return unless probably_running_parallel_tests?
430
428
 
431
- coverage_achieved.select do |achieved|
432
- achieved.fetch(:actual) < achieved.fetch(:minimum_expected)
433
- end
429
+ require "parallel_tests"
430
+ rescue LoadError
431
+ warn("SimpleCov guessed you were running inside parallel tests but couldn't load it. Please file a bug report with us!")
434
432
  end
435
433
 
436
- def report_minimum_violated(violations)
437
- violations.each do |violation|
438
- $stderr.printf(
439
- "%<criterion>s coverage (%<covered>.2f%%) is below the expected minimum coverage (%<minimum_coverage>.2f%%).\n",
440
- covered: violation.fetch(:actual).floor(2),
441
- minimum_coverage: violation.fetch(:minimum_expected),
442
- criterion: violation.fetch(:criterion).capitalize
443
- )
444
- end
434
+ def probably_running_parallel_tests?
435
+ ENV["TEST_ENV_NUMBER"] && ENV["PARALLEL_TEST_GROUPS"]
445
436
  end
446
437
  end
447
438
  end
448
439
 
449
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__)))
440
+ # requires are down here here for a load order reason I'm not sure what it is about
450
441
  require "set"
451
442
  require "forwardable"
452
- require "simplecov/configuration"
443
+ require_relative "simplecov/configuration"
453
444
  SimpleCov.extend SimpleCov::Configuration
454
- require "simplecov/coverage_statistics"
455
- require "simplecov/exit_codes"
456
- require "simplecov/profiles"
457
- require "simplecov/source_file/line"
458
- require "simplecov/source_file/branch"
459
- require "simplecov/source_file"
460
- require "simplecov/file_list"
461
- require "simplecov/result"
462
- require "simplecov/filter"
463
- require "simplecov/formatter"
464
- require "simplecov/last_run"
465
- require "simplecov/lines_classifier"
466
- require "simplecov/result_merger"
467
- require "simplecov/command_guesser"
468
- require "simplecov/version"
469
- require "simplecov/result_adapter"
470
- require "simplecov/combine"
471
- require "simplecov/combine/branches_combiner"
472
- require "simplecov/combine/files_combiner"
473
- require "simplecov/combine/lines_combiner"
474
- require "simplecov/combine/results_combiner"
475
- require "simplecov/useless_results_remover"
476
- require "simplecov/simulate_coverage"
445
+ require_relative "simplecov/coverage_statistics"
446
+ require_relative "simplecov/exit_codes"
447
+ require_relative "simplecov/profiles"
448
+ require_relative "simplecov/source_file/line"
449
+ require_relative "simplecov/source_file/branch"
450
+ require_relative "simplecov/source_file"
451
+ require_relative "simplecov/file_list"
452
+ require_relative "simplecov/result"
453
+ require_relative "simplecov/filter"
454
+ require_relative "simplecov/formatter"
455
+ require_relative "simplecov/last_run"
456
+ require_relative "simplecov/lines_classifier"
457
+ require_relative "simplecov/result_merger"
458
+ require_relative "simplecov/command_guesser"
459
+ require_relative "simplecov/version"
460
+ require_relative "simplecov/result_adapter"
461
+ require_relative "simplecov/combine"
462
+ require_relative "simplecov/combine/branches_combiner"
463
+ require_relative "simplecov/combine/files_combiner"
464
+ require_relative "simplecov/combine/lines_combiner"
465
+ require_relative "simplecov/combine/results_combiner"
466
+ require_relative "simplecov/useless_results_remover"
467
+ require_relative "simplecov/simulate_coverage"
477
468
 
478
469
  # Load default config
479
- require "simplecov/defaults" unless ENV["SIMPLECOV_NO_DEFAULTS"]
470
+ require_relative "simplecov/defaults" unless ENV["SIMPLECOV_NO_DEFAULTS"]
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplecov
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.5
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christoph Olszowka
8
- autorequire:
8
+ - Tobias Pfeiffer
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2020-02-25 00:00:00.000000000 Z
12
+ date: 2022-12-23 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: docile
@@ -38,18 +39,30 @@ dependencies:
38
39
  - - "~>"
39
40
  - !ruby/object:Gem::Version
40
41
  version: '0.11'
42
+ - !ruby/object:Gem::Dependency
43
+ name: simplecov_json_formatter
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.1'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.1'
41
56
  description: Code coverage for Ruby with a powerful configuration library and automatic
42
57
  merging of coverage across test suites
43
58
  email:
44
59
  - christoph at olszowka de
60
+ - pragtob@gmail.com
45
61
  executables: []
46
62
  extensions: []
47
63
  extra_rdoc_files: []
48
64
  files:
49
65
  - CHANGELOG.md
50
- - CODE_OF_CONDUCT.md
51
- - CONTRIBUTING.md
52
- - ISSUE_TEMPLATE.md
53
66
  - LICENSE
54
67
  - README.md
55
68
  - doc/alternate-formatters.md
@@ -65,8 +78,13 @@ files:
65
78
  - lib/simplecov/command_guesser.rb
66
79
  - lib/simplecov/configuration.rb
67
80
  - lib/simplecov/coverage_statistics.rb
81
+ - lib/simplecov/default_formatter.rb
68
82
  - lib/simplecov/defaults.rb
69
83
  - lib/simplecov/exit_codes.rb
84
+ - lib/simplecov/exit_codes/exit_code_handling.rb
85
+ - lib/simplecov/exit_codes/maximum_coverage_drop_check.rb
86
+ - lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb
87
+ - lib/simplecov/exit_codes/minimum_overall_coverage_check.rb
70
88
  - lib/simplecov/file_list.rb
71
89
  - lib/simplecov/filter.rb
72
90
  - lib/simplecov/formatter.rb
@@ -76,6 +94,7 @@ files:
76
94
  - lib/simplecov/lines_classifier.rb
77
95
  - lib/simplecov/load_global_config.rb
78
96
  - lib/simplecov/no_defaults.rb
97
+ - lib/simplecov/process.rb
79
98
  - lib/simplecov/profiles.rb
80
99
  - lib/simplecov/profiles/bundler_filter.rb
81
100
  - lib/simplecov/profiles/hidden_filter.rb
@@ -91,16 +110,16 @@ files:
91
110
  - lib/simplecov/source_file/line.rb
92
111
  - lib/simplecov/useless_results_remover.rb
93
112
  - lib/simplecov/version.rb
94
- homepage: https://github.com/colszowka/simplecov
113
+ homepage: https://github.com/simplecov-ruby/simplecov
95
114
  licenses:
96
115
  - MIT
97
116
  metadata:
98
- bug_tracker_uri: https://github.com/colszowka/simplecov/issues
99
- changelog_uri: https://github.com/colszowka/simplecov/blob/master/CHANGELOG.md
100
- documentation_uri: https://www.rubydoc.info/gems/simplecov/0.18.5
117
+ bug_tracker_uri: https://github.com/simplecov-ruby/simplecov/issues
118
+ changelog_uri: https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md
119
+ documentation_uri: https://www.rubydoc.info/gems/simplecov/0.22.0
101
120
  mailing_list_uri: https://groups.google.com/forum/#!forum/simplecov
102
- source_code_uri: https://github.com/colszowka/simplecov/tree/v0.18.5
103
- post_install_message:
121
+ source_code_uri: https://github.com/simplecov-ruby/simplecov/tree/v0.22.0
122
+ post_install_message:
104
123
  rdoc_options: []
105
124
  require_paths:
106
125
  - lib
@@ -108,15 +127,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
127
  requirements:
109
128
  - - ">="
110
129
  - !ruby/object:Gem::Version
111
- version: 2.4.0
130
+ version: 2.5.0
112
131
  required_rubygems_version: !ruby/object:Gem::Requirement
113
132
  requirements:
114
133
  - - ">="
115
134
  - !ruby/object:Gem::Version
116
135
  version: '0'
117
136
  requirements: []
118
- rubygems_version: 3.1.2
119
- signing_key:
137
+ rubygems_version: 3.3.7
138
+ signing_key:
120
139
  specification_version: 4
121
140
  summary: Code coverage for Ruby
122
141
  test_files: []
data/CODE_OF_CONDUCT.md DELETED
@@ -1,76 +0,0 @@
1
- # SimpleCov Code of Conduct
2
-
3
- ## Our Pledge
4
-
5
- In the interest of fostering an open and welcoming environment, we as
6
- contributors and maintainers pledge to making participation in our project and
7
- our community a harassment-free experience for everyone, regardless of age, body
8
- size, disability, ethnicity, sex characteristics, gender identity and expression,
9
- level of experience, education, socio-economic status, nationality, personal
10
- appearance, race, religion, or sexual identity and orientation.
11
-
12
- ## Our Standards
13
-
14
- Examples of behavior that contributes to creating a positive environment
15
- include:
16
-
17
- * Using welcoming and inclusive language
18
- * Being respectful of differing viewpoints and experiences
19
- * Gracefully accepting constructive criticism
20
- * Focusing on what is best for the community
21
- * Showing empathy towards other community members
22
-
23
- Examples of unacceptable behavior by participants include:
24
-
25
- * The use of sexualized language or imagery and unwelcome sexual attention or
26
- advances
27
- * Trolling, insulting/derogatory comments, and personal or political attacks
28
- * Public or private harassment
29
- * Publishing others' private information, such as a physical or electronic
30
- address, without explicit permission
31
- * Other conduct which could reasonably be considered inappropriate in a
32
- professional setting
33
-
34
- ## Our Responsibilities
35
-
36
- Project maintainers are responsible for clarifying the standards of acceptable
37
- behavior and are expected to take appropriate and fair corrective action in
38
- response to any instances of unacceptable behavior.
39
-
40
- Project maintainers have the right and responsibility to remove, edit, or
41
- reject comments, commits, code, wiki edits, issues, and other contributions
42
- that are not aligned to this Code of Conduct, or to ban temporarily or
43
- permanently any contributor for other behaviors that they deem inappropriate,
44
- threatening, offensive, or harmful.
45
-
46
- ## Scope
47
-
48
- This Code of Conduct applies both within project spaces and in public spaces
49
- when an individual is representing the project or its community. Examples of
50
- representing a project or community include using an official project e-mail
51
- address, posting via an official social media account, or acting as an appointed
52
- representative at an online or offline event. Representation of a project may be
53
- further defined and clarified by project maintainers.
54
-
55
- ## Enforcement
56
-
57
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
- reported by contacting the project team at simplecov.team@gmail.com. All
59
- complaints will be reviewed and investigated and will result in a response that
60
- is deemed necessary and appropriate to the circumstances. The project team is
61
- obligated to maintain confidentiality with regard to the reporter of an incident.
62
- Further details of specific enforcement policies may be posted separately.
63
-
64
- Project maintainers who do not follow or enforce the Code of Conduct in good
65
- faith may face temporary or permanent repercussions as determined by other
66
- members of the project's leadership.
67
-
68
- ## Attribution
69
-
70
- This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
- available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
-
73
- [homepage]: https://www.contributor-covenant.org
74
-
75
- For answers to common questions about this code of conduct, see
76
- https://www.contributor-covenant.org/faq