Hello community,

here is the log from the commit of package rubygem-rspec-core for 
openSUSE:Factory checked in at 2019-07-22 12:16:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rspec-core (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rspec-core.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rspec-core"

Mon Jul 22 12:16:11 2019 rev:26 rq:713994 version:3.8.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-rspec-core/rubygem-rspec-core.changes    
2018-11-01 18:52:48.913954349 +0100
+++ 
/work/SRC/openSUSE:Factory/.rubygem-rspec-core.new.4126/rubygem-rspec-core.changes
  2019-07-22 12:16:12.707731034 +0200
@@ -1,0 +2,26 @@
+Mon Jul  8 07:45:14 UTC 2019 - Manuel Schnitzer <[email protected]>
+
+- updated to version 3.8.2
+
+  [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.1...v3.8.2)
+
+  Bug Fixes:
+
+  * Fix `config.define_derived_metadata` so that cascades are not triggered
+    until metadata has been assigned to the example or example group
+    (Myron Marston, #2635).
+
+  ### 3.8.1 / 2019-06-13
+  [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.0...v3.8.1)
+
+  Bug Fixes:
+
+  * Handle RSpec description(s) with japanese chars in CP932 encoded files.
+    (Benoit Tigeot, #2575)
+  * When defining `let` methods that overwrite an existing method, prevent
+    a warning being issued by removing the old definition. (Jon Rowe, #2593)
+  * Prevent warning on Ruby 2.6.0-rc1 (Keiji Yoshimi, #2582)
+  * Fix `config.define_derived_metadata` so that it supports cascades.
+    (Myron Marston, #2630).
+
+-------------------------------------------------------------------

Old:
----
  rspec-core-3.8.0.gem

New:
----
  rspec-core-3.8.2.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-rspec-core.spec ++++++
--- /var/tmp/diff_new_pack.UFMyX6/_old  2019-07-22 12:16:13.499730819 +0200
+++ /var/tmp/diff_new_pack.UFMyX6/_new  2019-07-22 12:16:13.503730818 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-rspec-core
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -24,7 +24,7 @@
 #
 
 Name:           rubygem-rspec-core
-Version:        3.8.0
+Version:        3.8.2
 Release:        0
 %define mod_name rspec-core
 %define mod_full_name %{mod_name}-%{version}

++++++ rspec-core-3.8.0.gem -> rspec-core-3.8.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Changelog.md new/Changelog.md
--- old/Changelog.md    2018-08-04 21:47:16.000000000 +0200
+++ new/Changelog.md    2019-06-29 12:58:42.000000000 +0200
@@ -1,3 +1,25 @@
+### 3.8.2 / 2019-06-29
+[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.1...v3.8.2)
+
+Bug Fixes:
+
+* Fix `config.define_derived_metadata` so that cascades are not triggered
+  until metadata has been assigned to the example or example group
+  (Myron Marston, #2635).
+
+### 3.8.1 / 2019-06-13
+[Full Changelog](http://github.com/rspec/rspec-core/compare/v3.8.0...3.8.1)
+
+Bug Fixes:
+
+* Handle RSpec description(s) with japanese chars in CP932 encoded files.
+  (Benoit Tigeot, #2575)
+* When defining `let` methods that overwrite an existing method, prevent
+  a warning being issued by removing the old definition. (Jon Rowe, #2593)
+* Prevent warning on Ruby 2.6.0-rc1 (Keiji Yoshimi, #2582)
+* Fix `config.define_derived_metadata` so that it supports cascades.
+  (Myron Marston, #2630).
+
 ### 3.8.0 / 2018-08-04
 [Full Changelog](http://github.com/rspec/rspec-core/compare/v3.7.1...v3.8.0)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2018-08-04 21:47:16.000000000 +0200
+++ new/README.md       2019-06-29 12:58:42.000000000 +0200
@@ -19,20 +19,6 @@
 end
 ```
 
-## Contributing
-
-Once you've set up the environment, you'll need to cd into the working
-directory of whichever repo you want to work in. From there you can run the
-specs and cucumber features, and make patches.
-
-NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. You
-can treat each RSpec repo as an independent project.
-
-* [Build details](BUILD_DETAIL.md)
-* [Code of Conduct](CODE_OF_CONDUCT.md)
-* [Detailed contributing guide](CONTRIBUTING.md)
-* [Development setup guide](DEVELOPMENT.md)
-
 ## Basic Structure
 
 RSpec uses the words "describe" and "it" so we can express concepts like a 
conversation:
@@ -376,6 +362,20 @@
 1 example, 0 failures
 ```
 
+## Contributing
+
+Once you've set up the environment, you'll need to cd into the working
+directory of whichever repo you want to work in. From there you can run the
+specs and cucumber features, and make patches.
+
+NOTE: You do not need to use rspec-dev to work on a specific RSpec repo. You
+can treat each RSpec repo as an independent project.
+
+* [Build details](BUILD_DETAIL.md)
+* [Code of Conduct](CODE_OF_CONDUCT.md)
+* [Detailed contributing guide](CONTRIBUTING.md)
+* [Development setup guide](DEVELOPMENT.md)
+
 ## Also see
 
 * [https://github.com/rspec/rspec](https://github.com/rspec/rspec)
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
Binary files old/checksums.yaml.gz.sig and new/checksums.yaml.gz.sig differ
Binary files old/data.tar.gz.sig and new/data.tar.gz.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/configuration.rb 
new/lib/rspec/core/configuration.rb
--- old/lib/rspec/core/configuration.rb 2018-08-04 21:47:16.000000000 +0200
+++ new/lib/rspec/core/configuration.rb 2019-06-29 12:58:42.000000000 +0200
@@ -1855,9 +1855,28 @@
 
       # @private
       def apply_derived_metadata_to(metadata)
-        @derived_metadata_blocks.items_for(metadata).each do |block|
-          block.call(metadata)
+        already_run_blocks = Set.new
+
+        # We loop and attempt to re-apply metadata blocks to support cascades
+        # (e.g. where a derived bit of metadata triggers the application of
+        # another piece of derived metadata, etc)
+        #
+        # We limit our looping to 200 times as a way to detect infinitely 
recursing derived metadata blocks.
+        # It's hard to imagine a valid use case for a derived metadata cascade 
greater than 200 iterations.
+        200.times do
+          return if @derived_metadata_blocks.items_for(metadata).all? do 
|block|
+            already_run_blocks.include?(block).tap do |skip_block|
+              block.call(metadata) unless skip_block
+              already_run_blocks << block
+            end
+          end
         end
+
+        # If we got here, then 
`@derived_metadata_blocks.items_for(metadata).all?` never returned
+        # `true` above and we treat this as an attempt to recurse infinitely. 
It's better to fail
+        # with a clear # error than hang indefinitely, which is what would 
happen if we didn't limit
+        # the looping above.
+        raise SystemStackError, "Attempted to recursively derive metadata 
indefinitely."
       end
 
       # Defines a `before` hook. See {Hooks#before} for full docs.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/example.rb 
new/lib/rspec/core/example.rb
--- old/lib/rspec/core/example.rb       2018-08-04 21:47:16.000000000 +0200
+++ new/lib/rspec/core/example.rb       2019-06-29 12:58:42.000000000 +0200
@@ -203,10 +203,13 @@
           description, example_block
         )
 
+        config = RSpec.configuration
+        config.apply_derived_metadata_to(@metadata)
+
         # This should perhaps be done in `Metadata::ExampleHash.create`,
         # but the logic there has no knowledge of `RSpec.world` and we
         # want to keep it that way. It's easier to just assign it here.
-        @metadata[:last_run_status] = RSpec.configuration.last_run_statuses[id]
+        @metadata[:last_run_status] = config.last_run_statuses[id]
 
         @example_group_instance = @exception = nil
         @clock = RSpec::Core::Time
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/example_group.rb 
new/lib/rspec/core/example_group.rb
--- old/lib/rspec/core/example_group.rb 2018-08-04 21:47:16.000000000 +0200
+++ new/lib/rspec/core/example_group.rb 2019-06-29 12:58:42.000000000 +0200
@@ -424,11 +424,15 @@
           superclass.method(:next_runnable_index_for),
           description, *args, &example_group_block
         )
+
+        config = RSpec.configuration
+        config.apply_derived_metadata_to(@metadata)
+
         ExampleGroups.assign_const(self)
 
         @currently_executing_a_context_hook = false
 
-        RSpec.configuration.configure_group(self)
+        config.configure_group(self)
       end
 
       # @private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/formatters/exception_presenter.rb 
new/lib/rspec/core/formatters/exception_presenter.rb
--- old/lib/rspec/core/formatters/exception_presenter.rb        2018-08-04 
21:47:16.000000000 +0200
+++ new/lib/rspec/core/formatters/exception_presenter.rb        2019-06-29 
12:58:42.000000000 +0200
@@ -81,7 +81,7 @@
 
         def fully_formatted_lines(failure_number, colorizer)
           lines = [
-            description,
+            encoded_description(description),
             detail_formatter.call(example, colorizer),
             formatted_message_and_backtrace(colorizer),
             extra_detail_formatter.call(failure_number, colorizer),
@@ -244,6 +244,17 @@
           end
         end
 
+        if  String.method_defined?(:encoding)
+          def encoded_description(description)
+            return if description.nil?
+            encoded_string(description)
+          end
+        else # for 1.8.7
+          def encoded_description(description)
+            description
+          end
+        end
+
         def exception_backtrace
           exception.backtrace || []
         end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/memoized_helpers.rb 
new/lib/rspec/core/memoized_helpers.rb
--- old/lib/rspec/core/memoized_helpers.rb      2018-08-04 21:47:16.000000000 
+0200
+++ new/lib/rspec/core/memoized_helpers.rb      2019-06-29 12:58:42.000000000 
+0200
@@ -288,7 +288,26 @@
           raise(
             "#let or #subject called with a reserved name #initialize"
           ) if :initialize == name
-          MemoizedHelpers.module_for(self).__send__(:define_method, name, 
&block)
+          our_module = MemoizedHelpers.module_for(self)
+
+          # If we have a module clash in our helper module
+          # then we need to remove it to prevent a warning.
+          #
+          # Note we do not check ancestor modules (see: 
`instance_methods(false)`)
+          # as we can override them.
+          if our_module.instance_methods(false).include?(name)
+            our_module.__send__(:remove_method, name)
+          end
+          our_module.__send__(:define_method, name, &block)
+
+          # If we have a module clash in the example module
+          # then we need to remove it to prevent a warning.
+          #
+          # Note we do not check ancestor modules (see: 
`instance_methods(false)`)
+          # as we can override them.
+          if instance_methods(false).include?(name)
+            remove_method(name)
+          end
 
           # Apply the memoization. The method has been defined in an ancestor
           # module so we can use `super` here to get the value.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/metadata.rb 
new/lib/rspec/core/metadata.rb
--- old/lib/rspec/core/metadata.rb      2018-08-04 21:47:16.000000000 +0200
+++ new/lib/rspec/core/metadata.rb      2019-06-29 12:58:42.000000000 +0200
@@ -136,7 +136,6 @@
 
           populate_location_attributes
           metadata.update(user_metadata)
-          RSpec.configuration.apply_derived_metadata_to(metadata)
         end
 
       private
@@ -169,7 +168,7 @@
         end
 
         def description_separator(parent_part, child_part)
-          if parent_part.is_a?(Module) && child_part =~ /^(#|::|\.)/
+          if parent_part.is_a?(Module) && /^(?:#|::|\.)/.match(child_part.to_s)
             ''.freeze
           else
             ' '.freeze
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rspec/core/version.rb 
new/lib/rspec/core/version.rb
--- old/lib/rspec/core/version.rb       2018-08-04 21:47:16.000000000 +0200
+++ new/lib/rspec/core/version.rb       2019-06-29 12:58:42.000000000 +0200
@@ -3,7 +3,7 @@
     # Version information for RSpec Core.
     module Version
       # Current version of RSpec Core, in semantic versioning format.
-      STRING = '3.8.0'
+      STRING = '3.8.2'
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2018-08-04 21:47:16.000000000 +0200
+++ new/metadata        2019-06-29 12:58:42.000000000 +0200
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: rspec-core
 version: !ruby/object:Gem::Version
-  version: 3.8.0
+  version: 3.8.2
 platform: ruby
 authors:
 - Steven Baker
@@ -46,7 +46,7 @@
   ZsVDj6a7lH3cNqtWXZxrb2wO38qV5AkYj8SQK7Hj3/Yui9myUX3crr+PdetazSqQ
   F3MdtaDehhjC
   -----END CERTIFICATE-----
-date: 2018-08-04 00:00:00.000000000 Z
+date: 2019-06-29 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: rspec-support
@@ -263,7 +263,12 @@
 homepage: https://github.com/rspec/rspec-core
 licenses:
 - MIT
-metadata: {}
+metadata:
+  bug_tracker_uri: https://github.com/rspec/rspec-core/issues
+  changelog_uri: https://github.com/rspec/rspec-core/blob/v3.8.2/Changelog.md
+  documentation_uri: https://rspec.info/documentation/
+  mailing_list_uri: https://groups.google.com/forum/#!forum/rspec
+  source_code_uri: https://github.com/rspec/rspec-core
 post_install_message: 
 rdoc_options:
 - "--charset=UTF-8"
@@ -280,9 +285,8 @@
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubyforge_project: 
-rubygems_version: 2.6.13
+rubygems_version: 3.0.3
 signing_key: 
 specification_version: 4
-summary: rspec-core-3.8.0
+summary: rspec-core-3.8.2
 test_files: []
Binary files old/metadata.gz.sig and new/metadata.gz.sig differ


Reply via email to