httpx 0.18.1 → 0.18.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dc0ed6728252132961087b7747743f0011f2f8100eb9b242080b7ac29ce68752
4
- data.tar.gz: 68c3c8f592d2e7599b7a5dcca4e9f73e7d61aba743bacb17d4c276c404203f5e
3
+ metadata.gz: e2f0ac68d969d4462c03c28fa818fa055e4e3aabad5a599197df6cc912274673
4
+ data.tar.gz: '069b5100a14183e79a968f4bb69363304ce046d098d1283f934568ea0fc23e06'
5
5
  SHA512:
6
- metadata.gz: 162b4b96df5b3b76bccdbe5940ed09aac4dea1d4b019321b07f859912d5d9fb770080d69198c70e4fd69a745723e250bcfce34e76baa83fdf3352f63d0b14620
7
- data.tar.gz: 63099247e157ddd0b1f01bdbd459a51500b5bb7ac0a624a93c09958efbd10ec2c79027c5bb932ccacfa3335a8f9d0c7691b835ac30eabbe1ed6f7ced3a47421d
6
+ metadata.gz: bddcf91c4cd851204ff789798bc8745e6e7f2b39face3ae77c83de4aa8be4de278f24a0ce1405f5e142f2f358fbf78472a5a816ae315ac43574c81adb6b82838
7
+ data.tar.gz: f9d992536ae6e464833dbe05c6a884ba373f84d90e42657bd18bab9fc69288561361041563dbe26dee92e9b9f337ee57d7eb7b9f7586abe705905184cd57f9e3
data/README.md CHANGED
@@ -45,7 +45,7 @@ response = HTTPX.get("https://nghttp2.org")
45
45
  puts response.status #=> 200
46
46
  body = response.body
47
47
  puts body #=> #<HTTPX::Response ...
48
- ```
48
+ ```
49
49
 
50
50
  You can also send as many requests as you want simultaneously:
51
51
 
@@ -79,7 +79,7 @@ In Ruby, HTTP client implementations are a known cheap commodity. Why this one?
79
79
 
80
80
  ### Concurrency
81
81
 
82
- This library supports HTTP/2 seamlessly (which means, if the request is secure, and the server support ALPN negotiation AND HTTP/2, the request will be made through HTTP/2). If you pass multiple URIs, and they can utilize the same connection, they will run concurrently in it.
82
+ This library supports HTTP/2 seamlessly (which means, if the request is secure, and the server support ALPN negotiation AND HTTP/2, the request will be made through HTTP/2). If you pass multiple URIs, and they can utilize the same connection, they will run concurrently in it.
83
83
 
84
84
  However if the server supports HTTP/1.1, it will try to use HTTP pipelining, falling back to 1 request at a time if the server doesn't support it (if the server support Keep-Alive connections, it will reuse the same connection).
85
85
 
@@ -137,7 +137,8 @@ In order to use HTTP/2 under JRuby, [check this link](https://gitlab.com/honeyry
137
137
 
138
138
  ### Known bugs
139
139
 
140
- Doesn't work with ruby 2.4.0 for Windows (see [#36](https://gitlab.com/honeyryderchuck/httpx/issues/36)).
140
+ * Doesn't work with ruby 2.4.0 for Windows (see [#36](https://gitlab.com/honeyryderchuck/httpx/issues/36)).
141
+ * Using `total_timeout` along with the `:persistent` plugin [does not work as you might expect](https://gitlab.com/honeyryderchuck/httpx/-/wikis/Timeouts#total_timeout).
141
142
 
142
143
  ## Contributing
143
144
 
@@ -0,0 +1,10 @@
1
+ # 0.18.2
2
+
3
+ ## Bugfixes
4
+
5
+ * A bug was reported and fixed, whereby a persistent connection with a `:total_timeout` set was triggering the timeout and leaving the process looping indefinitely.
6
+
7
+
8
+ ## Chore
9
+
10
+ The quirk of using the `:persistent` plugin with `:total_timeout` has been documented: https://gitlab.com/honeyryderchuck/httpx/-/wikis/Timeouts#total_timeout.
@@ -117,6 +117,13 @@ class HTTPX::Selector
117
117
  end
118
118
 
119
119
  def select(interval, &block)
120
+ # do not cause an infinite loop here.
121
+ #
122
+ # this may happen if timeout calculation actually triggered an error which causes
123
+ # the connections to be reaped (such as the total timeout error) before #select
124
+ # gets called.
125
+ return if interval.nil? && @selectables.empty?
126
+
120
127
  return select_one(interval, &block) if @selectables.size == 1
121
128
 
122
129
  select_many(interval, &block)
data/lib/httpx/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HTTPX
4
- VERSION = "0.18.1"
4
+ VERSION = "0.18.2"
5
5
  end
metadata CHANGED
@@ -1,24 +1,24 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: httpx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.1
4
+ version: 0.18.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tiago Cardoso
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-23 00:00:00.000000000 Z
11
+ date: 2021-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http-2-next
15
- prerelease: false
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
17
  - - ">="
19
18
  - !ruby/object:Gem::Version
20
19
  version: 0.4.1
21
20
  type: :runtime
21
+ prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
@@ -33,59 +33,60 @@ extra_rdoc_files:
33
33
  - LICENSE.txt
34
34
  - README.md
35
35
  - doc/release_notes/0_0_1.md
36
- - doc/release_notes/0_15_4.md
37
- - doc/release_notes/0_14_5.md
38
- - doc/release_notes/0_18_1.md
39
- - doc/release_notes/0_1_0.md
40
- - doc/release_notes/0_0_5.md
41
- - doc/release_notes/0_15_0.md
42
- - doc/release_notes/0_14_1.md
36
+ - doc/release_notes/0_0_2.md
37
+ - doc/release_notes/0_0_3.md
43
38
  - doc/release_notes/0_0_4.md
44
- - doc/release_notes/0_15_1.md
45
- - doc/release_notes/0_14_0.md
46
- - doc/release_notes/0_14_4.md
47
- - doc/release_notes/0_18_0.md
48
- - doc/release_notes/0_6_5.md
49
- - doc/release_notes/0_13_0.md
50
- - doc/release_notes/0_6_1.md
51
- - doc/release_notes/0_11_2.md
52
- - doc/release_notes/0_7_0.md
53
- - doc/release_notes/0_6_0.md
39
+ - doc/release_notes/0_0_5.md
40
+ - doc/release_notes/0_10_0.md
41
+ - doc/release_notes/0_10_1.md
54
42
  - doc/release_notes/0_10_2.md
43
+ - doc/release_notes/0_11_0.md
44
+ - doc/release_notes/0_11_1.md
45
+ - doc/release_notes/0_11_2.md
55
46
  - doc/release_notes/0_11_3.md
56
- - doc/release_notes/0_8_2.md
57
- - doc/release_notes/0_6_4.md
58
- - doc/release_notes/0_13_1.md
59
47
  - doc/release_notes/0_12_0.md
60
- - doc/release_notes/0_9_0.md
61
- - doc/release_notes/0_6_3.md
62
- - doc/release_notes/0_10_1.md
63
- - doc/release_notes/0_11_0.md
64
- - doc/release_notes/0_8_1.md
65
- - doc/release_notes/0_5_0.md
66
- - doc/release_notes/0_6_7.md
48
+ - doc/release_notes/0_13_0.md
49
+ - doc/release_notes/0_13_1.md
67
50
  - doc/release_notes/0_13_2.md
68
- - doc/release_notes/0_4_1.md
69
- - doc/release_notes/0_5_1.md
70
- - doc/release_notes/0_6_6.md
71
- - doc/release_notes/0_4_0.md
72
- - doc/release_notes/0_6_2.md
73
- - doc/release_notes/0_10_0.md
74
- - doc/release_notes/0_11_1.md
75
- - doc/release_notes/0_8_0.md
76
- - doc/release_notes/0_3_0.md
77
- - doc/release_notes/0_15_2.md
51
+ - doc/release_notes/0_14_0.md
52
+ - doc/release_notes/0_14_1.md
53
+ - doc/release_notes/0_14_2.md
78
54
  - doc/release_notes/0_14_3.md
79
- - doc/release_notes/0_2_1.md
80
- - doc/release_notes/0_0_3.md
55
+ - doc/release_notes/0_14_4.md
56
+ - doc/release_notes/0_14_5.md
57
+ - doc/release_notes/0_15_0.md
58
+ - doc/release_notes/0_15_1.md
59
+ - doc/release_notes/0_15_2.md
60
+ - doc/release_notes/0_15_3.md
61
+ - doc/release_notes/0_15_4.md
62
+ - doc/release_notes/0_16_0.md
81
63
  - doc/release_notes/0_16_1.md
82
64
  - doc/release_notes/0_17_0.md
83
- - doc/release_notes/0_0_2.md
84
- - doc/release_notes/0_16_0.md
85
- - doc/release_notes/0_3_1.md
86
- - doc/release_notes/0_15_3.md
87
- - doc/release_notes/0_14_2.md
65
+ - doc/release_notes/0_18_0.md
66
+ - doc/release_notes/0_18_1.md
67
+ - doc/release_notes/0_18_2.md
68
+ - doc/release_notes/0_1_0.md
88
69
  - doc/release_notes/0_2_0.md
70
+ - doc/release_notes/0_2_1.md
71
+ - doc/release_notes/0_3_0.md
72
+ - doc/release_notes/0_3_1.md
73
+ - doc/release_notes/0_4_0.md
74
+ - doc/release_notes/0_4_1.md
75
+ - doc/release_notes/0_5_0.md
76
+ - doc/release_notes/0_5_1.md
77
+ - doc/release_notes/0_6_0.md
78
+ - doc/release_notes/0_6_1.md
79
+ - doc/release_notes/0_6_2.md
80
+ - doc/release_notes/0_6_3.md
81
+ - doc/release_notes/0_6_4.md
82
+ - doc/release_notes/0_6_5.md
83
+ - doc/release_notes/0_6_6.md
84
+ - doc/release_notes/0_6_7.md
85
+ - doc/release_notes/0_7_0.md
86
+ - doc/release_notes/0_8_0.md
87
+ - doc/release_notes/0_8_1.md
88
+ - doc/release_notes/0_8_2.md
89
+ - doc/release_notes/0_9_0.md
89
90
  files:
90
91
  - LICENSE.txt
91
92
  - README.md
@@ -121,6 +122,7 @@ files:
121
122
  - doc/release_notes/0_17_0.md
122
123
  - doc/release_notes/0_18_0.md
123
124
  - doc/release_notes/0_18_1.md
125
+ - doc/release_notes/0_18_2.md
124
126
  - doc/release_notes/0_1_0.md
125
127
  - doc/release_notes/0_2_0.md
126
128
  - doc/release_notes/0_2_1.md
@@ -303,7 +305,7 @@ metadata:
303
305
  source_code_uri: https://gitlab.com/honeyryderchuck/httpx
304
306
  homepage_uri: https://honeyryderchuck.gitlab.io/httpx/
305
307
  rubygems_mfa_required: 'true'
306
- post_install_message:
308
+ post_install_message:
307
309
  rdoc_options: []
308
310
  require_paths:
309
311
  - lib
@@ -318,8 +320,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
318
320
  - !ruby/object:Gem::Version
319
321
  version: '0'
320
322
  requirements: []
321
- rubygems_version: 3.1.6
322
- signing_key:
323
+ rubygems_version: 3.2.22
324
+ signing_key:
323
325
  specification_version: 4
324
326
  summary: HTTPX, to the future, and beyond
325
327
  test_files: []