simplecov 0.18.5 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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