Hello community,
here is the log from the commit of package rubygem-simplecov for
openSUSE:Factory checked in at 2020-05-11 13:39:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-simplecov (Old)
and /work/SRC/openSUSE:Factory/.rubygem-simplecov.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-simplecov"
Mon May 11 13:39:45 2020 rev:22 rq:802375 version:0.18.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-simplecov/rubygem-simplecov.changes
2020-03-07 21:40:06.564347943 +0100
+++
/work/SRC/openSUSE:Factory/.rubygem-simplecov.new.2738/rubygem-simplecov.changes
2020-05-11 13:39:49.288924853 +0200
@@ -1,0 +2,40 @@
+Thu May 7 21:31:35 UTC 2020 - Stephan Kulow <[email protected]>
+
+- updated to version 0.18.5
+ see installed CHANGELOG.md
+
+ 0.18.5 (2020-02-25)
+ ===================
+
+ Can you guess? Another bugfix release!
+
+ ## Bugfixes
+ * minitest won't crash if SimpleCov isn't loaded - aka don't execute
SimpleCov code in the minitest plugin if SimpleCov isn't loaded. Thanks to
[@edariedl](https://github.com/edariedl) for the report of the peculiar problem
in [#877](https://github.com/colszowka/simplecov/issues/877).
+
+ 0.18.4 (2020-02-24)
+ ===================
+
+ Another small bugfix release 🙈 Fixes SimpleCov running with rspec-rails,
which was broken due to our fixed minitest integration.
+
+ ## Bugfixes
+ * SimpleCov will run again correctly when used with rspec-rails. The
excellent bug report [#873](https://github.com/colszowka/simplecov/issues/873)
by [@odlp](https://github.com/odlp) perfectly details what went wrong. Thanks
to [@adam12](https://github.com/adam12) for the fix
[#874](https://github.com/colszowka/simplecov/pull/874).
+
+
+ 0.18.3 (2020-02-23)
+ ===========
+
+ Small bugfix release. It's especially recommended to upgrade simplecov-html
as well because of bugs in the 0.12.0 release.
+
+ ## Bugfixes
+ * Fix a regression related to file encodings as special characters were
missing. Furthermore we now respect the magic `# encoding: ...` comment and
read files in the right encoding. Thanks ([@Tietew](https://github.com/Tietew))
- see [#866](https://github.com/colszowka/simplecov/pull/866)
+ * Use `Minitest.after_run` hook to trigger post-run hooks if `Minitest` is
present. See [#756](https://github.com/colszowka/simplecov/pull/756) and
[#855](https://github.com/colszowka/simplecov/pull/855) thanks
([@adam12](https://github.com/adam12))
+
+ 0.18.2 (2020-02-12)
+ ===================
+
+ Small release just to allow you to use the new simplecov-html.
+
+ ## Enhancements
+ * Relax simplecov-html requirement so that you're able to use
[0.12.0](https://github.com/colszowka/simplecov-html/blob/master/CHANGELOG.md#0120-2020-02-12)
+
+-------------------------------------------------------------------
Old:
----
simplecov-0.18.1.gem
New:
----
simplecov-0.18.5.gem
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ rubygem-simplecov.spec ++++++
--- /var/tmp/diff_new_pack.WAaxaL/_old 2020-05-11 13:39:50.332927042 +0200
+++ /var/tmp/diff_new_pack.WAaxaL/_new 2020-05-11 13:39:50.332927042 +0200
@@ -24,7 +24,7 @@
#
Name: rubygem-simplecov
-Version: 0.18.1
+Version: 0.18.5
Release: 0
%define mod_name simplecov
%define mod_full_name %{mod_name}-%{version}
++++++ simplecov-0.18.1.gem -> simplecov-0.18.5.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md 2020-01-31 10:41:43.000000000 +0100
+++ new/CHANGELOG.md 2020-02-25 22:41:26.000000000 +0100
@@ -1,3 +1,37 @@
+0.18.5 (2020-02-25)
+===================
+
+Can you guess? Another bugfix release!
+
+## Bugfixes
+* minitest won't crash if SimpleCov isn't loaded - aka don't execute SimpleCov
code in the minitest plugin if SimpleCov isn't loaded. Thanks to
[@edariedl](https://github.com/edariedl) for the report of the peculiar problem
in [#877](https://github.com/colszowka/simplecov/issues/877).
+
+0.18.4 (2020-02-24)
+===================
+
+Another small bugfix release 🙈 Fixes SimpleCov running with rspec-rails, which
was broken due to our fixed minitest integration.
+
+## Bugfixes
+* SimpleCov will run again correctly when used with rspec-rails. The excellent
bug report [#873](https://github.com/colszowka/simplecov/issues/873) by
[@odlp](https://github.com/odlp) perfectly details what went wrong. Thanks to
[@adam12](https://github.com/adam12) for the fix
[#874](https://github.com/colszowka/simplecov/pull/874).
+
+
+0.18.3 (2020-02-23)
+===========
+
+Small bugfix release. It's especially recommended to upgrade simplecov-html as
well because of bugs in the 0.12.0 release.
+
+## Bugfixes
+* Fix a regression related to file encodings as special characters were
missing. Furthermore we now respect the magic `# encoding: ...` comment and
read files in the right encoding. Thanks ([@Tietew](https://github.com/Tietew))
- see [#866](https://github.com/colszowka/simplecov/pull/866)
+* Use `Minitest.after_run` hook to trigger post-run hooks if `Minitest` is
present. See [#756](https://github.com/colszowka/simplecov/pull/756) and
[#855](https://github.com/colszowka/simplecov/pull/855) thanks
([@adam12](https://github.com/adam12))
+
+0.18.2 (2020-02-12)
+===================
+
+Small release just to allow you to use the new simplecov-html.
+
+## Enhancements
+* Relax simplecov-html requirement so that you're able to use
[0.12.0](https://github.com/colszowka/simplecov-html/blob/master/CHANGELOG.md#0120-2020-02-12)
+
0.18.1 (2020-01-31)
===================
@@ -25,6 +59,7 @@
## Noteworthy
* `FileList` stopped inheriting from Array, it includes Enumerable so if you
didn't use Array specific methods on it in formatters you should be fine
+* We needed to change an internal file format, which we use for merging across
processes, to accommodate branch coverage. Sadly CodeClimate chose to use this
file to report test coverage. Until a resolution is found the code climate test
reporter won't work with SimpleCov for 0.18+, see [this issue on the test
reporter](https://github.com/codeclimate/test-reporter/issues/413).
0.18.0.beta3 (2020-01-20)
========================
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/minitest/simplecov_plugin.rb
new/lib/minitest/simplecov_plugin.rb
--- old/lib/minitest/simplecov_plugin.rb 1970-01-01 01:00:00.000000000
+0100
+++ new/lib/minitest/simplecov_plugin.rb 2020-02-25 22:41:26.000000000
+0100
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+# How minitest plugins. See https://github.com/colszowka/simplecov/pull/756
for why we need this.
+# https://github.com/seattlerb/minitest#writing-extensions
+module Minitest
+ def self.plugin_simplecov_init(_options)
+ if defined?(SimpleCov)
+ SimpleCov.external_at_exit = true
+
+ Minitest.after_run do
+ SimpleCov.at_exit_behavior
+ end
+ end
+ end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov/combine/branches_combiner.rb
new/lib/simplecov/combine/branches_combiner.rb
--- old/lib/simplecov/combine/branches_combiner.rb 2020-01-31
10:41:43.000000000 +0100
+++ new/lib/simplecov/combine/branches_combiner.rb 2020-02-25
22:41:26.000000000 +0100
@@ -10,9 +10,9 @@
module_function
#
- # Return merged branches or the existed branche if other is missing.
+ # Return merged branches or the existed brach if other is missing.
#
- # Branches inside files are always same if they exists, the difference
only in coverage count.
+ # Branches inside files are always same if they exist, the difference
only in coverage count.
# Branch coverage report for any conditional case is built from hash,
it's key is a condition and
# it's body is a hash << keys from condition and value is coverage rate
>>.
# ex: branches =>{ [:if, 3, 8, 6, 8, 36] => {[:then, 4, 8, 6, 8, 12] =>
1, [:else, 5, 8, 6, 8, 36]=>2}, other conditions...}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov/combine.rb new/lib/simplecov/combine.rb
--- old/lib/simplecov/combine.rb 2020-01-31 10:41:43.000000000 +0100
+++ new/lib/simplecov/combine.rb 2020-02-25 22:41:26.000000000 +0100
@@ -9,8 +9,8 @@
#
# Combine two coverage based on the given combiner_module.
#
- # Combiners should always be called throught his interface,
- # as it takes care of short circuting of one of the coverages is nil.
+ # Combiners should always be called through this interface,
+ # as it takes care of short-circuiting of one of the coverages is nil.
#
# @return [Hash]
def combine(combiner_module, coverage_a, coverage_b)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov/coverage_statistics.rb
new/lib/simplecov/coverage_statistics.rb
--- old/lib/simplecov/coverage_statistics.rb 2020-01-31 10:41:43.000000000
+0100
+++ new/lib/simplecov/coverage_statistics.rb 2020-02-25 22:41:26.000000000
+0100
@@ -19,7 +19,7 @@
[
covered + file_coverage_statistics.covered,
missed + file_coverage_statistics.missed,
- # gotta remultiply with loc because files have different strenght
and loc
+ # gotta remultiply with loc because files have different strength
and loc
# giving them a different "weight" in total
total_strength + (file_coverage_statistics.strength *
file_coverage_statistics.total)
]
@@ -35,14 +35,14 @@
@covered = covered
@missed = missed
@total = covered + missed
- @percent = compute_percent(covered, total)
- @strength = compute_strength(total_strength, @total)
+ @percent = compute_percent(covered, missed, total)
+ @strength = compute_strength(total_strength, total)
end
private
- def compute_percent(covered, total)
- return 100.0 if total.zero?
+ def compute_percent(covered, missed, total)
+ return 100.0 if missed.zero?
covered * 100.0 / total
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov/defaults.rb
new/lib/simplecov/defaults.rb
--- old/lib/simplecov/defaults.rb 2020-01-31 10:41:43.000000000 +0100
+++ new/lib/simplecov/defaults.rb 2020-02-25 22:41:26.000000000 +0100
@@ -22,13 +22,9 @@
SimpleCov::CommandGuesser.original_run_command = "#{$PROGRAM_NAME}
#{ARGV.join(' ')}"
at_exit do
- # If we are in a different process than called start, don't interfere.
- next if SimpleCov.pid != Process.pid
+ next if SimpleCov.external_at_exit?
- # If SimpleCov is no longer running then don't run exit tasks
- next unless SimpleCov.running
-
- SimpleCov.run_exit_tasks!
+ SimpleCov.at_exit_behavior
end
# Autoload config from ~/.simplecov if present
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov/source_file.rb
new/lib/simplecov/source_file.rb
--- old/lib/simplecov/source_file.rb 2020-01-31 10:41:43.000000000 +0100
+++ new/lib/simplecov/source_file.rb 2020-02-25 22:41:26.000000000 +0100
@@ -25,7 +25,7 @@
def src
# We intentionally read source code lazily to
# suppress reading unused source code.
- @src ||= File.open(filename, "rb", &:readlines)
+ @src ||= load_source
end
alias source src
@@ -175,6 +175,51 @@
end
end
+ def load_source
+ lines = []
+ # The default encoding is UTF-8
+ File.open(filename, "rb:UTF-8") do |file|
+ current_line = file.gets
+
+ if shebang?(current_line)
+ lines << current_line
+ current_line = file.gets
+ end
+
+ read_lines(file, lines, current_line)
+ end
+ end
+
+ SHEBANG_REGEX = /\A#!/.freeze
+ def shebang?(line)
+ SHEBANG_REGEX.match?(line)
+ end
+
+ def read_lines(file, lines, current_line)
+ return lines unless current_line
+
+ set_encoding_based_on_magic_comment(file, current_line)
+ lines.concat([current_line], ensure_remove_undefs(file.readlines))
+ end
+
+ RUBY_FILE_ENCODING_MAGIC_COMMENT_REGEX =
/\A#\s*(?:-\*-)?\s*(?:en)?coding:\s*(\S+)\s*(?:-\*-)?\s*\z/.freeze
+ def set_encoding_based_on_magic_comment(file, line)
+ # Check for encoding magic comment
+ # Encoding magic comment must be placed at first line except for shebang
+ if (match = RUBY_FILE_ENCODING_MAGIC_COMMENT_REGEX.match(line))
+ file.set_encoding(match[1], "UTF-8")
+ end
+ end
+
+ def ensure_remove_undefs(file_lines)
+ # invalid/undef replace are technically not really necessary but nice to
+ # have and work around a JRuby incompatibility. Also moved here from
+ # simplecov-html to have encoding shenaningans in one place. See #866
+ # also setting these option on `file.set_encoding` doesn't seem to work
+ # properly so it has to be done here.
+ file_lines.each { |line| line.encode!("UTF-8", invalid: :replace, undef:
:replace) }
+ end
+
def build_lines
coverage_exceeding_source_warn if coverage_data["lines"].size > src.size
lines = src.map.with_index(1) do |src, i|
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov/version.rb new/lib/simplecov/version.rb
--- old/lib/simplecov/version.rb 2020-01-31 10:41:43.000000000 +0100
+++ new/lib/simplecov/version.rb 2020-02-25 22:41:26.000000000 +0100
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module SimpleCov
- VERSION = "0.18.1"
+ VERSION = "0.18.5"
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/lib/simplecov.rb new/lib/simplecov.rb
--- old/lib/simplecov.rb 2020-01-31 10:41:43.000000000 +0100
+++ new/lib/simplecov.rb 2020-02-25 22:41:26.000000000 +0100
@@ -27,6 +27,11 @@
attr_accessor :pid
attr_reader :exit_exception
+ # Basically, should we take care of at_exit behavior or something else?
+ # Used by the minitest plugin. See lib/minitest/simplecov_plugin.rb
+ attr_accessor :external_at_exit
+ alias external_at_exit? external_at_exit
+
#
# Sets up SimpleCov to run against your project.
# You can optionally specify a profile to use as well as configuration
with a block:
@@ -189,6 +194,14 @@
end
end
+ def at_exit_behavior
+ # If we are in a different process than called start, don't interfere.
+ return if SimpleCov.pid != Process.pid
+
+ # If SimpleCov is no longer running then don't run exit tasks
+ SimpleCov.run_exit_tasks! if SimpleCov.running
+ end
+
# @api private
#
# Called from at_exit block
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata 2020-01-31 10:41:43.000000000 +0100
+++ new/metadata 2020-02-25 22:41:26.000000000 +0100
@@ -1,14 +1,14 @@
--- !ruby/object:Gem::Specification
name: simplecov
version: !ruby/object:Gem::Version
- version: 0.18.1
+ version: 0.18.5
platform: ruby
authors:
- Christoph Olszowka
autorequire:
bindir: bin
cert_chain: []
-date: 2020-01-31 00:00:00.000000000 Z
+date: 2020-02-25 00:00:00.000000000 Z
dependencies:
- !ruby/object:Gem::Dependency
name: docile
@@ -30,14 +30,14 @@
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: 0.11.0
+ version: '0.11'
type: :runtime
prerelease: false
version_requirements: !ruby/object:Gem::Requirement
requirements:
- - "~>"
- !ruby/object:Gem::Version
- version: 0.11.0
+ version: '0.11'
description: Code coverage for Ruby with a powerful configuration library and
automatic
merging of coverage across test suites
email:
@@ -55,6 +55,7 @@
- doc/alternate-formatters.md
- doc/commercial-services.md
- doc/editor-integration.md
+- lib/minitest/simplecov_plugin.rb
- lib/simplecov.rb
- lib/simplecov/combine.rb
- lib/simplecov/combine/branches_combiner.rb
@@ -96,9 +97,9 @@
metadata:
bug_tracker_uri: https://github.com/colszowka/simplecov/issues
changelog_uri:
https://github.com/colszowka/simplecov/blob/master/CHANGELOG.md
- documentation_uri: https://www.rubydoc.info/gems/simplecov/0.18.1
+ documentation_uri: https://www.rubydoc.info/gems/simplecov/0.18.5
mailing_list_uri: https://groups.google.com/forum/#!forum/simplecov
- source_code_uri: https://github.com/colszowka/simplecov/tree/v0.18.1
+ source_code_uri: https://github.com/colszowka/simplecov/tree/v0.18.5
post_install_message:
rdoc_options: []
require_paths: