Hello community, here is the log from the commit of package rubygem-excon for openSUSE:Factory checked in at 2017-09-26 21:15:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-excon (Old) and /work/SRC/openSUSE:Factory/.rubygem-excon.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-excon" Tue Sep 26 21:15:13 2017 rev:21 rq:523577 version:0.59.0 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-excon/rubygem-excon.changes 2017-07-10 11:07:04.750881047 +0200 +++ /work/SRC/openSUSE:Factory/.rubygem-excon.new/rubygem-excon.changes 2017-09-26 21:16:21.446074288 +0200 @@ -1,0 +2,30 @@ +Mon Sep 11 12:38:15 UTC 2017 - [email protected] + +- updated to version 0.59.0 + see installed changelog.txt + + 0.59.0 2017-09-05 + ================= + + fix backtick vs quote in error message + fix socket pooling to be per-connection instead of per thread + fix tests to ignore proxy env settings + + 0.58.0 08/01/2017 + ================= + + remove unused error + add retry_interval and related settings for backoff + +------------------------------------------------------------------- +Thu Aug 3 19:11:57 UTC 2017 - [email protected] + +- updated to version 0.58.0 + see installed changelog.txt + + 0.57.1 06/30/2017 + ================= + + fix remote-ip setting to prevent off-by-one issue + +------------------------------------------------------------------- Old: ---- excon-0.57.0.gem New: ---- excon-0.59.0.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-excon.spec ++++++ --- /var/tmp/diff_new_pack.vDobpe/_old 2017-09-26 21:16:22.093983199 +0200 +++ /var/tmp/diff_new_pack.vDobpe/_new 2017-09-26 21:16:22.093983199 +0200 @@ -24,7 +24,7 @@ # Name: rubygem-excon -Version: 0.57.0 +Version: 0.59.0 Release: 0 %define mod_name excon %define mod_full_name %{mod_name}-%{version} @@ -34,7 +34,7 @@ BuildRequires: %{ruby} BuildRequires: ruby-macros >= 5 Url: https://github.com/excon/excon -Source: http://rubygems.org/gems/%{mod_full_name}.gem +Source: https://rubygems.org/gems/%{mod_full_name}.gem Source1: gem2rpm.yml Summary: speed, persistence, http(s) License: MIT ++++++ excon-0.57.0.gem -> excon-0.59.0.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Gemfile.lock new/Gemfile.lock --- old/Gemfile.lock 2017-06-14 16:15:39.000000000 +0200 +++ new/Gemfile.lock 2017-09-05 21:43:31.000000000 +0200 @@ -1,7 +1,7 @@ PATH remote: . specs: - excon (0.57.0) + excon (0.59.0) GEM remote: https://rubygems.org/ @@ -298,4 +298,4 @@ unicorn BUNDLED WITH - 1.15.1 + 1.15.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md --- old/README.md 2017-06-14 16:15:39.000000000 +0200 +++ new/README.md 2017-09-05 21:43:31.000000000 +0200 @@ -136,6 +136,10 @@ # this request can be repeated safely, retry up to 6 times connection.request(:idempotent => true, :retry_limit => 6) +# this request can be repeated safely, retry up to 6 times and sleep 5 seconds +# in between each retry +connection.request(:idempotent => true, :retry_limit => 6, :retry_interval => 5) + # set longer read_timeout (default is 60 seconds) connection.request(:read_timeout => 360) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/changelog.txt new/changelog.txt --- old/changelog.txt 2017-06-14 16:15:39.000000000 +0200 +++ new/changelog.txt 2017-09-05 21:43:31.000000000 +0200 @@ -1,3 +1,21 @@ +0.59.0 2017-09-05 +================= + +fix backtick vs quote in error message +fix socket pooling to be per-connection instead of per thread +fix tests to ignore proxy env settings + +0.58.0 08/01/2017 +================= + +remove unused error +add retry_interval and related settings for backoff + +0.57.1 06/30/2017 +================= + +fix remote-ip setting to prevent off-by-one issue + 0.57.0 06/14/2017 ================= Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/excon.gemspec new/excon.gemspec --- old/excon.gemspec 2017-06-14 16:15:39.000000000 +0200 +++ new/excon.gemspec 2017-09-05 21:43:31.000000000 +0200 @@ -13,8 +13,8 @@ ## If your rubyforge_project name is different, then edit it and comment out ## the sub! line in the Rakefile s.name = 'excon' - s.version = '0.57.0' - s.date = '2017-06-14' + s.version = '0.59.0' + s.date = '2017-09-05' s.rubyforge_project = 'excon' ## Make sure your summary is short. The description may be as long diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/excon/connection.rb new/lib/excon/connection.rb --- old/lib/excon/connection.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/lib/excon/connection.rb 2017-09-05 21:43:31.000000000 +0200 @@ -46,6 +46,7 @@ # @option params [String] :ciphers Only use the specified SSL/TLS cipher suites; use OpenSSL cipher spec format e.g. 'HIGH:!aNULL:!3DES' or 'AES256-SHA:DES-CBC3-SHA' # @option params [String] :proxy Proxy server; e.g. 'http://myproxy.com:8888' # @option params [Fixnum] :retry_limit Set how many times we'll retry a failed request. (Default 4) + # @option params [Fixnum] :retry_interval Set how long to wait between retries. (Default 0) # @option params [Class] :instrumentor Responds to #instrument as in ActiveSupport::Notifications # @option params [String] :instrumentor_name Name prefix for #instrument events. Defaults to 'excon' def initialize(params = {}) @@ -407,10 +408,16 @@ end def sockets + @_excon_sockets ||= {} + if @data[:thread_safe_sockets] - Thread.current[:_excon_sockets] ||= {} + # In a multi-threaded world, if the same connection is used by multiple + # threads at the same time to connect to the same destination, they may + # stomp on each other's sockets. This ensures every thread gets their + # own socket cache, within the context of a single connection. + @_excon_sockets[Thread.current.object_id] ||= {} else - @_excon_sockets ||= {} + @_excon_sockets end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/excon/constants.rb new/lib/excon/constants.rb --- old/lib/excon/constants.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/lib/excon/constants.rb 2017-09-05 21:43:31.000000000 +0200 @@ -1,7 +1,7 @@ # frozen_string_literal: true module Excon - VERSION = '0.57.0' + VERSION = '0.59.0' CR_NL = "\r\n" @@ -57,6 +57,7 @@ :response_block, :retries_remaining, # used internally :retry_limit, + :retry_interval, :versions, :write_timeout ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/excon/error.rb new/lib/excon/error.rb --- old/lib/excon/error.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/lib/excon/error.rb 2017-09-05 21:43:31.000000000 +0200 @@ -31,7 +31,7 @@ `Excon.defaults[:ssl_ca_path] = path_to_certs` `ENV['SSL_CERT_DIR'] = path_to_certs` `Excon.defaults[:ssl_ca_file] = path_to_file` - `ENV['SSL_CERT_FILE'] = path_to_file' + `ENV['SSL_CERT_FILE'] = path_to_file` `Excon.defaults[:ssl_verify_callback] = callback` (see OpenSSL::SSL::SSLContext#verify_callback) or: @@ -48,7 +48,6 @@ class Timeout < Error; end class ResponseParse < Error; end class ProxyParse < Error; end - class ProxyConnection < Error; end # Base class for HTTP Error classes class HTTPStatus < Error diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/excon/middlewares/idempotent.rb new/lib/excon/middlewares/idempotent.rb --- old/lib/excon/middlewares/idempotent.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/lib/excon/middlewares/idempotent.rb 2017-09-05 21:43:31.000000000 +0200 @@ -20,6 +20,9 @@ if datum[:idempotent] && [Excon::Errors::Timeout, Excon::Errors::SocketError, Excon::Errors::HTTPStatusError].any? {|ex| datum[:error].kind_of?(ex) } && datum[:retries_remaining] > 1 + + sleep(datum[:retry_interval]) if datum[:retry_interval] + # reduces remaining retries, reset connection, and restart request_call datum[:retries_remaining] -= 1 connection = datum.delete(:connection) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/excon/socket.rb new/lib/excon/socket.rb --- old/lib/excon/socket.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/lib/excon/socket.rb 2017-09-05 21:43:31.000000000 +0200 @@ -101,12 +101,12 @@ addrinfo = ::Socket.getaddrinfo(*args) addrinfo.each do |_, port, _, ip, a_family, s_type| - @remote_ip = ip - # already succeeded on previous addrinfo if @socket break end + + @remote_ip = ip # nonblocking connect begin diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2017-06-14 16:15:39.000000000 +0200 +++ new/metadata 2017-09-05 21:43:31.000000000 +0200 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: excon version: !ruby/object:Gem::Version - version: 0.57.0 + version: 0.59.0 platform: ruby authors: - dpiddy (Dan Peterson) @@ -10,7 +10,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2017-06-14 00:00:00.000000000 Z +date: 2017-09-05 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: rspec @@ -328,7 +328,7 @@ version: '0' requirements: [] rubyforge_project: excon -rubygems_version: 2.6.8 +rubygems_version: 2.6.13 signing_key: specification_version: 2 summary: speed, persistence, http(s) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/basic_tests.rb new/tests/basic_tests.rb --- old/tests/basic_tests.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/tests/basic_tests.rb 2017-09-05 21:43:31.000000000 +0200 @@ -1,6 +1,8 @@ require 'json' Shindo.tests('Excon basics') do + env_init + with_rackup('basic.ru') do basic_tests diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/data/127.0.0.1.cert.crt new/tests/data/127.0.0.1.cert.crt --- old/tests/data/127.0.0.1.cert.crt 2017-06-14 16:15:39.000000000 +0200 +++ new/tests/data/127.0.0.1.cert.crt 2017-09-05 21:43:31.000000000 +0200 @@ -1,20 +1,20 @@ -----BEGIN CERTIFICATE----- -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 -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/data/127.0.0.1.cert.key new/tests/data/127.0.0.1.cert.key --- old/tests/data/127.0.0.1.cert.key 2017-06-14 16:15:39.000000000 +0200 +++ new/tests/data/127.0.0.1.cert.key 2017-09-05 21:43:31.000000000 +0200 @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/data/excon.cert.crt new/tests/data/excon.cert.crt --- old/tests/data/excon.cert.crt 2017-06-14 16:15:39.000000000 +0200 +++ new/tests/data/excon.cert.crt 2017-09-05 21:43:31.000000000 +0200 @@ -1,20 +1,20 @@ -----BEGIN CERTIFICATE----- -MIIDRTCCAi2gAwIBAgIJAIdBU7E8GEfTMA0GCSqGSIb3DQEBCwUAMCAxDjAMBgNV -BAMTBWV4Y29uMQ4wDAYDVQQKEwVleGNvbjAeFw0xNzA2MTQxNDE1MzhaFw0xODA2 -MTQxNDE1MzhaMCAxDjAMBgNVBAMTBWV4Y29uMQ4wDAYDVQQKEwVleGNvbjCCASIw -DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMnv9x1vce/IsWm8eEnHPmcURvXZ -xn9S/RN4q6NRIdkFQDADtOi4ArAD/jj0F+3iiJwFbyR2SKI28bu3SD5/TKTLmK5Z -AdG3NwxFCHyU1yHiz2Fry00Cqt9UtT3Mly2an/EUd65E3x7/Iq+Af5wq3Q35d+FA -1Z7MAi3pb7XKQ7EhtGNiHlWtgvGLq92sbVocrAgVZMonTGmNPv5fbPmwKdNGKmH8 -NlwbmndVSJgEwZMRKGqRcc7W+2mYPmZFtF45HI5zPYis/3gXewUzBKPFdpH/NudV -M3rGBjm+ra2T23eCDEnZGxMny1dolroUQcsouZouvcmDcpPmJBlPsf6T4GECAwEA -AaOBgTB/MB0GA1UdDgQWBBQnMOLOZs+JOmtoivICkvL2DBHxmTBQBgNVHSMESTBH -gBQnMOLOZs+JOmtoivICkvL2DBHxmaEkpCIwIDEOMAwGA1UEAxMFZXhjb24xDjAM -BgNVBAoTBWV4Y29uggkAh0FTsTwYR9MwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B -AQsFAAOCAQEASAxixZQMsCdewFPoh3FdE/gjJWtlO03Z3EA4QqaU7n3dJyZlGyqP -eG6akTZxLl5TQSrj5u0Xnetq/L7RuGGzBwArQEUjY4M2bAKT1OgqcxuSBhuvXKpl -mKU/yOSn8KlnDxTSdaAJ8FTp0FddifVwITw2OTyDl47HqMN4qW/X8NXHTYqCvypp -z/pTBnHPtohEE/qaCq+CTNxbafT6qeVhPrcLs2EPErUDcL0rFiLa9Etxo7mAf+jK -Iznxu9Zt7UOxaOvfV0p9jiajFyV6CGdrAotU9+/rZFuJFLEhxwAlYRjgOlPRfR0Q -4qNdQ6YpE0+iwzj/cHbaoSZV+82y8Sg81g== +MIIDRTCCAi2gAwIBAgIJAMaDk10V/YquMA0GCSqGSIb3DQEBCwUAMCAxDjAMBgNV +BAMTBWV4Y29uMQ4wDAYDVQQKEwVleGNvbjAeFw0xNzA5MDUxOTQzMzBaFw0xODA5 +MDUxOTQzMzBaMCAxDjAMBgNVBAMTBWV4Y29uMQ4wDAYDVQQKEwVleGNvbjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMWedu1HHibgTE5vxcA826vtlgDM +KEYN7NPSkhH+ZjDz/nWZ7Y7DcDcNIsW3Nd53PsUGwva6FnBk0j/2GAwm+QO4bjHo +UzB2O4rkePsrhrAOtGq9uINKmcAS0y9Ptl/ZTv1QsKUi4lKjDoalyHV8mEohpWNl +9uWO0aN+Q2KNd4p0SHmlNGAZk9BiiRvPJJqenZ2D51MbJdH5O3N9FhLnwIK6eVaU +R/a3lf5hdkyGYi39zpGx47VG/6q9is1t+WXBWaaLdU0omDhlH281kq+HaV3akG6k +Kh70xFGXU9Ya7qwR+PA+WkGJO6z88qwESRpGZfSSBklpM0+qIbYOP7Zb9PMCAwEA +AaOBgTB/MB0GA1UdDgQWBBTMRFBCu23CeR4YBGR9+2h2b6xqODBQBgNVHSMESTBH +gBTMRFBCu23CeR4YBGR9+2h2b6xqOKEkpCIwIDEOMAwGA1UEAxMFZXhjb24xDjAM +BgNVBAoTBWV4Y29uggkAxoOTXRX9iq4wDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B +AQsFAAOCAQEAWU6Q11wZFK6GhYK85IkW90FHug8/13DRJ3Q041ttQEpR48DW1lgj +5861hzKkYfyudJhk97WEnx2pzsZSogbiGv/jMT1otKk8RqQG/sQy/bqoTVZEg7I2 +FyPCMV4fPFCm2dL7NTh51q0xeb9QFkxNFQ7YGtAvPSxs+GM/8gLxs4pSPMLSCNxX +0r6Lvook0ur+WXalGLu8110bCa4k+00SlZg0qZISlfrZyF5ofybylMjyy/qArgUy +8eltHfWbPhJEqf1yDPz2xCYGGCSplJMpvAhvSf4GSM55B27AoPlYlaS5wEaJf8Ft +g72ESuzICOQ617jOTeasIkkkoINIdnW1oA== -----END CERTIFICATE----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/data/excon.cert.key new/tests/data/excon.cert.key --- old/tests/data/excon.cert.key 2017-06-14 16:15:39.000000000 +0200 +++ new/tests/data/excon.cert.key 2017-09-05 21:43:31.000000000 +0200 @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tests/middlewares/idempotent_tests.rb new/tests/middlewares/idempotent_tests.rb --- old/tests/middlewares/idempotent_tests.rb 2017-06-14 16:15:39.000000000 +0200 +++ new/tests/middlewares/idempotent_tests.rb 2017-09-05 21:43:31.000000000 +0200 @@ -128,4 +128,37 @@ response.status end + tests("Retry limit and sleep in constructor with socket erroring first 2 times").returns(200) do + run_count = 0 + Excon.stub({:method => :get}) { |params| + run_count += 1 + if run_count <= 2 # First 5 calls fail. + raise Excon::Errors::SocketError.new(Exception.new "Mock Error") + else + {:body => params[:body], :headers => params[:headers], :status => 200} + end + } + + + # NOTE: A short :retry_interval will avoid slowing down the tests. + response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 3, :retry_interval => 0.1) + response.status + end + + tests("Retry limit and sleep in constructor with socket erroring first 2 times").raises(Excon::Errors::SocketError) do + run_count = 0 + Excon.stub({:method => :get}) { |params| + run_count += 1 + if run_count <= 2 # First 5 calls fail. + raise Excon::Errors::SocketError.new(Exception.new "Mock Error") + else + {:body => params[:body], :headers => params[:headers], :status => 200} + end + } + + # NOTE: A short :retry_interval will avoid slowing down the tests. + response = @connection.request(:method => :get, :idempotent => true, :path => '/some-path', :retry_limit => 2, :retry_interval => 0.1) + response.status + end + end
